2013年4月24日 星期三

把檔案名稱轉成語音檔的小工具

我在跑步的時候會聽音樂, 但是聽完都不知道那一首是那一首, 最近開始聽古典樂, 情況更嚴重,  很熟的旋律卻都不知道名稱; 於是想自己寫個程式把歌名轉成語音檔。
  研究了一下MP3的Tag ID3v2, 覺得有點複雜, 所以先簡單寫個請檔名的就好。比較完整的方法應該是讀出MP3的Tag, 把想要唸出來的欄位如歌名, 演唱/演奏者等選好, 然後轉成語音, 再選擇要不要合併到原曲, 但是工程不小(對我來說), 先偷個懶, 因為每天跑步時都要聽, 先速成一個程式再說, 所以決定讀檔名就好。
  那要怎麼把文字轉成語音呢? 找不到現成的程式庫 (其實程式庫也不是一個好的解決方法), 結果找到了一個目前免費的Web服務: 工研院文字轉語音Web服務(ITRI TTS Web Service), 只要註冊就可以使用下載服務。
  於是註冊完在網頁上試一下, 效果還不錯, 就研究一下它所提供的Web API, 試了一下SOAP介面, 雖然和文件寫的有小小出入,但處理掉就動作正常。做了一個業餘風格的程式:



我是用Visual Studio 2012 Express C#寫的, VS2012Exp是第一次下載來用, C#很不熟, 我不喜歡它, 但是C++連Windows Form的樣版都被砍掉了, 要試Service Reference(也就是連上工研院Web API)的機會都沒有。免費的開發工具沒得挑剔, 只有硬著頭皮寫下去啦。其實它也還OK啦, 2天就搞得差不多了, 有需要程式的人, 在這裏, 要安裝.NET FrameWork4.0以上, 記得要去工研院TTS申請個帳號才能把語音檔下載回去
  把轉好的語音檔和原來的音樂檔用播放列表(PlayList)排好, 你就可以用聽的就知道接下來要播放的是什麼音樂了。