2024年1月30日 星期二

vosk: 影片/音檔聽寫機

我比較喜歡閱讀; 不太喜歡看影片/聽podcast。 找到 summarize.tech 這個網站不錯, 餵它一部英文 youtube 影片連結, 就幫你產生文字摘要。 但是它好像只吃有附字幕檔的影片。 那如果是其他語言呢? 我試了 一部自動產生字幕的西班牙文影片, 它會產生英文的文字摘要。 那如果是用 video downloadhelp 抓回來的影片呢? 如果想離線使用呢? 那就安裝 vosk, 在自己的電腦上離線產生各種語言的字幕檔吧!

先安裝 ffmpeg 與 vosk: apt install ffmpeg ; pip3 install vosk 再查詢它安裝的位置: pip3 show vosk 例如在我的系統上, 顯示 Location 是: /home/ckhung/.local/lib/python3.9/site-packages 於是找到 /home/ckhung/.local/lib/python3.9/site-packages/vosk/__init__.py 在裡面找到這一句:

MODEL_DIRS = [os.getenv("VOSK_MODEL_PATH"), Path("/usr/share/vosk"),
        Path.home() / "AppData/Local/vosk", Path.home() / ".cache/vosk"]

這幾個路徑是它未來尋找及儲存模型檔的地方。 下 vosk-transcriber --list-languagesvosk-transcriber --list-models 可以看到它支援三十幾種語言、 提供一百多個模型。 從 模型列表 可以看到: 很多語言都有幾十MB的小模型及1GB以上的大模型。

隨便找一部 短短的英文影片 (存檔命名為 lion-king.mp4) 來試試看: vosk-transcriber -i lion-king.mp4 -t srt -o tmp1.srt 初次聽寫英語聲音檔, 它會把小的 en 模型檔下載到 ~/.cache/vosk/ 底下。 然後會產生字幕檔 lion-king.srt 。 呃, 聽錯蠻多字的。 手動下載 vosk-model-en-us-0.42-gigaspeech.zip、 解壓縮、 把 .zip 檔搬走或刪掉、 改用大的英語模型來聽寫: vosk-transcriber -m ~/.cache/vosk/vosk-model-en-us-0.42-gigaspeech/ -i lion-king.mp4 -t srt -o tmp2.srt 這次花比較長的時間載入模型, 然而聽寫的文字也比較準確。

再用一部 短短的中文影片 (存檔命名為 kp-vax.mp4), 指定用中文聽寫: vosk-transcriber -l cn -i kp-vax.mp4 -t srt -o tmp3.srt 完全慘不忍睹, 顯然是因為都用中國發音及中國語彙訓練出來的。 即使是改採大模型, 聽寫出來的文字也是亂七八糟。

好啦, 至少英文聽寫是 OK 的。 改天可以拿 法德公共電視台的三合會黑幫專輯 來測試一下法文聽寫, 再轉英文或中文字幕看看。

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。