Есть ли способ воспроизвести файл.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.