Ses frekansı nasıl değiştirilir?


12

Bir ses dosyasının frekansını değiştirmek istiyorum. Anlamı: tüm dosya bir oktav daha yüksek veya daha düşük olmalıdır. Nasıl yapılır? ffmpegVeya başka bir komut satırı açık kaynak aracı kullanmak tercih edilir.

Yanıtlar:


14

Ffmpeg ile:

ffmpeg -i <input> -af asetrate=44100*0.5,aresample=44100 <output>

Burada 0.5, adım faktörüdür. Veya daha fazla ayrıntı için diğer cevaba bakınız.


Bir GUI'ye ihtiyacınız varsa, Audacity kullanın , ücretsiz, açık kaynaklı, platformlar arası ses düzenleme aracıdır.

Özellikler: Tempoyu değiştirmeden zift değiştirin veya tam tersi.


Alternatif olarak, sox'u deneyin . Bunun gibi bir şey:

sox <infile> <outfile> pitch <shift>

burada zift kaymasını pozitif veya negatif 'sent' (yani bir yarı tonun 100'leri) olarak verir. Bir oktav için 12 yarı ton vardır, bu 1200parametre olarak ± anlamına gelir .


harika ... sox sadece ihtiyacım olan şey!
tanon

Ffmpeg kullanan yöntem sesin süresini değiştirir mi?
mrgloom

@mrgloom Hayır, olmamalı.
slhck

Kullandıktan sonra orijinal wav ve modifiye wav ile ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wavgörüyorum . Anladığım kadarıyla saniye cinsinden uzunluk. ffmpeg -iDuration: 00:00:01.95, bitrate: 3080 kb/sDuration: 00:00:02.60, bitrate: 1536 kb/sDuration
mrgloom

@mrgloom Lütfen yeni bir soru gönderin ve tam komut satırı çıktısını ekleyin.
slhck

10

Önceden giriş ses hızını bulun:

ffmpeg -i input.mp4

Giriş ses hızı 44.100 Hz varsayarsak, bu komut işi yapar:

ffmpeg -i input.mp4 -af asetrate=44100*3/4,atempo=4/3 output.mp4

3/4 faktörü çoğu kadın ve “sıska” (sincap) sesi erkek ve “şişman” seslere dönüştürecektir. Bunun tersi için 4/3 kullanın:

ffmpeg -i input.mp4 -af atempo=3/4,asetrate=44100*4/3 output.mp4

Sinyal bozulmasını önlemek için ters filtre sırasına dikkat edin. Mümkün olduğunda, kayıpsız operasyon, kayıplı operasyondan önce gelmelidir. Burada% 100 FFmpeg filtrelerini yanlış anlayarak hata yapmadığından emin değilim.

FFmpeg filtresi , bazı video filtrelerinde × 'a benzer şekilde giriş ses hızı için asetrateadlandırılmış bir değişkene sahip olmalıdır , ancak belgelerde bundan bahsetmedim.iriwih

2'den büyük faktörler için (4/1 veya 1/4 gibi) birden fazla atempofiltre kullanmanız gerekir (1/4 = 1/2 * 1/2 veya 4/1 = 2/1 * 2/1):

ffmpeg -i input.mp4 -af asetrate=44100*4,atempo=1/2,atempo=1/2 output.mp4

“Sıska” erkek sesini ve “şişman” kadın sesini nasıl elde edeceğimi bilmiyorum.

Bunun yerine, veya -afyazabilirsiniz .-filter:audio-filter:a

Referanslar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.