Çalma listesi önerilerinde klibin ilk saniyesini koddan ölçmek

这篇内容暂时只有 Türkçe 版本,以下是原文。

Geçen ay kendi arşivimde bir çalma listesi öneri betiği çalıştırıyordum. Kütüphane 2.400 kadar FLAC dosyası, çoğu 44.1 kHz/16 bit, bir kısmı 24 bit. Sorun şuydu: öneri sırası bazen klibin ilk saniyesindeki sessizlik yüzünden parçayı yanlış yere koyuyordu. Yani parça başında 0.3–0.8 saniye sessizlik olan klipler, öneri akışında bir öncekinin sonuna fazla yakın düşüyordu.

Önce ffmpeg ile klibin ilk 3 saniyesini ham PCM’e döküp sessizlik eşiğini ölçtüm. Eşiği sabit -50 dBFS aldım, çünkü arşivdeki en sessiz kayıtlar bile bunun üstünde kalıyordu.

ffmpeg -v error -i "$f" -t 3 -f s16le -ac 1 -ar 8000 - \
  | sox -t raw -r 8000 -e signed -b 16 - -n silence 1 0.01 -50dB 2>&1 \
  | sed -n 's/.*silence_end: //p'

Çıktıyı saniye cinsinden alıp bir CSV’ye yazdım. Sonra öneri betiğinde bu değeri sıralama anahtarına ekledim: sessizlik süresi 0.5 saniyeden büyükse parçayı “yumuşak giriş” olarak işaretledim ve bir önceki parçanın son 2 saniyesiyle çakışmayacak şekilde tampon ekledim.

Bunu yapmamın nedeni basit: koddan ölçülen sessizlik, dinleme sırasında hissettiğim boşlukla örtüşüyordu. Ama bedeli var. 8 kHz’e indirip mono okumak hızlı, fakat çok kısa (50 ms altı) sessizlikleri kaçırıyor. Ayrıca canlı kayıtlarda alkış veya ortam gürültüsü eşiği yanıltıyor; o kliplerde ölçüm “sessizlik yok” diyor, oysa dinleyici olarak ben boşluk duyuyorum.

Bir de şu var: eşiği -50 dBFS yerine -40’a çekince arşivdeki 60 kadar parça “sessiz başlıyor” diye işaretlendi, ama dinlediğimde bunların yarısı aslında hafif bir enstrüman girişiydi. Yani eşik seçimi doğrudan öneri sırasını değiştiriyor ve bunu geri almak için kütüphaneyi yeniden taramak gerekiyor.

Sizin arşivinizde ilk saniye sessizliği öneri sırasını ne kadar etkiliyor? Eşiği sabit mi tutuyorsunuz, yoksa klip türüne göre mi değiştiriyorsunuz?

0
赞同度 100% · 0 条评论 · 1 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。