IOS實現TTS(文本轉語音)__IOS

來源:互聯網
上載者:User

前言


在IOS7之前一般語音辨識是靠一些第三方庫,或者使用Google語音介面, 其中Google的語音介面最好。

偉大的Google~~ 不過現在升級的IOS內建文本轉語音也非常不錯,支援很多種文字,不過聲音有點難聽:

IOS 7 文本轉語音的實現

實現TTS 主要依賴AVSpeechSynthesizer,AVSpeechUtterance,AVSpeechSynthesisVoice,要使用這些類必須先加入

AVFoundation架構:

AVSpeechSynthesisVoice :用來配置發音,支援的發音非常多.個人感覺台灣發音最好聽~通過調用

[AVSpeechSynthesisVoicespeechVoices]類方法可用看到支援的發音種類;

AVSpeechUtterance :這個類就是用來將字串合成為語音對象提供給AVSpeechSynthesizer來播放,這個類還有一些

執行個體方法用來控制語速,音調等等。。

實現代碼:

AVSpeechUtterance *utterance = [AVSpeechUtterancespeechUtteranceWithString:@“hello”];

        //英式發音

        AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoicevoiceWithLanguage:@“en-GB”];

        utterance.voice = voice;

        NSLog(@"%@",[AVSpeechSynthesisVoicespeechVoices]);

        AVSpeechSynthesizer *synth = [[AVSpeechSynthesizeralloc]init];

        [synth speakUtterance:utterance];

        

使用SDK內建的方法實現TTS非常的簡單,不過只有IOS7以上才支援這些方法,所有還是得找個替代方法;


使用Google介面實現TTS

使用Google介面實現文本轉語音一般的方法就是上傳一段文字到Google的介面,然後它返回一個MP3格式的音頻。下載下來播放。這種方法比較麻煩。

在我用webView的時候發現了個可以偷懶的方法。在webView中有個屬性可以自動播放網頁上的流媒體,只要設定這個屬性就可以不用下載也直

接播放音頻。

實現代碼

  NSString *str = [NSStringstringWithFormat:@"http: //translate.google.com/translate_tts?tl=en&q=%@",@“hello”];

        NSURL *url    = [NSURLURLWithString:str];

        NSURLRequest *request =   [[NSURLRequestalloc]initWithURL:url];

        UIWebView *webView     = [[UIWebViewalloc]init];

webView.allowsInlineMediaPlayback = YES;//設定這個屬性webView就會自動播網頁上的流媒體,ipad是預設YES;

// iPhone Safari defaults to NO. iPad Safari defaults to YES

//現在只要載入這個頁面,在載入完成後就會播放你選擇的文字了.

          [self.webViewloadRequest:request];


PS: 接下來我會寫一些在IOS上實現語音辨識的內容,在IOS上將錄製的PCM格式的錄音轉換成FLAC格式,然後上傳到Google介面進行語音辨識,有興趣的繼續關注~~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.