-1

我正在使用Unity 5.3和最新的MS STT iOS SDK。如果我設置了UnitySetAudioSessionActive(1),那麼MS STT會在我調用語音識別時給我一個錯誤狀態 - SpeechClientStatus_MicrophoneUnavailable。Unity不適用於Microsoft認知SpeechToText iOS SDK

我必須調用UnitySetAudioSessionActive(1)的原因是,在使用MS speechToText後,我的IOS應用程序無法播放音頻片段而沒有任何錯誤。這是我發現我可以再次聽到音頻片段的唯一途徑。

回答

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