Python使用whisper實現(xiàn)語音識別(ASR)的示例代碼
Whisper的安裝
Whisper是OpenAI的一個強大的語音識別庫,支持離線的語音識別。在使用之前,需要先安裝它的庫:
pip install openai-whisper
使用whisper,還需安裝setuptools-rust:
pip install setuptools-rust
但是,whisper安裝時,自帶的pytorch可能有些bug,因此需要卸載重裝:
卸載:
pip uninstall torch
重裝:
pip install torch
另外,需要通過choco安裝ffmpeg庫。先通過管理員權(quán)限的PowerShell安裝choco:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
然后,在管理員權(quán)限的PowerShell安裝ffmpeg:
choco install ffmpeg
完成這些步驟之后,我們就可以使用啦!
Whisper的基本使用
whisper的基本代碼如下:
import whisper
model = whisper.load_model("base")
result = model.transcribe("zh.wav")
print(result['text'])
其中,zh.wav可以換成你自己的音頻。我的控制臺輸出:
我們說,40月2日混淩土不能與引力長相互攪拌不然會因為愛銀斯坦的相對論而引發(fā)雜串的食品安全問題這是嚴重的金融危機
可以看到,它的識別結(jié)果還行(因為我的音頻是AI合成的,識別會有一定誤差),但是輸出的是繁體中文,我們需要把他變成簡體中文。
識別結(jié)果轉(zhuǎn)簡體中文
可以通過opencc庫實現(xiàn)轉(zhuǎn)化,先安裝:
pip install opencc
然后修改代碼:
import whisper
import opencc
model = whisper.load_model("base")
result = model.transcribe("zh.wav")
cc = opencc.OpenCC("t2s")
res = cc.convert(result['text'])
print(res)輸出:
我們說,40月2日混凌土不能與引力長相互攪拌不然會因為愛銀斯坦的相對論而引發(fā)雜串的食品安全問題這是嚴重的金融危機
斷句
在一個語音中,我們都會有一些停頓。但是,在識別結(jié)果中,這些停頓并沒有被完全表示出來。我們可以如此修改代碼,實現(xiàn)按斷句輸出結(jié)果:
import whisper
import opencc
model = whisper.load_model("base")
result = model.transcribe("zh.wav")
cc = opencc.OpenCC("t2s")
for i in result['segments']:
res = cc.convert(i['text'])
print(f"斷句開始于{i['start']}秒,結(jié)束于{i['end']}秒,識別結(jié)果:{res}")輸出:
斷句開始于0.0秒,結(jié)束于5.36秒,識別結(jié)果:我們說,40月2日混凌土不能與引力長相互攪拌
斷句開始于5.36秒,結(jié)束于11.14秒,識別結(jié)果:不然會因為愛銀斯坦的相對論而引發(fā)雜串的食品安全問題
斷句開始于11.14秒,結(jié)束于13.44秒,識別結(jié)果:這是嚴重的金融危機
到此這篇關(guān)于Python使用whisper實現(xiàn)語音識別(ASR)的示例代碼的文章就介紹到這了,更多相關(guān)Python whisper語音識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的Matplotlib庫圖像復(fù)現(xiàn)學(xué)習(xí)
這篇文章主要給大家介紹了關(guān)于如何利用Matplotlib庫圖像復(fù)現(xiàn),matplotlib模塊提供了很高級和非常友好的使用方式,使用起來也是非常方便的,需要的朋友可以參考下2021-08-08
使用Python實現(xiàn)將Excel表格插入到Word文檔中
在日常辦公場景中,通過Python腳本自動化整合Excel數(shù)據(jù)與Word文檔,能夠?qū)崿F(xiàn)表格的智能遷移,滿足不同場景下數(shù)據(jù)呈現(xiàn)的專業(yè)性要求,下面小編就來為大家介紹一下具體實現(xiàn)的三種方法吧2025-03-03
教你利用python的matplotlib(pyplot)繪制折線圖和柱狀圖
Python繪圖需要下載安裝matplotlib模塊,它是一個數(shù)學(xué)繪圖庫,我們將使用它來制作簡單的圖表,如折線圖和散點圖,下面這篇文章主要給大家介紹了關(guān)于利用python的matplotlib(pyplot)繪制折線圖和柱狀圖的相關(guān)資料,需要的朋友可以參考下2022-05-05
sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程
這篇文章主要介紹了sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
淺談keras中的keras.utils.to_categorical用法
這篇文章主要介紹了淺談keras中的keras.utils.to_categorical用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

