Замедление воспроизведения аудиофайла без изменения его высоты? - PullRequest
11 голосов
/ 13 сентября 2008

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

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

Примечание: я работаю в Java, но не против смены языков.

Ответы [ 5 ]

10 голосов
/ 13 сентября 2008

Timestretching довольно сложно. Чем больше вы замедляете или ускоряете звук, тем больше артефактов вы получаете. Если вы хотите узнать, как они звучат, послушайте «The Rockafeller Skank» от Fat Boy Slim. Есть много способов сделать это, у всех есть свои сильные и слабые стороны. Математика может стать действительно сложной. Вот почему так много проприетарных алгоритмов.

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

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

4 голосов
/ 13 сентября 2008

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

2 голосов
/ 22 ноября 2009

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

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

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

2 голосов
/ 13 сентября 2008

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

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

1 голос
/ 22 ноября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...