Python使用whisper實(shí)現(xiàn)語音識別(ASR)的示例代碼
Whisper的安裝
Whisper是OpenAI的一個強(qiáng)大的語音識別庫,支持離線的語音識別。在使用之前,需要先安裝它的庫:
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日混淩土不能與引力長相互攪拌不然會因?yàn)閻坫y斯坦的相對論而引發(fā)雜串的食品安全問題這是嚴(yán)重的金融危機(jī)
可以看到,它的識別結(jié)果還行(因?yàn)槲业囊纛l是AI合成的,識別會有一定誤差),但是輸出的是繁體中文,我們需要把他變成簡體中文。
識別結(jié)果轉(zhuǎn)簡體中文
可以通過opencc庫實(shí)現(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日混凌土不能與引力長相互攪拌不然會因?yàn)閻坫y斯坦的相對論而引發(fā)雜串的食品安全問題這是嚴(yán)重的金融危機(jī)
斷句
在一個語音中,我們都會有一些停頓。但是,在識別結(jié)果中,這些停頓并沒有被完全表示出來。我們可以如此修改代碼,實(shí)現(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é)果:不然會因?yàn)閻坫y斯坦的相對論而引發(fā)雜串的食品安全問題
斷句開始于11.14秒,結(jié)束于13.44秒,識別結(jié)果:這是嚴(yán)重的金融危機(jī)
到此這篇關(guān)于Python使用whisper實(shí)現(xiàn)語音識別(ASR)的示例代碼的文章就介紹到這了,更多相關(guān)Python whisper語音識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Ollama實(shí)現(xiàn)私有大模型知識庫
這篇文章主要介紹了Python使用Ollama實(shí)現(xiàn)私有大模型知識庫,在不依賴LangChain、LlamaIndex等框架的前提下,盡量減少第三方庫的使用,僅通過Ollama和NumPy兩個外部庫來實(shí)現(xiàn)RAG,需要的朋友可以參考下2022-01-01
憶童年!用Python實(shí)現(xiàn)憤怒的小鳥游戲
好久都沒玩過憤怒的小鳥了,今天咱自己做一個玩玩,文中有非常詳細(xì)的代碼示例,對想玩的小伙伴們很有用哦,需要的朋友可以參考下2021-06-06
Python 實(shí)現(xiàn)打印單詞的菱形字符圖案
這篇文章主要介紹了Python 實(shí)現(xiàn)打印單詞的菱形字符圖案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python實(shí)現(xiàn)迷宮生成器的詳細(xì)代碼
這篇文章主要介紹了Python實(shí)現(xiàn)迷宮生成器的詳細(xì)代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
Python讀取HTML中的canvas并且以圖片形式存入Word文檔
這篇文章主要介紹了Python讀取HTML中的canvas并且以圖片形式存入Word文檔,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
Python數(shù)據(jù)可視化Pyecharts制作Heatmap熱力圖
這篇文章主要介紹了Python數(shù)據(jù)可視化Pyecharts制作Heatmap熱力圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
Django框架自定義模型管理器與元選項(xiàng)用法分析
這篇文章主要介紹了Django框架自定義模型管理器與元選項(xiàng)用法,結(jié)合實(shí)例形式分析了自定義模型管理器與元選項(xiàng)的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07

