2

我使用 RTAudio 从麦克风获取信号并将此信号用作另一个编码器的输入。似乎 UWP 总是返回与我的编码器想要的采样率不同的固定音频采样率。

WASAPICapture 返回44100 Hz信号,2 channel(输入)。我想将此输入转换为1600 Hz信号1 channel(输出)。如何正确进行重新采样?

我从 WASAPICapture 的回调中收到的数据。这个回调被称为 every 64 ms,并且每次它都给了我480样本。我的编码器需要320每个20 ms. 我应该怎么做才能得到这个(重新框架)?

你能建议我任何图书馆来做到这一点吗?还是我应该自己编写代码?

4

2 回答 2

0

我想将此输入转换为 1600 Hz 信号,1 通道(输出)。如何正确进行重新采样

参考这里

WASAPI 被锁定到音频引擎的采样率(在启动时确定)并且不能在 WinRT 环境中更改。您将需要编写自己的采样率转换器,以将媒体引擎的采样率转换为您的目标输出采样率。

例如,NAudio有一个 WASAPI 包装器,有些情况会这样说:change wav file (to 16KHz and 8bit) with using NAudio

于 2016-07-19T08:27:21.753 回答
0

RtAudio PR 119 开始,该库现在支持 WASAPI 的采样率更改。

此 PR 于 2018 年 10 月 16 日合并master,但在撰写本文时,它还不是正式版本的一部分。

来自公关:

由于 WASAPI 本身不提供对当前系统默认值以外的采样率的支持,因此我在 RtApiWasapi 中引入了 Microsoft MFT(媒体基础转换)库,以允许用户指定他们希望使用的采样率。

于 2018-10-29T17:03:12.750 回答