目标 C:检测声音

Posted

技术标签:

【中文标题】目标 C:检测声音【英文标题】:Objective C: Detecting a Voice 【发布时间】:2012-08-02 06:22:28 【问题描述】:

美好的一天!我只是想问一下我是否需要在我的代码和条件中输入什么值才能检测到用户的常规语音,这样在我检测到语音后,我会自动录制它并在何时停止录制静音/录音机没有检测到声音,这是我的代码,我从detecting when a user blows into the mic. 得到的

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

    [recorder record];
    if (lowPassResults < 0.95)
        NSLog(@"Recording");
             [recorder record];


我是目标 c 的新手,任何帮助都会对我非常有帮助...在此先感谢。

【问题讨论】:

【参考方案1】:

没有可用于检测正常语音音量的设置级别。撇开背景噪音等问题不谈,计算机中的数字音频级别和空气中的声音级别之间没有标准的转换。

想一想:输入电平是多少?它是什么类型的麦克?用户有多远?这些事情你都不知道,所以没有办法知道答案。

您可能需要考虑寻找音量的相对变化,而不是绝对水平(尽管这也是不确定的)或完全不同的用户体验。

【讨论】:

在检测到音频的那一刻,我将如何录制音频 这是一个不同的问题,但简短的回答是缓冲您的音频,以便您在检测到某些东西时提前录制。相应的数据结构通常称为环形缓冲区。

以上是关于目标 C:检测声音的主要内容,如果未能解决你的问题,请参考以下文章

Raspberry Pi:检测声音并触发网络摄像头 [关闭]

在声音识别中进行异常值检测的方法?

如何仅在 Unity Vuforia 中检测到标记时播放声音

如何在目标 c 中增加声音的音量并消除背景噪音

获取时间间隔并在目标 C 中播放声音

如何检测录制的声音样本的音高