Изменение скорости звука в Java - PullRequest
2 голосов
/ 18 июня 2011

У меня проблемы с изменением скорости звука в Java-приложении.Я могу эффективно загрузить mp3, используя звуковой API Java и несколько плагинов, но я не могу изменить скорость.Я пытался изменить частоту дискретизации, но это влияет как на высоту, так и на скорость.Кто-нибудь знает способ изменить только скорость?Или кто-нибудь знает, как я могу изменить только поле?Я думал об изменении частоты сэмплирования, и после этого я могу сменить высоту звука на нормальную высоту песни.

1 Ответ

1 голос
/ 31 августа 2011

Вы можете достичь всего этого, используя спектральное представление звука.Изменение частоты дискретизации действительно повлияет на высоту тона, поэтому вы сохраните частоту дискретизации такой, какая она есть.Выполните преобразование Фурье исходного звукового сигнала, затем вы можете перемещать частоты вверх и вниз в спектре, как вы хотите.После этого выполните обратное преобразование Фурье, чтобы получить «воспроизводимые» аудиоданные обратно.Для длинного аудиопотока разбейте данные на куски и обязательно примените оконное управление и перекрывайте обработанные данные, в других местах вы услышите щелчки на границах кусков, поскольку они не будут плавно прилипать после манипулирования частотами.

...