可以比较两种声音吗? 例如app已经有声音文件mp3或任何格式,是否可以比较任何静态声音文件和应用程序内部录制的声音?
欢迎任何评论。
此致
答案 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略微增加 比零。
您应该获得两个不同的MSE值,一个在您的男性>录制的曲目之间,另一个在您的女性>录制的曲目之间。与最低差异的比较可能是正确的性别。
我承认我从来没有尝试这样做,看起来很难 - 祝你好运!