使用 Python 替影片自動產生字幕 srt 檔
前言
有時候我們要替影片上字幕是滿麻煩的事情,因為必須重複地聽才能夠抓出時間區段,但是如果透過工具先幫我們抓出 50% 字幕區間,然後在來做調整,這樣一定會比較準確,所以這邊做一下筆記該如何使用這個套件。
※ 注意這是透過 Google Translate 替我們抓出語音辨識的,所以可能翻譯出來會有點好笑(?),所以翻譯出來的結果主要也是與主講人口齒清晰度有關係。
使用工具
由於在 Window 上使用會稍微複雜一點,主要會使用到這幾個東西
流程操作
1.安裝 Python 2.7.12 (我已經安裝過了,所以就直接忽略吧)
2.開啟命令字元視窗 (CMD) 輸入以下指令
我是習慣使用 PowerShell。
1 | C:\Python27\Scripts\pip.exe install autosub |
安裝過程會稍微有點久,所以輸入完之後可以泡一下茶…
如果不想用上面這種方式也可以用另一種安裝指令,基本上大同小異
1 | C:\Python27\Scripts\pip.exe install https://pypi.python.org/packages/35/7b/9d5361c0f7abfcc6d826a5279b1c4501f7616505629f6c54857587ec6e37/autosub-0.3.9.tar.gz |
3.安裝完畢後,要輸入以下指令更改剛剛安裝的套件檔名(很重要)
CMD 作法:
1 | Rename C:\Python27\Scripts\autosub autosub_app.py |
Powershell 做法:
1 | Rename-Item C:\Python27\Scripts\autosub.py autosub_app.py |
如果不確定是否已經更改成功,可以進去 C:\Python27\Scripts
找看看 autosub.py
是否已經更改成 autosub_app.py
。
4.將剛剛下載的 ffmpeg 解壓縮,然後找到裡面的 ffmpeg.exe
複製起來
(路徑: ffmpeg-4.1.3-win64-static\bin)
接下來貼到 Python 目錄下
調整 autosub 程式碼
接下來必須調整 autosub_app.py
內部程式碼否則無法正常運作。
將約 48 行 temp = tempfile.NamedTemporaryFile(suffix='.flac')
修改為 temp = tempfile.NamedTemporaryFile(suffix='.flac', delete=False)
最後還有一個雷點一定要調整,否則絕對無法編譯,要將 138 ~ 140 的程式碼註解掉
AI 自動替影片產生字幕
終於到最後一步驟,接下來試著在指令視窗下輸入以下指令
1 | C:\Python27\python.exe C:\Python27\scripts\autosub_app.py --list-languages |
這些代表著可辨識的語言及辨識後生成的語言字幕,這邊只需要記得 zh-TW 即可。
接下來只需要輸入以下指令就可以自動辨識及生成字幕啦~
1 | C:\Python27\python.exe C:\Python27\scripts\autosub_app.py -S zh-TW -D zh-TW Video.mp4 |
指令說明:
1 | C:\Python27\python.exe C:\Python27\scripts\autosub_app.py -S 辨識語言 -D 輸出語言 影片路徑 |
以我的影片路徑做範例的話,就像這樣
1 | C:\Python27\python.exe C:\Python27\scripts\autosub_app.py -S zh-TW -D zh-TW C:\Users\Hsiangfeng\Downloads\Veido\test.mp4 |
編譯速度非常快,所以一下子就生成好哩
參考文獻
Install AutoSub Step to Step in Windows with Translate subtitle