用 OpenAI Whisper 將會議錄轉為文字檔 - Linux
前言
時間來到八月底,又是個趕期中報告與推進期末進度的季節,面對此等繁忙的時段,大量無意義且非必要的會議當然是無可避免的任務。
就跟七月鬼門開一樣,台灣政府、學校和民間企業也都會安排時間,讓那些腸肥腦滿的高官與不食人間煙火的教授們,走出校園來耍耍官威和刁難你報告上的標點符號,釋放一下平時過太爽的壓力 (?)
而公司的主任和老闆也彷彿怕你不夠忙似的,塞了一堆非必要的工作來訓練你的抗壓力,測試你是否是個人才。
流浪貓因為平時做事認真、工作非常有效率的關係,因此非常榮幸的承接聽打會議紀錄的這個重責大任。
雖然聲音轉文本的工具市面上早已琳瑯滿目,但準確度卻不一定很高。如果你不信任這些工具的話,其實也可以用 Audacity 將會議記錄去除雜音,然後老老實實的慢慢聽打。
但現代問題要用現代手段,人工智慧崛起的時代當然就要用 AI 來解決這種枯燥乏味的任務。
講這麼多,所以我說那個工具呢?
如果你對流浪貓的廢文沒興趣,也不想被 CLI 工具的各種 Bug 卡死,那就直接下載 Whisper Desktop 即可,它能直接將錄音檔轉換成相當精確的文字稿。
之後依據指示,下載 ggml-medium.bin 即可開始轉錄,簡單到我不知道該怎寫教學步驟。
使用 Buzz 進行轉錄
如果你是 Linux 平台的使用者,可以使用 Buzz 來轉錄。直接到這裡下載 buzz-0.8.3.deb 安裝檔,或用指令進行安裝。
sudo apt-get install libportaudio2
sudo snap install buzz
如果你遇到了 snap: command not found 的問題,可以參考這篇文章進行修正,之後就能用 snap 來安裝 buzz 了。
sudo rm /etc/apt/preferences.d/nosnap.pref
sudo apt update
sudo apt install snapd
用 OpenAI Whisper 進行轉錄
當然,如果能這麼一帆風順,那流浪貓的網站早就倒了,因為人生往往就是充滿各種的 Bug。如果你的 buzz 在匯入檔案時會崩潰的話,那就用開山始祖 OpenAI Whisper 來跑吧。
安裝 Python
sudo apt install -y python
安裝 Pytorch
進入這個網站後,選擇符合你自身系統需求的選項,即可獲得適當的程式碼。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
安裝 ffmpeg
明明有安裝 ffmpeg,但執行 whisper 時卻會跳出 module ffmpeg has no attribute Error?如果你也遇到這個問題,可以參考下面的指令安裝 ffmpeg-python。維尼當馬騎
pip install ffmpeg-python
然後安裝 openai-whisper
pip install -U openai-whisper
最後,用以下指令進行錄音檔轉文本的任務。
whisper in.mp3 --language Chinese --model medium
如果系統找不到 whisper 這個程式,則用下面這個指令來更改環境。
export PATH=$PATH:/home/[USER]/.local/bin
用 ffmpeg 將 m4a 轉成 mp3
ffmpeg -i in.m4a -c:v copy -c:a libmp3lame -q:a 4 out.mp3
簡體修正成繁體
受限於訓練模型來源的關係,Whisper 往往會將中文錄音輸出成簡體中文。如果你不想多此一舉的進行簡繁轉換的話,可以在指令中加入提示詞讓它明白你要的語言。習進平水淹北京
whisper in.mp3 --language Chinese --model medium --initial_prompt="給我繁體中文,其餘免談"
用 Google Colab 加快語音轉錄速度
聲音轉文字的速度和準確性,很大一部分受電腦硬體的限制。畢竟如果能採用最精確的大模型 large 進行轉換的話,為什麼要委屈自己使用小模型呢?但遺憾的是,不是每個人都有符合系統需求的電腦硬體可以使用。面對這個困境,我們可以採用 Google Colab 來替我們進行運算。
用區塊鏈雲端平台 Akash Network 架設 Stable diffusion 運算 AI 色圖
本次 Colab 錄音轉文字教學來自以下這篇文章:
【Google Colab Python系列】OpenAI Whisper: 語音辨識產生字幕檔
程式碼則參考自「錄音檔轉文字.ipynb」
使用方法很簡單,於檔案 > 在雲端硬碟中另存副本後,即可在自己的雲端硬碟中備份,點擊執行階段 > 全部執行。
在上傳檔案區段將要轉錄的錄音上傳,最後在開始轉譯文字並輸出結束後,檔案會自動下載到預設的下載資料夾,此時就能檢視轉錄成果。
結語
這次的試驗讓我對人工智慧所需的電腦效能有新的體會,由於流浪貓的筆電是相當舊的型號,且機齡也已經超過十餘年。以 Medium 模型轉錄一段八秒鐘的錄音居然要跑十分鐘,看來真的要買新電腦了。
不過如果是用 Google Colab 進行的話,轉錄速度不但飛快,且因為能套用 Large 模型的關係,精確度也大幅提昇,連一些雜音、模糊、口齒不清的片段也能解譯出相對可靠的詞彙。
可惜 Colab 有傳輸頻寬和 OutOfMemoryError 的問題,因此很容易一不小心就超過使用限制。
延伸閱讀
Whisperis not recognized as an internal or external command, operable programor batch file