Я написал библиотеку, pydub , которая в основном предназначена для манипулирования аудио.
Я создал экспериментальный алгоритм растяжения времени , если вам интересно посмотреть, как работают подобные вещи.
По сути, вы хотите отбросить часть ваших данных, но вы не можете просто воспроизвести сигнал быстрее, потому что тогда он все получит высокую передачу (как упомянул синтезатор). Вместо этого вы хотите выбросить куски (20 Гц - это самый низкий уровень, который может слышать человек, поэтому куски в 50 мс не вызывают звуковых изменений частоты, хотя есть и другие артефакты).
PS - я получаю 50 мс примерно так:
20 Hz == 1 second per 20 cycles
or
1000 ms per 20 cycles
or
1000ms / 20Hz == 50ms per cycle