iPhone通过语音启动录音

时间:2010-07-30 19:27:43

标签: iphone voice-recognition

当音量达到特殊水平时,我已经有了“开始录音”。 但它有一个缺点。当它开始录制时,它已经错过了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秒。这样的事情,但在这里我不知道如何实现。所以欢迎任何实用的建议。

谢谢克里斯

1 个答案:

答案 0 :(得分:0)

就像你说的那样,不断记录一个短的1 / 2s块,当达到功率级别并且无限期录制开始时,它会无限扩展。录音停止时,应该包括缺少的1/2开场。