如何在Universal Window Phone中转换信号?

时间:2016-07-18 08:10:18

标签: uwp signal-processing audio-streaming wasapi rtaudio

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

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

我从WASAPICapture的回调中收到的数据。每次64 ms都会调用此回调,每次调用时都会480个样本。 我的编码器每320需要20 ms个样本。 我应该怎么做才能得到这个(重新框架)?

你能建议我做任何图书馆吗?或者我应该自己编写代码?

2 个答案:

答案 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中,以便允许用户指定他们希望使用的采样率。