1

任何人都可以帮我解决以下问题:

自动录制语音,并在静音时播放,就像说话的汤姆一样。谁能帮我确定会说话的汤姆背后的逻辑。当用户开始说话时,它应该自动录制,当用户停止说话时,应该播放录制的语音。这怎么可能?请帮我。

提前致谢

4

2 回答 2

3
float peakPowerForChannel = pow(10, (0.05 * [soundRecorder peakPowerForChannel:0]));
float averagePowerForChannel = pow(10, (0.05 * [soundRecorder averagePowerForChannel:0]));
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;  
averagePassResults = ALPHA * averagePowerForChannel + (1.0 - ALPHA) * averagePassResults;

if (peakPowerForChannel > 0.08f) {
    [soundRecorder recordForDuration:5];
} else {
    NSLog(@"not audible");
}
于 2013-02-14T06:02:56.617 回答
0

我会说你必须分析你的音频流,当一个定义为“信号”的峰值被击中并保持一段时间时,你就会开始录制。

当另一个定义为“静音”的值出现一段时间后,您需要停止录制并开始播放。

实际上是一个纯粹的信号处理任务。理论上不复杂。不过,从来没有在 iPhone 上这样做过。

希望这可以帮助,

最好的,

弗洛

于 2012-07-06T13:57:52.170 回答