我同时在应用程序中对文本和文本到语音进行演讲但由于某种原因,在语音转换结束后,其结果从服务器返回,文本到语音[苹果的默认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];
}
答案 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参数调用该函数。