2024年7月10日 星期三

以 MSYS2 在 Windows 構建 Translate Shell 的環境

2024年7月10日 星期三

上個月底幫小孩抓了英文套書的所有音檔,為了方便檢索,利用 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 原文為繁體中文,翻譯為英文(雖然本例不進行翻譯)。
後續再來分享 HTML5 支援多語字幕的 MP3 聽讀小工具,及以 Python 批次呼叫翻譯、下載合成語音的小工具。

相關連結


沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket