Есть ли способ воспроизвести файл.ogg в Android на повышенной скорости?

У меня есть звуковые файлы, которые я хочу воспроизвести на скорости 1x, 2x и 3x. Это должно быть исправлено по высоте. Есть много решений для изменения файла в автономном режиме и просто иметь три файла. Однако это означает, что мое приложение занимает больше дискового пространства.

Существует ли простой способ увеличения скорости в Интернете, так что мне нужно включить только одну версию файла в мое приложение?

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

1 ответ

Функция, которую вы, вероятно, ищете, это Audio Time Stretching. Простое изменение частоты дискретизации не вариант, так как это приведет к изменению высоты тона (аналогично эффекту, производимому аналоговыми записями или кассетами)

Если вы хотите растянуть истинное время, попробуйте использовать библиотеку цифровой обработки сигналов в реальном времени. Если вы хотите добавить в свой проект дополнительную библиотеку, TarsosDSP - это встроенный Java-фреймворк, работающий на Android по умолчанию.

https://github.com/JorenSix/TarsosDSP

Существует даже пример кода Audio Time Stretching, включенный в их репозиторий, который даже поставляется с интерфейсом Swing.

РЕДАКТИРОВАТЬ: TarsosDSP GPL'd. Растяжение времени звука является большой проблемой в аудиоиндустрии, поэтому многие из используемых алгоритмов являются либо проприетарными, либо GPL.

Если вы хотите изучить некоторые DSP, я бы порекомендовал проверить https://github.com/philburk/jsyn Он находится под лицензией Apache и поддерживает Android.

Другие вопросы по тегам