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

StackOverflow https://stackoverflow.com/questions/59936

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Я нашел эту ссылку на Java-код для изменения высоты тона/растяжения времени.http://www.adetorres.com/keychanger/KeyChangerReadme.html

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top