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