我目前正在将libsndfile与PortAudio V19结合使用来从文件中读取音频数据并进行播放。(请注意,我是在运行 Raspbian 的 Raspberry Pi 上执行此操作的。)我遇到的问题是,我需要为以这种方式播放的每个音频样本实时动态控制播放音量。我尝试使用系统调用通过 alsamixer 来操纵全局播放音量,这在我的用例中是一个可以接受的解决方案,但是延迟太高而无法工作。
我正在寻找的是两件事之一:
一个可以实时处理修改音频音量的库,可以通过对 libsndfile 检索到的原始音频数据进行操作,或者通过设置具有最小延迟(亚毫秒)的全局播放音量。该库必须是免费的(免费)并可在 Raspbian 上使用;许可不是问题。
需要对 libsndfile 检索到的音频数据应用数学变换,以修改数据的音量级别,最好目标音量在 [0.0f, 1.0f] 范围内,0.0f 为静音, 1.0f 是文件中的原始卷。
我试图到处寻找有关此主题的有用(免费)材料,但未能找到任何有帮助的东西。非常感谢任何帮助!