Respostas:
Com ffmpeg:
ffmpeg -i <input> -af asetrate=44100*0.5,aresample=44100 <output>
Aqui, 0,5 é o fator de afinação. Ou veja a outra resposta para mais detalhes.
Se você precisar de uma GUI, use o Audacity , é uma ferramenta de edição de áudio gratuita, de código aberto e multiplataforma.
Características: Altere o tom sem alterar o andamento ou vice-versa.
Como alternativa, tente sox . Algo parecido:
sox <infile> <outfile> pitch <shift>
onde dá a mudança de tom como "centavos" positivos ou negativos (ou seja, centésimos de semitom). Existem 12 semitons para uma oitava, o que significa ± 1200
como parâmetro.
ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wav
, vejo por ffmpeg -i
wav original Duration: 00:00:01.95, bitrate: 3080 kb/s
e wav modificado Duration: 00:00:02.60, bitrate: 1536 kb/s
. Pelo que entendi Duration
é a duração em segundos.
Encontre a taxa de entrada de áudio de antemão assim:
ffmpeg -i input.mp4
Assumindo a taxa de áudio de entrada 44.100 Hz, este comando fará o trabalho:
ffmpeg -i input.mp4 -af asetrate=44100*3/4,atempo=4/3 output.mp4
O fator 3/4 mudará a maioria das vozes femininas e "magras" (esquilos) para vozes masculinas e "gordas". Use 4/3 para o contrário:
ffmpeg -i input.mp4 -af atempo=3/4,asetrate=44100*4/3 output.mp4
Observe a ordem inversa do filtro para evitar a degradação do sinal. Sempre que possível, a operação sem perdas deve ocorrer antes da operação com perdas. Não tenho 100% de certeza se não estou cometendo algum erro aqui por não entender os filtros FFmpeg.
O filtro FFmpeg asetrate
deve ter uma variável nomeada ir
para taxa de áudio de entrada, em analogia a iw
× ih
em alguns filtros de vídeo, mas não encontrei nenhuma menção a isso na documentação.
Para fatores maiores que 2 (como 4/1 ou 1/4), você deve usar vários atempo
filtros (1/4 = 1/2 * 1/2 ou 4/1 = 2/1 * 2/1):
ffmpeg -i input.mp4 -af asetrate=44100*4,atempo=1/2,atempo=1/2 output.mp4
Não sei como obter voz masculina "magra" e voz feminina "gorda".
Em vez de -af
, você pode escrever -filter:audio
ou -filter:a
.