比较这两个音频文件
Posted
技术标签:
【中文标题】比较这两个音频文件【英文标题】:comparing these two audio files 【发布时间】:2011-03-11 09:11:43 【问题描述】:我有两个音频文件,一个是原始文件,另一个我通过反转一些位损坏了它,如何比较这两个文件的质量是否有任何算法或软件可以比较两个文件的质量.
【问题讨论】:
什么是质量?您可以仅通过听力来比较“质量”,因为质量是人类的主观范畴。另外,什么样的文件里有什么:PCM,MP3,什么? @Daniel Mošmondor .MP3 文件 【参考方案1】:"any algorithm or an software"
:你要不要编程?
如果您希望软件为您执行此操作:*** 无法帮助您
如果您愿意编程(至少调用库中的函数),那就另当别论了:
有一些库可以做到这一点,特别是首先将音频从压缩转换为 WAVEFORM 格式(要选择的库取决于您的音频的格式)。或者您的音频已经是波形格式了?你没告诉。如果您有波形格式的音频(原始音频,例如*
22khz 签名的 16 位单声道),您可以轻松地自己编程:由于您对音频造成的唯一损害是位翻转,您可以遍历它们并总结差异up:您必须考虑波形的格式:您无法比较位级别(因为每个位具有不同的意义);如果您有 *
签名的 16 位音频,则必须在 C 中使用 int
类型,以便 A) 比较已签名且 B) 差异不会溢出。
【讨论】:
另外,您可能想要权衡这个sum of absolute differences
:如果所有有符号的 16 位值中的差异小于 5,则没有可听得见的差异,另一方面,如果存在差异每 1000 个样本中有 1000 个是非常烦人的 CLICK。【参考方案2】:
声音质量的一个物理测量是 SNR:http://en.wikipedia.org/wiki/Signal-to-noise_ratio。我不知道有什么库可以为您做到这一点,但自己做并不难:
计算噪声:噪声[n] = 操纵[n] - 原始[n],n = 样本索引 计算“噪声”和“原始”的幂:p_noise[n] = noise[n] * noise[n], ... 通过将值除以得到 SNR = SNR[n] = p_original[n]/p_noise[n]您可能想要计算平均(!)信噪比...我希望您能自己弄清楚如何计算。这应该会让你走上正轨。
【讨论】:
以上是关于比较这两个音频文件的主要内容,如果未能解决你的问题,请参考以下文章