1

如何在运行时使用 portaudio 更改音高(采样率)?非常感谢。

4

1 回答 1

2

重采样不是 PortAudio 的功能。与 PortAudio 封装的原生音频 i/o API 一样,PA 流以恒定的采样率运行。要更改样本的音高(播放速率),您需要执行动态采样率转换。您可以通过使用以非统一速率递增的相位索引对原始信号进行插值来实现这一点。

根据您的要求,您可以研究重新采样/插值或音调时间修改。

音频中常用的低到中等质量的高性能多项式插值算法是线性插值和三次 Hermite 插值。更高质量的插值可以通过一些加窗 sinc 插值的变体来执行。可用于 sinc 插值的库是Secret Rabbit Code

对于音高/时间转换(也称为音高转换或时间拉伸),您可以考虑使用DIRAC库,它具有用于单声道信号的开源版本。还有其他可用的商业图书馆,例如来自 z-plane 研究。

于 2014-01-24T16:45:30.930 回答