Unity不能与Microsoft认知SpeechToText iOS SDK

时间:2016-07-10 02:45:43

标签: ios unity3d speech-to-text avaudiosession microsoft-cognitive

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

我必须调用UnitySetAudioSessionActive(1)的原因是在我使用MS speechToText后,我的IOS应用程序无法播放音频片段而没有任何错误。这是我发现我能再次听到音频片段的唯一方法。

1 个答案:

答案 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);