Ответы:
С помощью ffmpeg:
ffmpeg -i <input> -af asetrate=44100*0.5,aresample=44100 <output>
Здесь 0,5 - это коэффициент основного тона. Или посмотрите другой ответ для более подробной информации.
Если вам нужен графический интерфейс, используйте Audacity , это бесплатный кросс-платформенный инструмент для редактирования аудио с открытым исходным кодом.
Особенности: Изменение высоты тона без изменения темпа или наоборот.
В качестве альтернативы попробуйте sox . Что-то такое:
sox <infile> <outfile> pitch <shift>
где дает сдвиг высоты тона как положительные или отрицательные «центы» (т. е. сотые доли полутона). В октаве 12 полутонов, так что это означает ± 1200
в качестве параметра.
ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wav
вижу ffmpeg -i
оригинальный wav Duration: 00:00:01.95, bitrate: 3080 kb/s
и модифицированный wav Duration: 00:00:02.60, bitrate: 1536 kb/s
. Как я понимаю, Duration
это длина в секундах.
Определите скорость звука на входе заранее:
ffmpeg -i input.mp4
Предполагая, что скорость звука на входе составляет 44 100 Гц, эта команда выполнит эту работу:
ffmpeg -i input.mp4 -af asetrate=44100*3/4,atempo=4/3 output.mp4
Коэффициент 3/4 изменит большинство женских и «тощих» (бурундук) голосов на мужские и «толстые» голоса. Используйте 4/3 для противоположного:
ffmpeg -i input.mp4 -af atempo=3/4,asetrate=44100*4/3 output.mp4
Обратите внимание на обратный порядок фильтра, чтобы предотвратить ухудшение сигнала. По возможности, операция без потерь должна предшествовать работе с потерями. Я не уверен на 100%, не ошибаюсь ли я здесь из-за неправильного понимания фильтров FFmpeg.
Фильтр FFmpeg asetrate
должен иметь переменную, названную ir
для входной скорости звука, аналогично iw
× ih
в некоторых видеофильтрах, но я не смог найти упоминания об этом в документации.
Для факторов больше 2 (например, 4/1 или 1/4) необходимо использовать несколько atempo
фильтров (1/4 = 1/2 * 1/2 или 4/1 = 2/1 * 2/1):
ffmpeg -i input.mp4 -af asetrate=44100*4,atempo=1/2,atempo=1/2 output.mp4
Я не знаю, как получить «тощий» мужской голос и «толстый» женский голос.
Вместо -af
, вы можете написать -filter:audio
или -filter:a
.