-1

我正在使用 Unity 5.3 和最新的 MS STT iOS SDK。如果我设置 UnitySetAudioSessionActive(1),MS STT 将在我第二次调用语音识别时给我一个错误状态 - SpeechClientStatus_MicrophoneUnavailable。

我不得不调用 UnitySetAudioSessionActive(1) 的原因是在我使用 MS SpeechToText 之后,我的 IOS 应用程序无法播放音频剪辑而没有任何错误。这是我发现我可以再次听到音频剪辑的唯一方法。

4

1 回答 1

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);
于 2016-07-13T14:31:43.567 回答