Как уменьшить скорость воспроизведения данных PCM?

#android #audio #audio-streaming

#Android #Аудио #потоковое аудио

Вопрос:

Люди,

В моем приложении для Android я записываю аудио и воспроизводю его. Пользователь обычно является певцом.

Теперь мне нужна возможность воспроизведения звука с уменьшенной скоростью.

Как я понимаю, данные PCM — это просто смесь синусоидальных волн на разных частотах. Существует одна доминирующая волна (наибольшая величина), которая приводит к музыкальным нотам песни.

Чтобы уменьшить скорость в 2 раза, сначала я думал, что буду просто дублировать каждый сэмпл. Например, если выбранные входные значения PCM равны 20000, 25000, 30000, …, я буду воспроизводить 20000, 20000, 25000, 25000, 30000, 30000. Однако это не кажется правильным решением. Все, что я, кажется, здесь делаю, это увеличиваю длину волны (следовательно, частоту) синусоидальных волн. Я думаю, что это приведет к изменению голоса / заметок.

Может кто-нибудь подсказать, как уменьшить или увеличить скорость?

Заранее благодарим вас за помощь.

С уважением, Питер

Ответ №1:

Если под скоростью вы подразумеваете изменение голоса в данных PCM с медленного (высокий гигант) на быстрый (бурундук), то

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

Комментарии:

1. Спасибо за вашу помощь. Я не смотрю на изменение голоса. Я просто хочу воспроизвести запись с уменьшенной скоростью.