国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

中文語音識別轉文字的王者,阿里達摩院FunAsr足可與Whisper相頡頑

這篇具有很好參考價值的文章主要介紹了中文語音識別轉文字的王者,阿里達摩院FunAsr足可與Whisper相頡頑。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

中文語音識別轉文字的王者,阿里達摩院FunAsr足可與Whisper相頡頑

君不言語音識別技術則已,言則必稱Whisper,沒錯,OpenAi開源的Whisper確實是世界主流語音識別技術的魁首,但在中文領域,有一個足以和Whisper相頡頑的項目,那就是阿里達摩院自研的FunAsr。

FunAsr主要依托達摩院發(fā)布的Paraformer非自回歸端到端語音識別模型,它具有高精度、高效率、便捷部署的優(yōu)點,支持快速構建語音識別服務,最重要的是,FunASR支持標點符號識別、低語音識別、音頻-視覺語音識別等功能,也就是說,它不僅可以實現語音轉寫,還能在轉寫后進行標注,一石二鳥。

FunAsr和Whisper對比 Medium vs speech_paraformer

首先配置好Python3.10的開發(fā)環(huán)境,隨后在終端運行命令:

pip3 install torch torchaudio  
pip3 intall funasr  
pip3 install modelscope

隨后編寫測試腳本,這里以Bert-vits2里面的轉寫環(huán)節(jié)為例子,我們知道,如果想要克隆一個人的聲音,那么必須首先把克隆對象的語音轉寫為文字,并且標注,標注的意義在于可以增強克隆語音的語氣韻律問題。

首先看看whisper是怎么做的:

def transcribe_one(audio_path):
    model = whisper.load_model("medium")  
    # load audio and pad/trim it to fit 30 seconds  
    audio = whisper.load_audio(audio_path)  
    audio = whisper.pad_or_trim(audio)  
  
    # make log-Mel spectrogram and move to the same device as the model  
    mel = whisper.log_mel_spectrogram(audio).to(model.device)  
  
    # detect the spoken language  
    _, probs = model.detect_language(mel)  
    print(f"Detected language: {max(probs, key=probs.get)}")  
    lang = max(probs, key=probs.get)  
    # decode the audio  
    options = whisper.DecodingOptions(beam_size=5)  
    result = whisper.decode(model, mel, options)  
  
    # print the recognized text  
    print(result.text)  
    return lang, result.text

這通過Whisper的gpu模式來進行推理,模型選擇medium,硬件要求是最低6G顯存,更多關于whisper的配置,請移步:聞其聲而知雅意,M1 Mac基于PyTorch(mps/cpu/cuda)的人工智能AI本地語音識別庫Whisper(Python3.10),這里不再贅述。

Whisper轉寫后效果:

./Data\Keira\wavs\Keira_0.wav|Keira|ZH|光動嘴不如親自做給你看  
./Data\Keira\wavs\Keira_1.wav|Keira|ZH|等我一下呀迫不及待了嘛  
./Data\Keira\wavs\Keira_10.wav|Keira|ZH|你還會幫我嗎真沒想到你對葡萄酒也這么內行啊  
./Data\Keira\wavs\Keira_11.wav|Keira|ZH|差不多吧好了 聊了這么久我都餓了  
./Data\Keira\wavs\Keira_12.wav|Keira|ZH|還是趕緊開動吧我自己能應付  
./Data\Keira\wavs\Keira_13.wav|Keira|ZH|這些蛋啊 雞啊 鵝啊 滿地都是  
./Data\Keira\wavs\Keira_14.wav|Keira|ZH|再說我的經濟狀況很快就要改善了  
./Data\Keira\wavs\Keira_15.wav|Keira|ZH|因為我很清楚他的研究有多重要  
./Data\Keira\wavs\Keira_16.wav|Keira|ZH|萬一落入心懷不軌的人手里結果不堪設想  
./Data\Keira\wavs\Keira_17.wav|Keira|ZH|再後悔也晚了  
./Data\Keira\wavs\Keira_18.wav|Keira|ZH|抱歉這話題太喪氣了  
./Data\Keira\wavs\Keira_19.wav|Keira|ZH|我不應該提起來煞風景的  
./Data\Keira\wavs\Keira_2.wav|Keira|ZH|現在還不是時候  
./Data\Keira\wavs\Keira_20.wav|Keira|ZH|尤其是在我們的浪漫晚餐上  
./Data\Keira\wavs\Keira_21.wav|Keira|ZH|你知道森瑞卡尼亞人管那個星座叫什么嗎  
./Data\Keira\wavs\Keira_22.wav|Keira|ZH|不對哦是個含義完全不一樣的名字  
./Data\Keira\wavs\Keira_23.wav|Keira|ZH|事實上有點下流  
./Data\Keira\wavs\Keira_24.wav|Keira|ZH|靠近一點我悄悄告訴你  
./Data\Keira\wavs\Keira_3.wav|Keira|ZH|好了,趕緊出去  
./Data\Keira\wavs\Keira_4.wav|Keira|ZH|你還挺乖的嘛現在差不多準備好了  
./Data\Keira\wavs\Keira_5.wav|Keira|ZH|我不是說差不多好了嗎  
./Data\Keira\wavs\Keira_6.wav|Keira|ZH|別打岔 看仔細了  
./Data\Keira\wavs\Keira_7.wav|Keira|ZH|那是沒錯但那樣我就不會把你請到這兒來了  
./Data\Keira\wavs\Keira_8.wav|Keira|ZH|現在明白我為什么要那些材料了吧  
./Data\Keira\wavs\Keira_9.wav|Keira|ZH|如果我說 去樹林里幫我取些食材 我要做晚餐

可以看到,medium模型對于中文的泛化效果一般,大多數素材都沒有標注,但僅限于Whisper的medium模型。

現在我們來看看阿里的FunAsr:

from modelscope.pipelines import pipeline  
from modelscope.utils.constant import Tasks  
  
  
  
from modelscope.hub.snapshot_download import snapshot_download  
  
# 指定本地目錄  
local_dir_root = "./models_from_modelscope"  
model_dir = snapshot_download('damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch', cache_dir=local_dir_root)  
  
inference_pipeline = pipeline(  
    task=Tasks.auto_speech_recognition,  
    model=model_dir,  
    vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',  
    punc_model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',  
    #lm_model='damo/speech_transformer_lm_zh-cn-common-vocab8404-pytorch',  
    #lm_weight=0.15,  
    #beam_size=10,  
)  
param_dict = {}  
param_dict['use_timestamp'] = False

這里首先指定模型目錄,否則FunAsr會在C盤下載模型。

隨后編寫轉寫邏輯:

def transcribe_one(audio_path):  
      
    rec_result = inference_pipeline(audio_in=audio_path, param_dict=param_dict)  
  
    print(rec_result["text"])  
  
    return "zh", rec_result["text"]

轉寫后效果:

./Data\Keira\wavs\Keira_0.wav|Keira|ZH|光動嘴不如親自做給你看。  
./Data\Keira\wavs\Keira_1.wav|Keira|ZH|等我一下呀,迫不及待了嗎?  
./Data\Keira\wavs\Keira_10.wav|Keira|ZH|你還會幫我嗎?真沒想到你對葡萄酒也這么內行啊。  
./Data\Keira\wavs\Keira_11.wav|Keira|ZH|差不多吧。好了,聊了這么久,我都餓了。  
./Data\Keira\wavs\Keira_12.wav|Keira|ZH|還是趕緊開動吧,我自己能應付。  
./Data\Keira\wavs\Keira_13.wav|Keira|ZH|這些蛋啊、雞啊、鵝啊的滿地都是。  
./Data\Keira\wavs\Keira_14.wav|Keira|ZH|再說我的經濟狀況很快就要改善了。  
./Data\Keira\wavs\Keira_15.wav|Keira|ZH|因為我很清楚他的研究有多重要。  
./Data\Keira\wavs\Keira_16.wav|Keira|ZH|萬一落入心懷不軌的人,手里,結果不堪設想。  
./Data\Keira\wavs\Keira_17.wav|Keira|ZH|再后悔也晚了。  
./Data\Keira\wavs\Keira_18.wav|Keira|ZH|哎呀,抱歉,這話題太喪氣了。  
./Data\Keira\wavs\Keira_19.wav|Keira|ZH|我不應該提起來煞風景的。  
./Data\Keira\wavs\Keira_2.wav|Keira|ZH|現在還不是時候。  
./Data\Keira\wavs\Keira_20.wav|Keira|ZH|尤其是在我們的浪漫晚餐上。  
./Data\Keira\wavs\Keira_21.wav|Keira|ZH|你知道瑟瑞卡尼亞人管那個星座叫什么嗎?  
./Data\Keira\wavs\Keira_22.wav|Keira|ZH|不對哦,是個含義,完全不一樣的名字。  
./Data\Keira\wavs\Keira_23.wav|Keira|ZH|事實上有點下流。  
./Data\Keira\wavs\Keira_24.wav|Keira|ZH|靠近一點兒,我悄悄告訴你。  
./Data\Keira\wavs\Keira_3.wav|Keira|ZH|好了,趕緊出去。  
./Data\Keira\wavs\Keira_4.wav|Keira|ZH|你還挺乖的嘛,現在差不多準備好了。  
./Data\Keira\wavs\Keira_5.wav|Keira|ZH|我不是說差不多好了嗎?  
./Data\Keira\wavs\Keira_6.wav|Keira|ZH|別打岔看仔細了。  
./Data\Keira\wavs\Keira_7.wav|Keira|ZH|那是沒錯,但那樣我就不會把你請到這兒來了。  
./Data\Keira\wavs\Keira_8.wav|Keira|ZH|現在明白我為什么要那些材料了吧。  
./Data\Keira\wavs\Keira_9.wav|Keira|ZH|如果我說去樹林里幫我取些食材,我要做晚餐。

可以看到,幾乎不需要修改,而且每一條素材都進行了標注。

對比圖如下:

FunAsr和Whisper對比 Large-v2 & Large-v3 vs speech_paraformer

當然,Medium并非whisper的最高水平,現在我們來換成大模型:

def transcribe_one(audio_path):  
    model = whisper.load_model("large-v2")  
  
    # load audio and pad/trim it to fit 30 seconds  
    audio = whisper.load_audio(audio_path)  
    audio = whisper.pad_or_trim(audio)  
  
    # make log-Mel spectrogram and move to the same device as the model  
    mel = whisper.log_mel_spectrogram(audio).to(model.device)  
  
    # detect the spoken language  
    _, probs = model.detect_language(mel)  
    print(f"Detected language: {max(probs, key=probs.get)}")  
    lang = max(probs, key=probs.get)  
    # decode the audio  
    options = whisper.DecodingOptions(beam_size=5)  
    result = whisper.decode(model, mel, options)  
  
    # print the recognized text  
    print(result.text)  
    return lang, result.text

返回結果:

./Data\Keira\wavs\Keira_0.wav|Keira|ZH|光動嘴不如親自做給你看  
./Data\Keira\wavs\Keira_1.wav|Keira|ZH|等我一下呀迫不及待了嘛  
./Data\Keira\wavs\Keira_10.wav|Keira|ZH|你還會幫我嗎真沒想到你對葡萄酒也這么內行啊  
./Data\Keira\wavs\Keira_11.wav|Keira|ZH|差不多吧好了 聊了這么久我都餓了  
./Data\Keira\wavs\Keira_12.wav|Keira|ZH|還是趕緊開動吧我自己能應付  
./Data\Keira\wavs\Keira_13.wav|Keira|ZH|這些蛋啊 雞啊 鵝啊 滿地都是  
./Data\Keira\wavs\Keira_14.wav|Keira|ZH|再說我的經濟狀況很快就要改善了  
./Data\Keira\wavs\Keira_15.wav|Keira|ZH|因為我很清楚他的研究有多重要  
./Data\Keira\wavs\Keira_16.wav|Keira|ZH|萬一落入心懷不軌的人手里結果不堪設想  
./Data\Keira\wavs\Keira_17.wav|Keira|ZH|再後悔也晚了  
./Data\Keira\wavs\Keira_18.wav|Keira|ZH|抱歉這話題太喪氣了  
./Data\Keira\wavs\Keira_19.wav|Keira|ZH|我不應該提起來煞風景的  
./Data\Keira\wavs\Keira_2.wav|Keira|ZH|現在還不是時候  
./Data\Keira\wavs\Keira_20.wav|Keira|ZH|尤其是在我們的浪漫晚餐上  
./Data\Keira\wavs\Keira_21.wav|Keira|ZH|你知道森瑞卡尼亞人管那個星座叫什么嗎  
./Data\Keira\wavs\Keira_22.wav|Keira|ZH|不對哦是個含義完全不一樣的名字  
./Data\Keira\wavs\Keira_23.wav|Keira|ZH|事實上有點下流  
./Data\Keira\wavs\Keira_24.wav|Keira|ZH|靠近一點我悄悄告訴你  
./Data\Keira\wavs\Keira_3.wav|Keira|ZH|好了,趕緊出去  
./Data\Keira\wavs\Keira_4.wav|Keira|ZH|你還挺乖的嘛現在差不多準備好了  
./Data\Keira\wavs\Keira_5.wav|Keira|ZH|我不是說差不多好了嗎  
./Data\Keira\wavs\Keira_6.wav|Keira|ZH|別打岔 看仔細了  
./Data\Keira\wavs\Keira_7.wav|Keira|ZH|那是沒錯但那樣我就不會把你請到這兒來了  
./Data\Keira\wavs\Keira_8.wav|Keira|ZH|現在明白我為什么要那些材料了吧  
./Data\Keira\wavs\Keira_9.wav|Keira|ZH|如果我說 去樹林里幫我取些食材 我要做晚餐

整體上的偏差并不大,但標注上略遜FunAsr一籌。

結語

Funasr的模型paraformer-zh受益于60000小時的純人工標注的數據來訓練,中文參數達到220M個,它的兩個模塊,一個是基于前饋順序記憶網絡(FSMN-VAD)的語音活動檢測模型,另外一個是基于可控時延 Transformer(CT-Transformer),相比 OpenAI 的 Whisper 這兩塊能力還是比較突出的。

很難想象6w小時的數據還是純手工標注,畢竟阿里財大氣粗。

而Whisper 則用了 68w 小時的數據,從這個層面來看,FunASR 似乎沒占便宜。但Whisper 針對的是全球市場,68w小時里面有多少中文素材就很難說了,因此 FunASR 的中文語音轉寫效果確實比 Whisper 更優(yōu)秀。文章來源地址http://www.zghlxwxcb.cn/news/detail-778667.html

到了這里,關于中文語音識別轉文字的王者,阿里達摩院FunAsr足可與Whisper相頡頑的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Ubuntu20.04 使用Python實現全過程離線語音識別(包含語音喚醒,語音轉文字,指令識別,文字轉語音)

    ??因為手頭有一個項目,該項目需要在香橙派上實現語音控制,并且?guī)в姓Z音喚醒功能。簡單來說,就是通過喚醒詞喚醒香橙派,然后說出相關指令,香橙派去執(zhí)行指令。 ??但是,在弄香橙派的時候,自帶的麥克風不好使了,單獨進行麥克風測試的時候是好使的,但是程

    2024年02月05日
    瀏覽(33)
  • 【離線文本轉語音文件】java spring boot jacob實現文字轉語音文件,離線文本轉化語音,中英文生成語音,文字朗讀,中文生成聲音,文字生成聲音文件,文字轉語音文件,文字變聲音。

    【離線文本轉語音文件】java spring boot jacob實現文字轉語音文件,離線文本轉化語音,中英文生成語音,文字朗讀,中文生成聲音,文字生成聲音文件,文字轉語音文件,文字變聲音。

    輸入文字(支持中英文),點擊轉換生成***.wav文件,點擊下載到本地就可。 ?生成后的音頻文件播放,時長1分8秒 ? ? ? ? ?這次采用jacob實現,相比百度AI需要聯(lián)網,本項目定位內網環(huán)境實現。所以最終采jacob。 1.環(huán)境配置: 本次采用版本jacob-1.19,我們需要下載jacob.jar和dll

    2024年02月16日
    瀏覽(26)
  • Java 離線語音識別實現語音轉文字

    Java 離線語音識別實現語音轉文字

    model下載 我們需要實現離線語音識別,那么就得將模型下載到本地電腦。下載地址為官網的 Models 模塊: https://alphacephei.com/vosk/models 我們直接找到 Chinese 分類,這里有 2 個模型 將下載的語言模型包,在下面代碼中引入 代碼 CommonUtils 注意:以上代碼只支持.wav格式的音頻文件

    2024年02月05日
    瀏覽(92)
  • uni-app/vue 文字轉語音朗讀(附小程序語音識別和朗讀)uniapp小程序使用文字轉語音播報類似支付寶收款播報小程序語音識別和朗讀)

    uni-app/vue 文字轉語音朗讀(附小程序語音識別和朗讀)uniapp小程序使用文字轉語音播報類似支付寶收款播報小程序語音識別和朗讀)

    uni-app/vue 文字轉語音朗讀(小程序語音識別和朗讀) 一、第一種方式:直接加語音包 固定的文本 先利用工具生成了 文本語音mp3文件,放入項目中,直接用就好了 這里用到的工具:知意配音 鏈接地址:https://peiyin.wozhiyi.com/newproduction.html 接下來,代碼部分。 在min.js文件里加

    2024年02月07日
    瀏覽(88)
  • 【項目管理】Java離線版語音識別-語音轉文字

    【項目管理】Java離線版語音識別-語音轉文字

    系統(tǒng):Win10 Java:1.8.0_333 IDEA:2020.3.4 Gitee: https://gitee.com/lijinjiang01/SpeechRecognition 最近在做一個鬼畜視頻的時候,需要處理大量語音文件,全部都是 wav 格式的,然后我想把這些語音轉成文字,不過這些語音有幾千條,這時候我就想能不能用 Java 實現。 不過現在主流的語音識別

    2024年02月04日
    瀏覽(86)
  • 語音識別(利用python將語音轉化為文字)(升級版)

    語音識別(利用python將語音轉化為文字)(升級版)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 基于語音識別(1)進行的完善,修改了60秒斷觸的問題,另外可以更加方便的調用,語音識別1的鏈接如下: https://blog.csdn.net/m0_46657126/article/details/124531081 https://www.xfyun.cn/ ps:注冊賬戶是完全免費的,因

    2024年02月03日
    瀏覽(94)
  • vue項目,實現語音識別文字,前后端交互

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 最近實現一個錄音上傳功能,并且識別語音轉為漢字。 js-audio-recorder是基于第三方的vue插件,實現錄音,播放等功能。 代碼如下(示例): 代碼如下(示例): 該處使用的url網絡請求的數據。 前端調

    2024年02月12日
    瀏覽(93)
  • 使用Python進行語音識別:將音頻轉為文字

    語音識別是一項將語音信號轉換為可理解的文本的技術。在Python中,我們可以使用一些庫和工具來實現語音識別,并將音頻轉換為文本。本文將介紹如何使用Python進行語音識別的過程,并提供相應的源代碼。 步驟1:安裝所需的庫 首先,我們需要安裝一些Python庫來支持語音識

    2024年02月03日
    瀏覽(90)
  • whisper 語音識別AI 聲音To文字

    whisper 語音識別AI 聲音To文字

    Whisper ?是一個由 OpenAI 訓練并開源的神經網絡,功能是語音識別,能把 語音 轉換為 文字 ,在英語語音識別方面的穩(wěn)健性和準確性接近人類水平。 1、Whisper支持語音轉錄和翻譯兩項功能并接受各種語音格式,模型中、英、法、德、意、日等主流語言上取得85%以上的準確率,完全

    2024年02月08日
    瀏覽(96)
  • openai開源的whisper在huggingface中使用例子(語音轉文字中文)

    openai開源的whisper在huggingface中使用例子(語音轉文字中文)

    openai開源的語音轉文字支持多語言在huggingface中使用例子。 目前發(fā)現多語言模型large-v2支持中文是繁體,因此需要繁體轉簡體。 后續(xù)編寫微調訓練例子 GitHub地址: https://github.com/openai/whisper

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包