【问题标题】:iPhone start Audio Recording by VoiceiPhone 开始语音录音
【发布时间】: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

标签: iphone voice-recognition


【解决方案1】:

如您所说,连续录制一个 1/2 秒的短块,当达到功率水平并开始无限期录制时,它会无限扩展。录制停止时,应包括丢失的 1/2 秒开头。

【讨论】:

  • 理论上我知道,但是如何实现呢?现在我只有 recorder = [[AVAudioRecorder alloc] initWithURL:RecordUrlPfad settings:settings error:&error];所以我必须在哪里以及如何缓冲以及以后如何提取为音频文件:) 任何来源都会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 2012-12-25
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
相关资源
最近更新 更多