Замедление воспроизведения аудиофайла без изменения высоты тона?

Я работаю над приложением для крупных музыкальных колледжей. Функция, которую я рассматриваю, замедляет воспроизведение музыки, не изменяя ее высоту. Я видел это в коммерческом программном обеспечении, но не могу найти никаких библиотек или приложений с открытым исходным кодом, которые бы делали что-либо подобное.

  • Есть ли там библиотеки?
  • Как это можно сделать с нуля из разных форматов файлов?

Примечание. Я работаю в java, но не перехожу к смене языков.

Ответ 1

Тестовая процедура довольно сложная. Чем больше вы замедляете или ускоряете звук, тем больше артефактов вы получаете. Если вы хотите знать, как они звучат, послушайте "Рокфеллер Сканк" от Fat Boy Slim. Есть много способов сделать это, чтобы у всех были свои сильные и слабые стороны. Математика может стать очень сложной. Вот почему так много проприетарных алгоритмов.

Эта страница объясняет вещи немного яснее, чем я могу, и ссылки на библиотеку Дирака. http://www.dspdimension.com/admin/time-pitch-overview/

Я нашел эту ссылку для java-кода, чтобы выполнить переключение /timestretching http://www.adetorres.com/keychanger/KeyChangerReadme.html

Ответ 2

Я использую soundstretch, чтобы ускорить подкасты, которые работают неплохо, но не пробовали его на музыку.

Ответ 3

Этот сайт объясняет, как это делается в физическом мире: http://www.wendycarlos.com/other/Eltro-1967/index.html

Я не знаю, как вы эмулируете это в программном обеспечении, хотя... Я буду продолжать смотреть

Ответ 4

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

Проверьте любую математику, связанную с фазовыми вокодерами.

Другим распространенным методом является создание массива fft-бункеров, которые хранят данные для запланированных интервалов вашего звука. Затем вы можете выбрать, как быстро итерации через бункеры, и вы можете повторно синтезировать эти аудиоданные столько, сколько вы выберете, что позволит вам растягивать один короткий сегмент вашего звука до тех пор, пока вам нравится.

Ответ 5

Надежность делает это из коробки, и это бесплатно. Есть несколько плагинов для mp3-плееров, а также бесплатные. По-видимому, это довольно легко сделать с mp3, поскольку он уже закодирован в частотной области.