Существует два варианта для ускорения воспроизведения звукового файла:
- Увеличение частоты дискретизации
- Уменьшите количество выборок за единицу времени.
В любом из этих способов увеличение скорости воспроизведения будет иметь соответствующее изменение высоты звука.
Увеличение частоты дискретизации
Увеличение частоты дискретизации увеличит скорость воспроизведения звука. Например, переход от частоты дискретизации 22 кГц к частоте 44 кГц сделает звук воспроизведения в два раза быстрее оригинального. В этом методе исходные данные выборки не изменяются - необходимо изменить только настройки воспроизведения звука.
Уменьшить количество выборок за единицу времени
В этом методе частота дискретизации при воспроизведении поддерживается постоянной, но количество выборок уменьшается - некоторые выборки выбрасываются.
Наивный подход к тому, чтобы воспроизведение звука было в два раза быстрее оригинального, заключается в удалении всех остальных семплов и воспроизведении с исходной частотой дискретизации воспроизведения.
Однако при таком подходе некоторая информация будет потеряна, и я ожидаю, что некоторые артефакты будут введены в аудио, так что это не самый желательный подход.
Хотя я сам не пробовал, идея усреднения сэмплов для создания нового сэмпла - хороший подход для начала. Казалось бы, это означает, что вместо того, чтобы просто выбросить аудиоинформацию, она может быть в некоторой степени «сохранена» процессом усреднения.
В качестве приблизительного представления о процессе, вот фрагмент псевдокода для удвоения скорости воспроизведения:
original_samples = [0, 0.1, 0.2, 0.3, 0.4, 0.5]
def faster(samples):
new_samples = []
for i = 0 to samples.length:
if i is even:
new_samples.add(0.5 * (samples[i] + samples[i+1]))
return new_samples
faster_samples = faster(original_samples)
Я также опубликовал ответ на вопрос " Начало работы с программным звуком ", где я подробно остановился на некоторых основных аудио манипуляциях, которые могут быть выполнены, так что, возможно, это может представлять интерес а также.