2020年3月28日

自動上字幕的pyTranscriber 和 autosub


昨天試用了自動上字幕的pyTranscriber,真是神器。
使用介紹 pyTranscriber 影片自動上字幕免費軟體!10分鐘搞定1小時影片
pyTranscriber 的GitHub https://github.com/raryelcostasouza/pyTranscriber/
最新軟體下載處 https://github.com/raryelcostasouza/pyTranscriber/releases/tag/v1.3-stable

我的教學影片每片約10分鐘,用此軟體上字幕的時間不到1分鐘,正確率很高,但問題應該是我的口齒不清。我用VLC看字幕上去的效果,快被自己笑死。

下圖這個片段原文其實是「葉子照到陽光之後會這樣反光,這反光就是這些角..質層。」,結果「反光,這反光」聽成了「膀胱解膀胱」


這段本來是說「咖啡色的就是之前我們看鴨跖草的時候,叫你撕的那層皮」
結果變成「咖啡這種的就是之前我們在看鴨子吵的時候叫你吃的那層皮」,一整個變得很合理,也很兇殘



字幕辨識出來之後,其實都還要再經過手動調整。推薦可以用Aegisub 這套軟體來調整,最後就可以跟著一起丟進Youtube去上字幕了。

以上是用學校電腦有win7的試做,回到家之後改用ubuntu結果問題很多。首先是 pyTranscriber 雖然有for linux的,但是使用上一直crash,很難修。所以我就看 pyTranscriber 的說明 ,它是從autosub folk來的。所以我就改下載 autosub 來做,沒有GUI,要直接在終端機下指令執行。

不過執行的時候一直error,才發現它是用python2寫的,偏偏我環境都已經改用 python3了,要不我就是為了這軟體再弄一個python2的環境,不然就是要改寫程式。

還好後來看到 https://github.com/agermanidis/autosub/issues/141 有提出這個討論

The current version of autosub does not seem to work with python3. However, I've found that the code can be fixed as follows:

For all python files in the project, run:
2to3 -f all -w file_name
On line 77 of autosub, change "/n" to b"/n"
These changes give you python3 compatibility.

我就分兩階段把程式改成python3來執行


1.進入下資料夾,XXXXX為使用者名稱
/home/XXXXX/anaconda3/lib/python3.7/site-packages/autosub/
將此資料夾內的檔案,都以下法變更為python3的檔案
2to3 -f all -w file_name

2.再將此檔案的77行,把"/n" 更改為 b"/n"
/home/XXXXX/anaconda3/bin/autosub



autosub的使用方式很簡單,這樣一行就好,我只要更改最後的video.mp4檔案。預設產出的srt檔案會和影片在同一個資料夾裡
autosub -S zh-TW -D zh-TW ./video.mp4