Использование модуля шумоподавления в webrtc в Android

Я разрабатываю приложение для идентификации говорящего в Android, и я хотел обработать аудиовход с микрофона, прежде чем анализировать его с помощью алгоритма идентификации говорящего. Наткнулся на модуль шумоподавления в WebRTC. Я уже настроил его в Android с помощью JNI.

У меня есть вопрос о функции WebRtcNs_Process в модуле. В заголовочном файле указано int WebRtcNs_Process(NsHandle* NS_inst, short* spframe, short* spframe_H, short* outframe, short* outframe_H);

Согласно заголовочному файлу,
spframe : указатель на буфер речевого кадра для диапазона L
spframe_H : указатель на речевой буфер кадра для диапазона H
outframe : Указатель на выходной кадр для диапазона L
outframe_H > : Указатель на выходной кадр для диапазона H

Кто-нибудь знает, к чему относятся эти аргументы? также Что такое полоса L и полоса H? В чем разница между буфером речевого кадра для L-диапазона и для H-диапазона?

СПАСИБО!!


person Danny    schedule 20.08.2013    source источник
comment
Дополнительную информацию можно найти на странице wideband-voice-voip.   -  person Bill Hoo    schedule 21.08.2013
comment
@BillHoo Что вы сделали, чтобы разделить звук L-диапазона и H-диапазона. Используете ли вы функцию WebRTC (WebRtcSpl_AnalysisQMF) или используете свою функцию. Если использовать WebRTC, какие параметры мне нужно передать для filter_state1 и filter_state2. Вы можете помочь мне?   -  person Spinning    schedule 01.04.2014


Ответы (1)


Для тех, кто сталкивается с этой проблемой, если вы взглянете на модуль audio_processing в WebRTC, вы обнаружите, что он разделяет полосы только для super-wb, то есть частота дискретизации 32 кГц.

Поэтому, если вы используете частоту дискретизации 8 кГц или 16 кГц, вы можете установить для spframe_H и outframe_H значение NULL, а для spframe и outframe — необработанные аудиоданные. Если вы используете частоту 32 кГц, вам необходимо выполнить разделение полос как здесь

person SteveFan    schedule 09.07.2014