【问题标题】:Objective C: Detecting a Voice目标 C:检测声音
【发布时间】: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 的新手,任何帮助都会对我非常有帮助...在此先感谢。

【问题讨论】:

    标签: objective-c audio avfoundation audio-recording


    【解决方案1】:

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

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

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

    【讨论】:

    • 在检测到音频的那一刻,我将如何录制音频
    • 这是一个不同的问题,但简短的回答是缓冲您的音频,以便您在检测到某些东西时提前录制。相应的数据结构通常称为环形缓冲区。
    猜你喜欢
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多