比较App内部的声音

时间:2010-09-17 11:48:01

标签: iphone cocoa-touch

可以比较两种声音吗? 例如app已经有声音文件mp3或任何格式,是否可以比较任何静态声音文件和应用程序内部录制的声音?

欢迎任何评论。

此致

1 个答案:

答案 0 :(得分:2)

这个论坛帖子有一个很好的答案(大约三个下来) - http://www.dsprelated.com/showmessage/103820/1.php

诀窍是从mp3获取解码后的音频 - 如果它们只是短'你好'的声音,我会将它们存储在应用程序中作为wav而不是解码它们(尽管我从未使用过CoreAudio或在将mp3解码到内存之前的任何其他框架可能很容易。)

当您获得参考wav和录制的wav时,请按照上面帖子中的步骤操作:

  

1将.wav文件转换为离散时间   信号:

     

http://www.sonicspot.com/guide/wavefiles.html

     

根据不同,可能需要或可能不需要2次时间扭曲   两种采样率之间:

     

http://en.wikipedia.org/wiki/Dynamic_time_warping

     

3时间扭曲后,截断两个信号,使其持续时间为   等效。

     

4从DFT的两个信号计算归一化能谱密度(ESD):

     

http://en.wikipedia.org/wiki/Power_spectrum

     

6归一化ESD的二者之间的计算均方误差(MSE)   信号:

     

http://en.wikipedia.org/wiki/Mean_squared_error

     

标准化ESD之间的MSE   两个信号的良好度量   亲密关系。如果你说,10 .wav   文件,其中2个几乎是   同样,但其他人不是,两个   关闭应该有一个   相对较低的MSE。两个完美   相同的信号显然会有   MSE为零。理想情况下,两个“等效”   不同时间尺度的信号,   (20秒钟人类对话   5秒花栗鼠),不同的能量   (说话温和的人类语言大喊大叫   花栗鼠)和不同的阶段   (抽样开始略有不同   瞬间对抗连续时间   输入);应该仍然有零的MSE,   但是固有的量化误差   DSP将使MSE略微增加   比零。

     

http://en.wikipedia.org/wiki/Minimum_mean-square_error

您应该获得两个不同的MSE值,一个在您的男性>录制的曲目之间,另一个在您的女性>录制的曲目之间。与最低差异的比较可能是正确的性别。

我承认我从来没有尝试这样做,看起来很难 - 祝你好运!