我使用RTAudio从麦克风获取信号,并将此信号用作另一个编码器的输入。似乎UWP总是返回固定的音频采样率,这与我的编码器想要的采样率不同。
WASAPICapture返回44100 Hz
信号,2 channel
(输入)。
我想将此输入转换为1600 Hz
信号,1 channel
(输出)。
如何正确进行重新采样?
我从WASAPICapture的回调中收到的数据。每次64 ms
都会调用此回调,每次调用时都会480
个样本。
我的编码器每320
需要20 ms
个样本。
我应该怎么做才能得到这个(重新框架)?
你能建议我做任何图书馆吗?或者我应该自己编写代码?
答案 0 :(得分:0)
我想将此输入转换为1600 Hz信号,1通道(输出)。如何正确地重新取样
参考here
WASAPI被锁定到音频引擎的采样率(在启动时确定),并且无法在WinRT环境中更改。您需要编写自己的采样率转换器,以便从介质引擎的采样率到目标输出采样率。
例如,NAudio有一个WASAPI包装器,有些案例谈到这个问题:change wav file ( to 16KHz and 8bit ) with using NAudio
答案 1 :(得分:0)
从RtAudio PR 119开始,该库现在支持WASAPI的采样率更改。
此PR已于2018年10月16日合并到master
中,但在撰写本文时,它还不是正式版本的一部分。
从PR:
由于WASAPI本身不提供对当前系统默认值以外的采样率的支持,因此我将Microsoft MFT(媒体基础转换)库引入RtApiWasapi中,以便允许用户指定他们希望使用的采样率。