Самая быстрая и эффективная процедура повышения качества звука в Java - PullRequest
4 голосов
/ 14 сентября 2010

У меня есть необходимость конвертировать аудио сэмплы из 11025 и 22050 в 44100;Я ищу самую быструю и лучшую процедуру конвертации.Я требую, чтобы ответ давался на чистом Java, без необходимости использования внешних подпрограмм или библиотек.Источником является массив коротких значений, представляющих левый и правый каналы, чередующиеся как LRLRLRLRЯ слышал, что преобразование Гаусса - лучшее, но это убийца процессора. Обновление Чтобы добавить больше деталей, я хотел бы, чтобы смесь между лучшим и самым быстрым.Ответ даст отличное звучание, подходящее для общения практически в реальном времени. Обновление 2 Я ищу несколько коротких примеров кода для этого, должны быть ez очки для вас аудио гуру

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Вы можете (в конечном счете) просто использовать ель после заполнения каждого другого образца нулями - вы увеличиваете выборку на 2 или 4. Это будет достаточно быстро для реального времени.Качество звука будет удовлетворительным для большинства приложений.

1 голос
/ 11 октября 2010

Что ж, трудно сэмплировать его достаточно медленно, чтобы он не работал в режиме реального времени :-) Одно из лучших и все же быстрых решений - это сделать FFT вперед, а затем сделать реверс FFT с любой частотой дискретизации, которая вам нужна.

Вы можете реализовать это самостоятельно или скопировать и вставить любую реализацию FFT.

Это может работать как 100-кратное в реальном времени или быстрее, но не уверен, что вам нужно в 1000 раз быстрее (в этом случае вы можете пойтидля линейной или бикубической интерполяции): -)

...