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