iPhone:准确识别人声

时间:2011-04-21 14:33:42

标签: iphone avaudiorecorder

我正在开发一个应用程序,我需要识别人类(准确地说是婴儿哭泣)的声音。我在iPhone麦克风上引用了以下文章来录制声音并对其进行采样。

http://mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/ http://developer.apple.com/library/ios/#samplecode/aurioTouch/Introduction/Intro.html http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html

...但我没有得到如何准确区分人声与任何其他声音。任何帮助或示例代码都非常有用。

到目前为止,我写了以下代码:

-(void)levelTimerCallback:(NSTimer *)timer { 
  [recorder updateMeters]; 
  const double ALPHA = 0.05; 
  double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));
  lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults; 
  NSLog(@"frequency: %f", lowPassResults); 
  NSLog(@"Average input: %f Peak input: %f", [recorder averagePowerForChannel:0], [recorder peakPowerForChannel:0]); 
  if (lowPassResults < 0.95) 
    [self playSound]; 
}

感谢。

1 个答案:

答案 0 :(得分:0)

这是一个非常棘手的问题。语音识别是一个复杂的主题,甚至大型公司也无法做到正确。建议是对其进行抽样,看它是否在某个高音调范围内。除此之外,您还需要阅读语音识别理论。

this answer所示,它不在iPhone SDK的范围内,所以这不是一个简单的答案。