【发布时间】:2010-07-31 03:39:40
【问题描述】:
当音量达到特殊水平时,我已经有了“开始录音”。 但它有一个缺点。当它开始录制时,它已经错过了 1/2 秒左右。 说话时会漏掉第一个词。
任何想法(最好有例子)。
假设我首先开始聆听并获得峰值功率、平均、低通
[recorder updateMeters]; ALPHA = 0.05;
peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));
averagePowerForChannel = pow(10, (0.05 * [recorder averagePowerForChannel:0]));
lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;
averagePassResults = ALPHA * averagePowerForChannel + (1.0 - ALPHA) * averagePassResults;
比我看它是否足够响亮来记录
if (peakPowerForChannel > 0.08f) ) -> start recording
如果它小于一个值,它就会停止
(peakPowerForChannel < 0.01f) -> stop record, start listening again
目前我发现最好的是听峰值功率,而不是平均值。但还是不行。 我还想一直进行一种临时记录,当峰值足够高时,我可以从现在开始——2 秒。类似的东西,但在这里我不知道如何实现。所以欢迎任何实用的建议。
谢谢克里斯
【问题讨论】:
-
嗨@christian muller 我也有同样的问题。如果您找到任何解决方案,可以与我分享...... johnykutty.mathew@gmail.com