передискретизируйте / сверхдискретизировали звуковые кадры от 8 кГц до 48 кГц (Java/Android)

Приложение, которое я пытаюсь разработать для андроида, кадров записей на уровне 48 кГц (PCM 16 битов и моно) и отправляю их в сеть. Кроме того, существует входящий поток аудио на уровне 8 кГц. Так, я принимаю выбранные кадры на 8 кГц и играй их (мой объект AudioTrack установлен на 8 кГц), но при проигрывании их, все работает, но задержка ОГРОМНА. Это берет как приблизительно 3 секунды, пока Вы не слышите что-то.

Я думаю, что, если я сверхдискретизировал полученные кадры от 8 кГц до 48 кГц и играю их, не будет такой огромной задержки проигрывания. На самом деле, когда я записываю и играю кадры на том же уровне, задержка является действительно низкой. Плохая вещь состоит в том, что я вынужден сделать это этот путь: отправьте к 48 кГц и получите к 8 кГц.

Как объяснено прежде, я пытаюсь сверхдискретизировать звуковой кадр (PCM на 16 битов) от 8 кГц до 48 кГц. Кто-либо знает стандартную программу/библиотеку/API в Java, который делает это???

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

Так... кто-либо может помочь мне с этим?? Кто-либо знает какую-либо библиотеку/стандартную программу в Java, который я могу использовать?? Какие-либо предложения или альтернативы??

5
задан AstroCB 18 April 2015 в 19:46
поделиться