iphone – 与AVAudioRecorder中的米混淆

简单地说,我试图根据从iPhone的麦克风输入流中读取的分贝来进行唇形同步,而我得到的值并不是我所追求的.我正在使用AVAudioRecorder的peakPowerForChannel和averagePowerForChannel. (我知道这是一种相当简单的唇形同步技术,但质量不是主要问题).

当分贝数增加时,仪表会按我喜欢的方式作出反应(当声音更大时,我可以将其映射到嘴巴的开放状态)但是当声音快速停止时,数值会缓慢减小,如同虽然声音已经消失(即在一两秒内褪色沉默) – 不是我想要的.

有没有办法配置AVAudioRecorder,以便它没有这种“淡入淡出”效果,或者我可以用它给我获得所需输出的值做一些事情?或者,我可以使用另一种工具吗?

谢谢!

最佳答案
AVAudioPlayer上的仪表弹道是您对显示传统音频表的期望:瞬时增加幅度,但低通减少.

对于基于录制的音频为角色制作动画的会说话的卡尔类型的东西,您必须获得原始音频并根据需要调整您自己的计量响应.如果您正在为角色设置动画(即,当用户在设备的麦克风中讲话时),您可能希望使用AudioQueue或RemoteIO来获取音频数据.否则,如果您只是在录制后处理音频文件,则可以使用ExtAudioFile获取所需的数据.

转载注明原文:iphone – 与AVAudioRecorder中的米混淆 - 代码日志