我正在使用Unity 5.3和最新的MS STT iOS SDK。如果我设置UnitySetAudioSessionActive(1),MS STT会在我调用语音识别时第二次给出错误状态 - SpeechClientStatus_MicrophoneUnavailable。
我必须调用UnitySetAudioSessionActive(1)的原因是在我使用MS speechToText后,我的IOS应用程序无法播放音频片段而没有任何错误。这是我发现我能再次听到音频片段的唯一方法。
答案 0 :(得分:0)
我已通过以下两个步骤解决了问题 -
在启动麦克风和识别的方法中,在调用startMicAndRecognition之前添加这些行
AVAudioSession * _aSession= [AVAudioSession sharedInstance];
[_aSession setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];
[_aSession setActive:YES error:nil];
MicrophoneRecognitionClient* micClient = [SpeechRecognitionServiceFactory createMicrophoneClient:(SpeechRecognitionMode_ShortPhrase)
withLanguage:(self.defaultLocale)
withPrimaryKey:(self.subscriptionKey)
withSecondaryKey:(self.subscriptionKey)
withProtocol:(self)];
[micClient startMicAndRecognition];
在获得最终消息的方法中,执行类似的操作 -
[micClient endMicAndRecognition];
UnitySetAudioSessionActive(1);