文字转语不起作用?

时间:2018-03-20 07:15:35

标签: ios objective-c iphone text-to-speech

我同时在应用程序中对文本和文本到语音进行演讲但由于某种原因,在语音转换结束后,其结果从服务器返回,文本到语音[苹果的默认API]不会产生任何声音,即使它在应用程序开始时为静态文本重现相同。

以下是文字转换的代码。

-(void)makeTextTalk:(NSString *)phraseToSpeak{
[self stopTalkingAPI];
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:phraseToSpeak];
AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-IN"];
utterance.voice = voice;
[synthesizer speakUtterance:utterance];
}

2 个答案:

答案 0 :(得分:1)

U一旦语音到文本进程完成,需要将AVAudioSessionMode更改为默认值。使用此更改它:

   AVAudioSession *audioSession = [AVAudioSession sharedInstance];
   [audioSession setCategory:AVAudioSessionCategoryPlayback];
   [audioSession setMode:AVAudioSessionModeDefault error:nil];

答案 1 :(得分:1)

_audioSession = [AVAudioSession sharedInstance];
[_audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
[_audioSession setMode:AVAudioSessionModeDefault error:nil];

最后,这解决了它。 如果TTS和STT持续工作,则会话类别必须是AVSessionCategoryPlayAndRecord,并且必须使用set options参数调用该函数。