Мне нужно преобразовать аудиосэмплы из 11025 и 22050 в 44100; Я ищу самую быструю и лучшую процедуру преобразования звука. Я требую, чтобы ответ был дан на чистой Java, без необходимости использования внешних процедур или библиотек. Источник представляет собой массив коротких значений, представляющих левый и правый каналы, чередующихся вот так LRLRLRLR
Я слышал, что гауссовское преобразование является лучшим, но оно убивает процессор.
Обновление
Чтобы добавить больше деталей, я бы хотел, чтобы было сочетание лучшего и самого быстрого. Ответ дал бы великолепно звучащий звук, подходящий для общения почти в реальном времени.
Обновление 2
Я ищу несколько коротких примеров кода для этого, должно быть ez баллов для вас аудио гуру
Самая быстрая и эффективная процедура повышения частоты дискретизации для аудио в Java
Ответы (2)
вы можете (в конечном счете) просто использовать ель после заполнения каждого второго образца 0 - вы повышаете дискретизацию на 2 или 4. Это будет достаточно быстро для реального времени. качество звука будет хорошим для большинства приложений.
Что ж, трудно передискретизировать его достаточно медленно, чтобы он не работал в реальном времени :-) Одно из лучших и все еще быстрых решений - выполнить прямое БПФ, а затем обратное БПФ с любой необходимой вам частотой дискретизации.
Вы можете реализовать это самостоятельно или скопировать и вставить любую реализацию БПФ.
Это может работать как в 100 раз в реальном времени или быстрее, не уверен, что вам нужно в 1000 раз быстрее (в этом случае вы можете использовать линейную или бикубическую интерполяцию) :-)