Saya ingin mengubah frekuensi file audio. Artinya: seluruh file seharusnya berbunyi (katakanlah) satu oktaf lebih tinggi atau lebih rendah. Bagaimana cara melakukannya? Menggunakan ffmpeg
atau alat open source baris perintah lainnya akan lebih disukai.
audio
ffmpeg
bitrate
resampling
tanon
sumber
sumber
ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wav
saya melihat denganffmpeg -i
wav asliDuration: 00:00:01.95, bitrate: 3080 kb/s
dan modifikasi wavDuration: 00:00:02.60, bitrate: 1536 kb/s
. Yang saya mengertiDuration
adalah panjang dalam hitungan detik.Temukan input audio rate sebelumnya:
Dengan asumsi input audio rate 44.100 Hz, perintah ini akan melakukan pekerjaan:
Faktor 3/4 akan mengubah sebagian besar suara wanita dan "kurus" (tupai) menjadi suara pria dan "gemuk". Gunakan 4/3 untuk sebaliknya:
Perhatikan urutan filter terbalik untuk mencegah degradasi sinyal. Kapan saja memungkinkan, operasi lossless harus dilakukan sebelum operasi lossy. Saya tidak 100% yakin apakah saya tidak membuat kesalahan di sini dari kesalahpahaman filter FFmpeg.
Filter FFmpeg
asetrate
harus memiliki nama variabelir
untuk input audio rate, dalam analogi denganiw
×ih
dalam beberapa filter video, tetapi saya tidak dapat menemukan menyebutkannya dalam dokumentasi.Untuk faktor yang lebih besar dari 2 (seperti 4/1 atau 1/4), Anda harus menggunakan beberapa
atempo
filter (1/4 = 1/2 * 1/2 atau 4/1 = 2/1 * 2/1):Saya tidak tahu cara mendapatkan suara pria "kurus" dan suara wanita "gemuk".
Alih-alih
-af
, Anda dapat menulis-filter:audio
atau-filter:a
.Referensi
sumber