比较这两个音频文件

时间:2011-03-11 09:11:44

标签: c audio

我有一个两个音频文件,一个是原始文件,另一个我已经通过反转一些位来破坏它,如何比较这两个文件的质量是否有任何算法或软件,我可以比较两个文件的质量。

2 个答案:

答案 0 :(得分:1)

"any algorithm or an software":你想要编程吗?

  • 如果您希望软件为您执行此操作:stackoverflow无法帮助您

  • 如果你愿意编程(至少在图书馆中调用函数)这是一个不同的故事:

有一些库可以做到这一点,特别是首先将音频从压缩转换为WAVEFORM格式(库选择取决于你的音频格式)。或者您的音频已经是波形格式了吗?你没说。如果您有波形格式的音频(例如*签名的16bit单声道22khz的原始音频),您可以自己轻松编程:由于您对音频的唯一损害是bitflips,您可以迭代它们并且只是求和差异:你必须考虑到波形的格式:你不能比较比特级别(因为每个比特有不同的意义);如果您有*签名的16位音频,则必须在C中使用类型int,以便A)对比例进行签名并且B)差异不会溢出。

答案 1 :(得分:1)

声音质量的一个物理测量是SNR:http://en.wikipedia.org/wiki/Signal-to-noise_ratio。我不知道任何为你做这个的lib,但是你自己并不难:

  • 计算噪音:噪音[n] =操纵[n] - 原始[n],n =样本指数
  • 计算“噪音”和“原始”的力量:p_noise [n] = noise [n] * noise [n],...
  • 通过除以值来获得SNR = SNR [n] = p_original [n] / p_noise [n]

你可能想要计算一个平均(!)SNR ...我希望你能弄清楚如何自己做。这应该让你走在正确的轨道上。