2011-12-13 39 views
-2

我想开发一些语音检测方法。如何在iPhone应用程序中检测语音?

例如,

就像在PragDuck应用程序,当用户开始说话duck开始其动画。

如何检测用户声音?

+3

这类似于询问如何“写iOS中的应用程序“。你已经尝试了什么?如果您不要求社群为您解决整个相当复杂的问题,那么您将得到更好的答案。 – ABach

+1

你有没有开始过任何你不知道如何猜测的第一步?没有人要求你给他一个应用程序。就像@pinxue的回答 - 向正确的方向推进一点。 –

回答

5

使用AVAudioRecorder - 音频测量 - 结帐本教程 - dettect当用户吹进麦克风http://mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/

简单的例子:

_audioRecorder.meteringEnabled = YES;

//1. This method will get the current mic activity and will format it to a 0 - 1 scale. 

-(void)checkRecordingMeters:(NSTimer *)timer 
{ 
     [_audioRecorder updateMeters]; 

     const double ALPHA = 0.2; 
     float peakPower = [_audioRecorder peakPowerForChannel:0]; 

     double peakPowerForChannel = pow(10, (0.05 * peakPower)); 
     lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults; 

     NSLog(@"Meters: %f" , peakPower); 
     NSLog(@"lowPassResults: %f \n" , lowPassResults); 
} 


//2. Call this method to run a loop timer to check the current mic activity 
-(void)enableMettering:(BOOL)enable 
{ 

    if(enable) 
    { 
     levelTimer = [[NSTimer scheduledTimerWithTimeInterval:0.03 
                target:self 
               selector:@selector(checkRecordingMeters:) 
               userInfo:nil 
               repeats:YES] retain]; 
    } 
    else 
    { 
     [levelTimer invalidate]; 
     [levelTimer release]; 
    } 
} 
+0

它不工作?总是打印lowPassResults == 0.00000,但是如何检测用户在麦克风上吹奏的声音。请告诉我 –

1

您可以使用AudioQueue记录并添加一个简单的阈值过滤器来忽略环境噪声。为了降低延迟,您可以使用AudioUnit。

+0

嘿,在你的回答中提供一些链接或样本。 – Devang

+4

@Devang:嘿,你自己做一些研究,不要指望别人为你免费工作。 –

+0

@JoshCaswell:我正在研究谷歌,但没有找到任何解决方案,因此要求链接。 – Devang

相关问题