检测输入音频的电平?

问题描述:

我有一个应用程序需要使用麦克风录制用户语音。我正在尝试制作一个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

您需要使用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'来连续记录检查平均麦克风功率。 –