Réponses:
Avec ffmpeg:
ffmpeg -i <input> -af asetrate=44100*0.5,aresample=44100 <output>
Ici, 0,5 est le facteur de hauteur. Ou consultez l'autre réponse pour plus de détails.
Si vous avez besoin d'une interface graphique, utilisez Audacity , c'est un outil d'édition audio multiplateforme gratuit et open source.
Caractéristiques: changez la hauteur sans modifier le tempo, ou vice-versa.
Comme alternative, essayez sox . Quelque chose comme ca:
sox <infile> <outfile> pitch <shift>
où donne le changement de hauteur sous forme de «cents» positifs ou négatifs (c'est-à-dire 100e de demi-ton). Il y a 12 demi-tons par octave, ce qui signifie ± 1200
comme paramètre.
ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wav
je vois par ffmpeg -i
wav original Duration: 00:00:01.95, bitrate: 3080 kb/s
et wav modifié Duration: 00:00:02.60, bitrate: 1536 kb/s
. Si je comprends bien, Duration
c'est la longueur en secondes.
Trouvez au préalable le débit audio d'entrée ainsi:
ffmpeg -i input.mp4
En supposant un débit audio d'entrée de 44 100 Hz, cette commande fera le travail:
ffmpeg -i input.mp4 -af asetrate=44100*3/4,atempo=4/3 output.mp4
Le facteur 3/4 changera la plupart des voix féminines et «maigres» (tamias) en voix masculines et «grasses». Utilisez 4/3 pour le contraire:
ffmpeg -i input.mp4 -af atempo=3/4,asetrate=44100*4/3 output.mp4
Remarquez l'ordre du filtre inversé pour éviter la dégradation du signal. Dans la mesure du possible, le fonctionnement sans perte doit précéder le fonctionnement avec perte. Je ne suis pas sûr à 100% si je ne me trompe pas en raison d'une mauvaise compréhension des filtres FFmpeg.
Le filtre FFmpeg asetrate
devrait avoir une variable nommée ir
pour le débit audio d'entrée, par analogie à iw
× ih
dans certains filtres vidéo, mais je n'ai trouvé aucune mention à ce sujet dans la documentation.
Pour les facteurs supérieurs à 2 (tels que 4/1 ou 1/4), vous devez utiliser plusieurs atempo
filtres (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
Je ne sais pas comment obtenir une voix masculine "maigre" et une voix féminine "grasse".
Au lieu de -af
, vous pouvez écrire -filter:audio
ou -filter:a
.