Как преобразовать сигнал в универсальном оконном телефоне?

Я использую RTAudio для получения сигнала от микрофона и использую этот сигнал в качестве входа для другого кодера. Кажется, что UWP всегда возвращает фиксированную частоту дискретизации звука, которая отличается от частоты дискретизации, которую хочет мой кодировщик.

WASAPICapture возврат 44100 Hz сигнал, 2 channel(Вход). Я хочу преобразовать этот вход в 1600 Hz сигнал, 1 channel (выход). Как правильно сделать повторную выборку?

Данные, которые я получил от обратного вызова WASAPICapture. Этот обратный вызов называется каждый 64 msи каждый раз это давало мне 480 образцы. Требуется мой кодировщик 320 образец каждого 20 ms, Что я должен сделать, чтобы получить это (перекадрировать)?

Не могли бы вы предложить мне какую-нибудь библиотеку для этого? или я должен написать код сам?

2 ответа

Начиная с RtAudio PR 119, библиотека теперь поддерживает изменения частоты дискретизации для WASAPI.

Этот пиар был объединен в master 16 октября 2018 года, но на момент написания статьи не является частью официального релиза.

Из пиара:

Поскольку сам WASAPI не поддерживает частоты дискретизации, отличные от текущих системных значений по умолчанию, я ввел библиотеку Microsoft MFT (Media Foundation Transform) в RtApiWasapi, чтобы позволить пользователям указывать частоту дискретизации, которую они хотят использовать.

Я хочу преобразовать этот вход в сигнал 1600 Гц, 1 канал (выход). Как правильно сделать повторную выборку

Ссылка здесь

WASAPI привязан к частоте дискретизации звукового движка (определяется при запуске) и не может быть изменен в среде WinRT. Вам нужно будет написать свой собственный преобразователь частоты дискретизации, чтобы перейти от частоты дискретизации медиа-движка к целевой целевой частоте дискретизации.

Например, NAudio имеет оболочку WASAPI, в некоторых случаях об этом говорят: измените wav-файл (на 16 кГц и 8 бит) с помощью NAudio

Другие вопросы по тегам