Chcę zmienić częstotliwość pliku audio. Znaczenie: cały plik powinien brzmieć (powiedzmy) o jedną oktawę wyżej lub niżej. Jak to zrobić? ffmpeg
Preferowane byłoby użycie narzędzia open source lub innego wiersza poleceń.
audio
ffmpeg
bitrate
resampling
tanon
źródło
źródło
ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wav
widzęffmpeg -i
oryginalne wavDuration: 00:00:01.95, bitrate: 3080 kb/s
i zmodyfikowane wavDuration: 00:00:02.60, bitrate: 1536 kb/s
. Rozumiem, żeDuration
długość w sekundach.Znajdź wcześniej wejściową szybkość dźwięku w ten sposób:
Przy założeniu wejściowej częstotliwości audio 44,100 Hz to polecenie wykona zadanie:
Współczynnik 3/4 zmieni większość głosów kobiecych i „chudych” (wiewiórek) w głosy męskie i „tłuste”. Użyj 4/3 na odwrót:
Zwróć uwagę na odwróconą kolejność filtrów, aby zapobiec degradacji sygnału. O ile to możliwe, operacja bezstratna powinna nastąpić przed operacją stratną. Nie jestem w 100% pewien, czy nie popełniam tutaj błędu przez nieporozumienie z filtrami FFmpeg.
Filtr FFmpeg
asetrate
powinien mieć zmienną o nazwieir
wejściowej częstotliwości audio, analogicznie doiw
×ih
w niektórych filtrach wideo, ale nie mogłem znaleźć żadnej wzmianki o tym w dokumentacji.W przypadku czynników większych niż 2 (takich jak 4/1 lub 1/4), musisz użyć wielu
atempo
filtrów (1/4 = 1/2 * 1/2 lub 4/1 = 2/1 * 2/1):Nie wiem, jak uzyskać „chudy” męski głos i „gruby” żeński głos.
Zamiast tego
-af
możesz pisać-filter:audio
lub-filter:a
.Bibliografia
źródło