语音启动时自动录音,语音停止时播放

时间:2012-07-06 12:32:51

标签: objective-c ios

任何人都可以帮助我:

自动录制声音并在静音时播放,如说汤姆。任何人都可以帮助我找出谈论汤姆背后的逻辑。当用户开始讲话时,它应该自动录制,当用户停止讲话时,录制的语音应该播放。怎么办?请帮帮我。

提前致谢

2 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:0)

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

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

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

希望这有帮助,

最好的,

弗洛