IOS研究之IOS下TTS語音合成的幾種方案

來源:互聯網
上載者:User

IOS研究之IOS下TTS語音合成的幾種方案


今天我說說iOS平台的TTS[Text To Speech]即語音合成技術方案。如果是在Android平台TTS根本不算個事情,因為Android系統本身就內建了TTS功能,中英文的使用效果上也還是不錯的。而iOS平台由於本身不支援TTS,所以開發人員如果想使自己的App具有TTS功能,首先要找到好用的TTS庫。上一篇我們學習了iOS Quartz2D字型描邊加粗等有興趣的朋友可以看下。
根據我的瞭解,在iOS平台有以下幾個選擇:
1,OpenEars和FliteTTS
Google下很容易就會檢索到這兩個庫:OpenEars和FliteTTS。OpenEars是開源的iOS庫,支援離線的語音辨識和TTS,但它主要是針對英語。而FliteTTS比較小巧,也不支援中文。如果做中文語音合成,這兩個庫根本用不上(網路上的廣泛說法,我沒有驗證)。


2,Google的線上語音合成服務
還有一個選擇就是Google的線上語音合成服務,請求格式為:

http://translate.google.com/translate_tts?tl=en&q=tekuba

如上樣本會返回“tekuba”的英文讀音檔案的mp3。如果需要的是中文發音,可以修改tl參數為zh,如下樣本:

http://translate.google.com/translate_tts?tl=zh&q=成功智慧網

如果App中需要的是固定的語音播報,使用google的這個線上服務是個不錯的選擇,只需要一次請求,將返回的mp3儲存在本地,以後直接讀取本地mp3即可。但是大部分情境都是需要轉換為語音的文本不固定,我們就只能選擇別的辦法了。

3,科大訊飛語音以及百度語音
目前,做中文語音合成的比較好的算是科大訊飛了,在語速,停頓上效果都不錯。但是它提供的iOS版本的SDK只是支援線上的語音合成(和上面google的線上合成服務類似),目前不支援本地離線合成。我諮詢了科大訊飛的技術人員,他們說支援離線語音合成的iOS版本SDK大概會在年中發布(我寫本文時是2014年)。
另外百度也在2013年10月份開發了語音技術平台,不過現在使用還需要申請,我沒有嘗試,不知道它是否支援iOS的離線語音合成,如果哪位同學使用過,也可以分享下。

4,iOS7提供的AVSpeechSynthesizer等新特徵
如果你的App僅支援iOS7系統的話,那麼這個iOS7中為AVFoundation.Framework引入的新特徵一定很適合你。
使用時匯入#import ,樣本如下:
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@”成功智慧網”]; //需要轉換的文本
[av speakUtterance:utterance];
不過,據我測試,iOS7提供的這個介面合成的語音比較生硬且沒有停頓。


總結下來,在iOS平台目前語音離線合成還是比較麻煩的,如果是線上合成的話,使用科大訊飛的產品是個不錯的選擇。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.