上個月底幫小孩抓了英文套書的所有音檔,為了方便檢索,利用 OpenAI Whisper 轉好了字幕檔,接著又想弄個雙言的字幕檔,連聽、讀的小工具都寫好了;哈!像滾雪球一樣,愈玩愈大。
在尋找能批次翻譯的工具時,發現了這個 Translate Shell
看中它的原因有兩個,它可以選用 Google 或是 Bing 來進行翻譯,還能將文字轉合成語音(TTS)後的檔案直接儲存。Google TTS 儲存成 MP3 之前玩過,Bing TTS 轉存以前玩過較複雜的,但 Translate Shell 的看起來較簡單。但是的但是,試過才發現 Translate Shell 中的 Bing TTS 抓取程序已經不能用了。不過!研究過以後,我已經知道目前 Bing TTS 的擷取程序了,而且也以 Python 跟 JavaScript 實作過,要轉為 Traslate Shell 的 gawk 語法,也不是難事。
針對 Bing TTS 的程序修正過以後的版本放在這裡:
Translate Shell 滿特別的地方是它使用 GNU Bash 的環境,執行 GNU Awk 的指令來完成翻譯或是抓取 TTS 合成語音。這兩樣如果是在 Unix like 中,要安裝及使用,實在太容易了。但是在我的 Windows 7 中,雖然有 bash ,也有 gawk,但試了好幾天,總是看得到誤錯訊息,而看不見翻譯結果。本來已經放棄 Windows,改到 Mac OS X 、 Linux Mint 跟 Google Colab 中去測試我修改好的 Translate Shell 了。重新再找 Windows 7 的解決方案時,看到了一個對我來說很新鮮的東西 「MYSYS2」 :
它可以在 Windows 建構一個誇平臺的開放環境,不但有我需要玩 Translate Shell 的環境,安裝完,佔的磁碟空間也不大。那有沒有支援 Windows 7 呢?幸好!舊版的是可以安裝的。詳細說明在官網中:
支援 Windows 7 的最後版本在這裡下載:
安裝完,測試了一下,在 MSYS2 中可以正常執行 Translate Shell ,這樣子我修改程式就不用在不同系統中切來切去了。
在 Windows 中想編譯 Translate Shell 可以下這樣的指令:
gawk -f build.awk build -target=bash -type=release
成功的話,可以在 build 目錄中找到 trans 這個檔案。
在 MSYS2 中執行 Translate Shell |
Translate Shell 以這樣的指令可以製作中文字串的合成語音:
trans -e bing -b -speak -no-translate -no-play -download-audio-as tts.mp3 zh-TW:en "我現在要來測試一下語音合成的功能,將語音儲存為MP3檔案"
參數記錄一下:
- -e bing : 使用 Bing 來進行翻譯或合成語音(不指定時,使用 Google)。
- -b : 使用精簡模式,顯示較少的結果。
- -speak : 說出合成原文的語音;如果想要播放的是翻譯的語音,就用 -p 的參數。
- -no-translate : 只合成語音,不翻譯。
- -no-play : 不播放語音。
- -download-audio-as : 將語音儲存為指定的檔名(本例是儲存為 tts.mp3)。
- zh-TW:en 原文為繁體中文,翻譯為英文(雖然本例不進行翻譯)。
沒有留言:
張貼留言