iOS開發TTS技術即文本轉語音

來源:互聯網
上載者:User
iOS開發TTS技術即文本轉語音 iOS系統文本轉語音的實現

在iOS7之前,想要實現語音播報文字內容,可能需要第三方資產庫來實現。現在在iOS之後,系統為我們提供了語音播報文字的功能,我們不僅可以播報英語內容,也可以播報漢語文字實現。
TTS[Text To Speech] :
主要依賴AVSpeechSynthesizer,AVSpeechUtterance,AVSpeechSynthesisVoice,要使用這些類必須先加入AVFoundation架構:
AVSpeechSynthesisVoice:用來配置發音,支援的發音非常多;
[AVSpeechSynthesisVoicespeechVoices]類方法可用看到支援的發音種類;
AVSpeechUtterance:這個類就是用來將字串合成為語音對象提供給AVSpeechSynthesizer來播放,這個類還有一些執行個體方法用來控制語速,音調等等。。

實現代碼:系統實現方法比較簡單,但需要在iOS7之上才可以,IOS7之前一般語音辨識是靠一些第三方庫,或者使用Google語音介面(下文介紹)
建立一個textField,輸入將要播放的文本,建立一個button,實現文本轉語音

self.textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 150, 30)];[self.view addSubview:self.textField]; self.textField.borderStyle = 3;self.textField.placeholder = @"請輸入文本";self.button = [UIButton buttonWithType:UIButtonTypeSystem];[self.view addSubview:self.button];self.button.frame = CGRectMake(100, 180, 100, 30);[self.button setTitle:@"語音播放" forState:UIControlStateNormal];[self.button addTarget:self action:@selector(playString:) forControlEvents:UIControlEventTouchUpInside];

文本轉語音方法實現代碼:

- (void)playString:(UIButton *)button{    if (![self.textField.text isEqualToString:@""]) {        AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:self.textField.text];        AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];//設定語言        utterance.voice = voice;        NSLog(@"%@",[AVSpeechSynthesisVoice speechVoices]);        utterance.volume= 1;  //設定音量(0.0~1.0)預設為1.0        utterance.rate= 0.01;  //設定語速        utterance.pitchMultiplier= 1.1;  //設定語調        AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc]init];        [synth speakUtterance:utterance];    }}

據我測試,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.