PulseAudio ile gerçek zamanlı parazit giderme yapmak mümkün mü, bu yüzden çıkan ses daha yumuşak mı?
PulseAudio ile gerçek zamanlı parazit giderme yapmak mümkün mü, bu yüzden çıkan ses daha yumuşak mı?
Yanıtlar:
module-echo-cancel
PulseAudio ve "gizli" seçenekleri hakkında çok fazla okumaya başladım, böylece bu soruya benzer bir tane bulabildim. Bulduğum bir tanesi, mikrofondaki statik gürültüyü ve hatta arka plan gürültüsünün LOT'unu bile önemli ölçüde azaltan, temelde sadece mükemmel ses kalitesi ile kendi sesinizi kaydetme avantajı veren gürültü önleme modülü idi (ses kaydı için). Örneğin). Bunu yapmak için şu adımları izleyin:
sudo nano /etc/pulse/default.pa
Dosyanın herhangi bir yerine aşağıdaki satırı ekleyin, ancak neredeyse sonunda Yankı İptali ile ilgili bir yorum bulacağınız yeri (~ satır 140) öneririm:
load-module module-echo-cancel
PulseAudio ( pulseaudio -k
) ' yu yeniden yükleyin veya bilgisayarı yeniden başlatın. Giriş Cihazı Bölümünden yeni Gürültü Önleme seçeneğini belirleyebilmelisiniz:
Bununla ilgili daha fazla bilgiyi Yankı İptal Modülü Sayfasında bulabilirsiniz.
Varsayılan olarak ayarlamak istiyorsanız , echo cancel device sadece yukarıdaki satırı çevirin:
load-module module-echo-cancel source_name=logitechsource
ve sonra dosyanın altındaki eklemek
set-default-source logitechsource
Bu durumda kaynağın ismini verdim logitechsource
, ama ne istersen onu isimlendirebilir ve sadece pulseaudio'yu yeniden başlatabilirsin.
Son olarak, Ses Ayarlarında süper uzun bir isim istemiyorsanız (Bir giriş / çıkış cihazı seçmek istediğinizde). Önerim, giriş cihazını şu şekilde yeniden adlandırıyor:
load-module module-echo-cancel source_name=logitechsource source_properties=device.description=LogitechHD
Ve yine, pulseaudio'yu yeniden başlatıyorum. Sonuç şöyle görünür:
load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
Bu eski bir soru, ama aynı problemi yaşadım ve bir miktar Googling (çoğunlukla bunun mümkün olmadığını düşündüğüm insanları buldum) ve bazı man sayfalarını okuduktan sonra, şu anda kullanıcı2330377'nin fikrine dayanan bir çözüm geliştirdim.
İlk önce SoX için bir gürültü profili oluşturmanız gerekir. Birkaç saniye gürültü yapmak için herhangi bir ses kayıt programını kullanın, ardından cd
kaydettiğiniz dizine kaydedin sox noise.wav -n noiseprof noise.prof
.
O zaman bir ALSA geridöngü aygıtı oluşturmanız gerekir:
sudo modprobe snd_aloop
Bu gereklidir, çünkü pulseaudio, Jack'in aksine, doğrudan ses yazılımını birbirine bağlayamaz; Bu yüzden geridöngü aygıtını bir vekil olarak kullanacağız.
Şimdi paman
hem mikrofonunuzun (veya başka bir kayıt cihazının) hem de yeni oluşturduğumuz geridöngü cihazının adlarını başlatmanız ve bulmanız gerekiyor . Bunlar bulunduğunda, mikrofonunuzdan ses kaydetmeye, SoX'a aktarmaya ve sonra geri döngü cihazında çalmaya başlamak için aşağıdaki komutu uygulayabilirsiniz:
pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo --latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw - -b 16 -e signed -c 2 -r 44100 -t raw - noisered noise.prof 0.2|pacat -p -d alsa_output.2.analog-stereo --latency=1msec
(-D parametreleri için doğru aygıt adlarını değiştirmeniz gereken yer - ilk pacat çağrısı için giriş aygıtı ve ikinci için geridöngü aygıtı çıkışı.)
İşte, neredeyse bitti! Son adım olarak, seçtiğiniz uygulamayı kullanarak ses kaydetmeye başlayın, ardından başlayın pavucontrol
, "Kayıt" sekmesine geçin ve kayıt için kullanılan ses cihazını ayarlayın (sağdaki gri düğme olarak görüntülenir) "Geri Döngü Ses Monitörü" Cihaz". Şimdi net ve gürültüsüz bir kayıt yapmalısınız!
Araştırma, herhangi bir Linux alt sistemiyle gerçek zamanlı gürültü azaltma filtrelemesi yapmanın bilinen bir yolu olmadığını göstermektedir. Bazı web siteleri, satın alabileceğiniz donanıma işaret eder; bu da bir yazılım filtresi yapmaktan çok daha iyi bir şeydir.
Alternatif olarak, eğer bu bir kayıt için ise, sesi Audacity'den geçirebilir ve oradaki gürültü filtresini kullanabilirsiniz.
module-echo-cancel
| WebRTC'de gibi çeşitli uygulamaları olan olan speex.
İşte, ses tonunda, webrtc-aec'i
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aec Evet VoIP çağrılarını geliştirmek için AudioProcessing kütüphanesini kullanır; akustik eko iptali, analog kazanç kontrolü, gürültü azaltma ve diğer işlemler gerçekleştirerek onu destekleyen uygulamalarda VoIP çağrılarını büyük ölçüde kullanır.
İşte konuyla ilgili 2013 tarihli bir makale (özellikle pulseaudio ile webrtc-aec ile gürültü giderilmesi) http://lac.linuxaudio.org/2013/papers/37.pdf
“PulseAudio üzerine inşa edilmiş çok kanallı bir gürültü / yankı azaltma çözümünün ilk sonuçlarını sunduk ve tasarım kararlarını motive ettik. Bu çalışma PulseAudio yankı iptali ve sinyal işleme çerçevesindeki bazı iyileştirmelerle sonuçlandı. sürüm 3.0 / 4.0 geliştirme döngüsü boyunca katkıda bulundu ve gelecekteki gömülü Linux ses çözümlerini kolaylaştırmalı. Daha fazla çalışma, ses akışı karıştırma kodunu optimize etmeyi, daha verimli yeniden örnekleme yöntemlerini ve çok kanallı işleme hattında etkin bir AEC'nin uygulanmasını içerir. "
Modül dokümantasyon sayfasında gürültü iptali hakkında bir bilgi bulunmamaktadır. Webrtc | gibi bazı uygulamaları olan modül-echo-cancel modülünün içinde yalnızca AEC (Acoustic Echo Cancellation) algoritması var. speex.
Bu nedenle, mümkün olduğunca entegre gürültü önleme özelliğine sahip kulaklık | mikrofon satın almalısınız.
Ubuntu'da ses kaydını test ederken bazı özel özellikler buldum:
Skype, Telegram varsayılan cihazdan gelen ham girdiyi kullanır (benim açımdan mic-in | backward-mic jaklar). Bu uygulamalarda bir gürültüyü iptal etmeniz gerekirse, yalnızca entegre gürültü önleme özelliğine sahip kulaklık | mikrofon satın almalısınız.
Tarayıcıda sesli çağrıları kullanmanız gerekiyorsa, tarayıcıların kendi ses işleme algoritmaları uygulamalarına sahip olduğunu, örneğin WebRTC'yi aklınızda tutmalısınız.
Ayrıca web uygulamaları (talky, hangouts, visible.in, etc gibi siteler), webrtc hangout analizine dayanabilmelerine rağmen, kendi ses işleme algoritmaları uygulamalarına sahip olabilir.