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 parffmpeg -i
wav originalDuration: 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:
En supposant un débit audio d'entrée de 44 100 Hz, cette commande fera le travail:
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:
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éeir
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):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
.Références
la source