【實(shí)時(shí)AI字幕】基于whisper的直播語音轉(zhuǎn)字幕軟件的安裝與使用
寫在前面:
本人非專業(yè)程序員,計(jì)算機(jī)技術(shù)為業(yè)余愛好。所以文中有關(guān)語音識別原理部分恕我無法講解,只能對軟件使用部分提出解決方案,歡迎閱讀此篇文章的人提出修改意見。
這篇文章寫于2022年10月15日,文中提到的工具還在持續(xù)開發(fā)中,不保證文章內(nèi)容一直有效。
推薦直接跳到colab云端運(yùn)行部分,快速上手體驗(yàn)whisper的神奇

方法簡介:
Whisper(https://github.com/openai/whisper)是OpenAi最近公開的一個開源語音識別項(xiàng)目,依靠大量的數(shù)據(jù)學(xué)習(xí)有著媲美商業(yè)級的音頻轉(zhuǎn)錄效果。本地化、可調(diào)節(jié)精度、多語種支持都是它的優(yōu)點(diǎn),而且因?yàn)橹黧w使用的python也可以直接作為模塊導(dǎo)入進(jìn)行拓展開發(fā),上線不到一個月已經(jīng)快有上百個相關(guān)項(xiàng)目產(chǎn)生了。
Whisper可以用CPU和GPU(CUDA)兩種方式來跑模型,具體顯存需求可見如下:

有關(guān)whisper的原理講解可見官方博客:
https://openai.com/blog/whisper/
今天要介紹的stream-translator(https://github.com/fortypercnt/stream-translator)就是基于Whisper和streamlink開發(fā)的,可以將直播源導(dǎo)入并實(shí)時(shí)輸出字幕的工具。
安裝Whisper:
雖然stream-translator有自動安裝whisper的設(shè)計(jì),但我還是建議先安裝Whisper測試可用,這樣會減少很多麻煩。
1、 環(huán)境與依賴
Whisper使用python編寫,用PyTorch訓(xùn)練模型,轉(zhuǎn)錄部分要利用到ffmpeg處理音視頻。
所以這部分主要介紹這三個工具的安裝,其余依賴numpy、transformers等一般不會有坑,跑官方腳本即可。
Python:
進(jìn)入下載頁(https://www.python.org/downloads/),點(diǎn)擊那個大大的黃色按鈕Download Python 3.10.8下載并按照步驟安裝即可,現(xiàn)在的Python安裝已經(jīng)自帶添加到環(huán)境變量的功能,安裝的時(shí)候留意Add Python 3.10.8 to PATH就行。
非windows系統(tǒng)的按照官方的指引界面下載。
在下載過程中速度沒速度或者太慢,可以選擇國內(nèi)鏡像站,我一般用華為的:
https://repo.huaweicloud.com/python/
不知道下載那個文件可以對比你在官網(wǎng)下載的文件名。
PyTorch:
這里是第一個坑,按照官方的一鍵安裝腳本很可能安裝不到正確版本的torch,導(dǎo)致運(yùn)行時(shí)報(bào)錯或者出現(xiàn)CPU跑冒煙而GPU不工作的情況。
本部分教程來自于:https://github.com/pytorch/pytorch/issues/30664#issuecomment-757431613
如果已經(jīng)安裝了torch,請先卸載掉
清除pip緩存
安裝支持CUDA版本的torch
ffmpeg:
官方給出的引導(dǎo)是使用包管理器,windows平臺使用的Chocolatey和Scoop。但我實(shí)測中發(fā)現(xiàn)安裝這兩個工具的時(shí)候出現(xiàn)的問題可能比安裝whisper還多,所以我推薦使用傳統(tǒng)方式,下載編譯好的包并手動設(shè)置環(huán)境變量。
官方給出的windows下載有兩個,以https://www.gyan.dev/ffmpeg/builds/ 為例,找到ffmpeg-release-essentials.zip下載并解壓即可,你應(yīng)該可以在bin文件夾下找到編譯好的ffmpeg.exe,如果沒有說明你可能下載到了沒做編譯的開發(fā)版。
配置到環(huán)境變量這一步可以參考各種其他教學(xué),這里主要說三點(diǎn)容易出問題的步驟。
注意是系統(tǒng)變量里的Path而不是用戶變量里的。
文件夾路徑要寫到文件所在路徑,也就是bin文件夾。
環(huán)境變量配置好后要重啟命令提示符/終端才可生效。
2、 主程序安裝
一鍵安裝項(xiàng)目。
安裝過程中可能遇到的問題大多都和網(wǎng)絡(luò)有關(guān),請查閱修復(fù)連接github的方法。
或者是在github上選擇Download Zip之后,解壓運(yùn)行如下指令手動安裝:
如果電腦上使用了代理軟件,可以用輸入如下配置可以讓命令行窗口臨時(shí)走代理。我用的clash默認(rèn)端口是7890,讀者請根據(jù)實(shí)際情況修改。
使用Whisper:
whisper提供了兩種兩種方式:命令行和作為模塊在python文件中調(diào)用。這里面對非專業(yè)讀者主要講一下在命令行的使用。
有關(guān)命令行:
windows在項(xiàng)目所在文件夾的地址欄里直接輸入cmd,會在當(dāng)前文件夾下打開命令行
輸入部分文件名后可以點(diǎn)擊TAB鍵自動補(bǔ)全
命令行遇到的各種網(wǎng)絡(luò)問題可以看
指令格式:

常見報(bào)錯:
UserWarning: FP16 is not supported on CPU; using FP32 instead
這句提示的意思是現(xiàn)在在用CPU跑模型,如果你用的電腦沒有顯卡或者是顯卡不支持CUDA/CUDA版本過低那么這個提示是正常的。否則請返回PyTorch的安裝步驟,安裝支持CUDA版本的torch。
FileNotFoundError: [WinError 2] The system cannot find the file specified
環(huán)境問題調(diào)用ffmpeg的部分出錯了,可能的原因有兩種:
沒有安裝ffmpeg
沒有安裝ffmpeg-python
如果已經(jīng)安裝請確認(rèn)環(huán)境變量的配置是否正確,在命令提示符中輸入ffmpeg測試一下。
ModuleNotFoundError: No module named 'torch._C'
依舊是PyTorch的問題,卸載重裝八成有效
RuntimeError: CUDA out of memory.
你的顯卡干不了這么多,換一個小點(diǎn)的模型吧(參考模型與顯存需求對照表)
No module named 'setuptools_rust'
按照提示安裝就行
stream-translator的使用:
對于完全新手/網(wǎng)絡(luò)狀況一般的朋友,非常推薦在colab云端運(yùn)行。具體的操作方法我也寫在了ipynb文檔里,按照步驟進(jìn)行基本都能運(yùn)行成功
https://colab.research.google.com/drive/1SEhfzUSm07IUjMd5_HrbmXd9cyh0N-wW?usp=sharing
安裝方式:
stream-translator的主要額外依賴是streamlink,此外還有一些優(yōu)化顯示效果的庫
使用方法:
優(yōu)化配置:
如果在國內(nèi)使用需要設(shè)置一下代理,每次配置太過麻煩,可以直接把以下代碼加入translator.py文件開頭部分
此外有關(guān)其他優(yōu)化可見我ipynb里所寫。

需要注意的是,Whisper本身沒有提供實(shí)時(shí)轉(zhuǎn)錄的接口,這個工具的實(shí)現(xiàn)原理其實(shí)是指定秒數(shù)的切片并調(diào)用Whisper,對上下文調(diào)整功能的支持并不算太好。作者的解釋見:
https://github.com/openai/whisper/discussions/225