2015-11-04 73 views
0

我有一個應用程序需要使用麥克風錄製用戶語音。我正在嘗試製作一個speech to text檢測輸入音頻的電平?

我的工作與SpeechKit.framework以下是用我的代碼:

-(void)starRecording{ 

    self.voiceSearch = [[SKRecognizer alloc] initWithType:SKSearchRecognizerType 
              detection:SKShortEndOfSpeechDetection 
              language:[[USER_DEFAULT valueForKey:LANGUAGE_SPEECH_DIC] valueForKey:@"record"] 
              delegate:self]; 
} 

- (void)recognizer:(SKRecognizer *)recognizer didFinishWithResults:(SKRecognition *)results { 
     long numOfResults = [results.results count]; 

     if (numOfResults > 0) { 
      // update the text of text field with best result from SpeechKit 
      self.recordString = [results firstResult]; 
      [self sendChatWithMediaType:@"messageCall" MediaUrl:@"" ContactDetail:@"{}" LocationDetail:@"{}"]; 

      [self.voiceSearch stopRecording]; 
     } 


     if (self.voiceSearch) { 
      [self.voiceSearch cancel]; 
     } 
     [self starRecording]; 
    } 

這使得SKRecognizer是一直開放,那件事降低應用程序的性能。

我想在麥克風檢測到輸入音頻時啓動SKRecognizer

我有一個方法呢?麥克風爲我輸入聲音時調用的方法還是總是返回檢測到的音頻電平的方法?

謝謝!

+0

您是否使用AvsudioRecorder類錄製音頻? – Jageen

回答

0

您需要使用SpeechKit類來設置音頻。 尋找細節;

http://www.raywenderlich.com/60870/building-ios-app-like-siri

該項目顯示瞭如何檢測音頻閾值;

github.com/picciano/iOS-Audio-Recoginzer

+0

我已經看過本教程,沒有任何東西可以幫助我。這不是告訴我什麼時候可以開始錄製的方法。那裏是一個按鈕動作。 –

+0

我發現這個例子的工作原理是按住一個按鈕來說話,這不是你的要求。我會編輯我的答案,但是,... 這是一個項目,它可以做你想做的事; https://github.com/picciano/iOS-Audio-Recoginzer –

+0

我檢查此文件之前。我已經解決了。我使用'AVAudioRecorder'來連續記錄檢查平均麥克風功率。 –