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