Python使用whisper實(shí)現(xiàn)語音識(shí)別(ASR)的示例代碼
Whisper的安裝
Whisper是OpenAI的一個(gè)強(qiáng)大的語音識(shí)別庫,支持離線的語音識(shí)別。在使用之前,需要先安裝它的庫:
pip install openai-whisper
使用whisper,還需安裝setuptools-rust:
pip install setuptools-rust
但是,whisper安裝時(shí),自帶的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可以換成你自己的音頻。我的控制臺(tái)輸出:
我們說,40月2日混淩土不能與引力長(zhǎng)相互攪拌不然會(huì)因?yàn)閻坫y斯坦的相對(duì)論而引發(fā)雜串的食品安全問題這是嚴(yán)重的金融危機(jī)
可以看到,它的識(shí)別結(jié)果還行(因?yàn)槲业囊纛l是AI合成的,識(shí)別會(huì)有一定誤差),但是輸出的是繁體中文,我們需要把他變成簡(jiǎn)體中文。
識(shí)別結(jié)果轉(zhuǎn)簡(jiǎ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日混凌土不能與引力長(zhǎng)相互攪拌不然會(huì)因?yàn)閻坫y斯坦的相對(duì)論而引發(fā)雜串的食品安全問題這是嚴(yán)重的金融危機(jī)
斷句
在一個(gè)語音中,我們都會(huì)有一些停頓。但是,在識(shí)別結(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']}秒,識(shí)別結(jié)果:{res}")輸出:
斷句開始于0.0秒,結(jié)束于5.36秒,識(shí)別結(jié)果:我們說,40月2日混凌土不能與引力長(zhǎng)相互攪拌
斷句開始于5.36秒,結(jié)束于11.14秒,識(shí)別結(jié)果:不然會(huì)因?yàn)閻坫y斯坦的相對(duì)論而引發(fā)雜串的食品安全問題
斷句開始于11.14秒,結(jié)束于13.44秒,識(shí)別結(jié)果:這是嚴(yán)重的金融危機(jī)
到此這篇關(guān)于Python使用whisper實(shí)現(xiàn)語音識(shí)別(ASR)的示例代碼的文章就介紹到這了,更多相關(guān)Python whisper語音識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python進(jìn)行Word文檔模板自動(dòng)化處理操作完整指南
在日常辦公和文檔處理工作中,我們經(jīng)常需要根據(jù)模板生成大量相似結(jié)構(gòu)的Word文檔,本文將深入介紹如何實(shí)現(xiàn)Word文檔模板的自動(dòng)化處理,從占位符提取到智能填充的完整流程,希望對(duì)大家有所幫助2025-10-10
Python的Matplotlib庫圖像復(fù)現(xiàn)學(xué)習(xí)
這篇文章主要給大家介紹了關(guān)于如何利用Matplotlib庫圖像復(fù)現(xiàn),matplotlib模塊提供了很高級(jí)和非常友好的使用方式,使用起來也是非常方便的,需要的朋友可以參考下2021-08-08
使用Python實(shí)現(xiàn)將Excel表格插入到Word文檔中
在日常辦公場(chǎng)景中,通過Python腳本自動(dòng)化整合Excel數(shù)據(jù)與Word文檔,能夠?qū)崿F(xiàn)表格的智能遷移,滿足不同場(chǎng)景下數(shù)據(jù)呈現(xiàn)的專業(yè)性要求,下面小編就來為大家介紹一下具體實(shí)現(xiàn)的三種方法吧2025-03-03
教你利用python的matplotlib(pyplot)繪制折線圖和柱狀圖
Python繪圖需要下載安裝matplotlib模塊,它是一個(gè)數(shù)學(xué)繪圖庫,我們將使用它來制作簡(jiǎn)單的圖表,如折線圖和散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于利用python的matplotlib(pyplot)繪制折線圖和柱狀圖的相關(guān)資料,需要的朋友可以參考下2022-05-05
sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程
這篇文章主要介紹了sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
淺談keras中的keras.utils.to_categorical用法
這篇文章主要介紹了淺談keras中的keras.utils.to_categorical用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07

