在 WIN32 下,可以使用 acmStreamConvert 用作音频采样率转换器(例如,将 44.1kHz 转换为 48kHz 音频流)。
根据 Secret Rabbit Code在文档中,采样率转换器的质量是通过它的信噪比和带宽来衡量的。
Secret Rabbit Code 声称“对于给定的一对输入和输出采样率,145dB 的信噪比和 -3dB 通带从 DC 扩展到理论最佳带宽的 96%”/p>
据我搜索,Microsoft 对使用 acmStreamConvert 函数进行采样率转换的质量没有任何声明。
有人知道使用 acmStreamConvert 实现的转换质量吗?
最佳答案
acmStreamConvert
使用可插入转换器来完成不同采样率和样本大小之间的实际转换工作。要回答有关 SNR 的问题,我们需要知道正在使用哪个转换器。
Windows 附带一个名为“Microsoft PCM 转换器”的转换器,但我没有找到有关此 SNR 的详细信息。
Secret Rabbit Code 文章介绍了如何测量格式转换的 SNR,因此您可以对使用 Microsoft PCM Converter 转换的文件运行相同的测试以确定 SNR。如果这不能满足您的需求,您可以寻找替代转换器插入 ACM,或者完全跳过 acmStreamConvert
并使用第三方库实现具有已知 SNR 的高质量转换算法。
关于algorithm - WIN32音频采样率转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2082390/