PulseAudio'da A2DP - korkunç dalgalı / atlama sesi


13

Bluetooth kulaklığımı içinde bir Bluetooth çipi bulunan Ubuntu 12.04 dizüstü bilgisayarımla eşleştirdim:

lsusb | grep Bluetooth

Bus 003 Device 003: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth

Cihaz eşleştirildi ve yardımı bluemanile PulseAudio'ya bir lavabo olarak bağladım. Ses A2DP modunda karşımıza çıkıyor, ama çok dalgalı ve hiçbir şeyden daha iyi olmayacak noktaya atlıyor.

Etrafımda okudum ve nicePulseAudio sunucusunun önceliğini ayarlamayı içeren bir düzeltme olduğunu gördüm . Varsayılan olarak, PulseAudio kullanıcı başına çalıştığından, aşağıdakilere ekledim /etc/security/limits.conf:

*       hard    rtpio   0
*       soft    rtpio   0
@audio  hard    rtpio   20
@audio  soft    rtpio   20
pulse   hard    rtpio   20
pulse   soft    rtpio   20

Daha sonra süreç audioiçin önceliği planlayabilmek için kendimi gruba ekledim pulseaudio. Görünüşe göre pulseaudioşimdi bir öncelikle çalışıyor -11:

ps -eo pri, ni, cmd | grep [p] ulse

30 -11 /usr/bin/pulseaudio --start --log-target=syslog

Bu, PulseAudio'nun -11 önceliğiyle çalıştığı anlamına gelmelidir, bu da iyidir.

Ancak, yeniden başlattıktan sonra bile, hala korkunç dalgalı ses alıyorum.

Nasıl ilerlemeliyim? Satın aldığım bu Bluetooth kulaklığı kullanılabilir hale getirmeye çalışıyorum.

Not: Bu cihazı dizüstü bilgisayarımın hemen yanında bir Android tablet ile eşleştirmeyi denedim ve iyi çalışıyor, bu yüzden kablosuz tıkanıklık değil, bir şekilde doğrudan Linux ile ilişkili görünüyor.

Yanıtlar:


20

ALSA yapılandırma dosyasını düzenleyin

sudo gedit /etc/modprobe.d/alsa-base.conf

Satırı ekleyin

options snd-hda-intel model=generic

dosyanın sonuna gidin ve yeniden başlatın.


1
Bu harika benim BOSE sessiz konfor 35 II hoparlörler (Ubuntu 18.04) için çalıştı
Victor Parmar

Bu basit düzeltme, bir çok aramadan sonra da benim için çalıştı. Ubuntu 18.10, bluetooth kulaklık (promate trueBlue).
Francesco Napolitano

Bunun da sorunlarımı çözdüğünü belirtmek için bir hesap oluşturdum (QC35II). Bir açıklama yardımcı olacaktır; ama her iki durumda da, hayat kurtarıcısın
Sam

Debian 9 testinde QC35II ile bu düzeltme ile yaklaşık% 95 daha az kesinlik görüyorum, çekirdek 4.18.20-2.
Andrey Portnoy

3
Bu dosyayı düzenledikten sonra yeniden başlatmanız gerekmez, sadece çalıştırınsudo service bluetooth restart
Dinuka Salwathura

13

Sistemimde diğer cevapların hiçbiri işe yaramadı (2012 MacBook Air'de Ubuntu 18.04 LTS), çözümümü Alman ubuntuusers wiki'sinde buldum . Almanca talimatların İngilizce özeti:

Dalgalı çıktı A2DP uygulaması ve kodlamadan önce sesi nasıl tamponladığı nedeniyle olabilir. Benim için bu arabellek boyutunu değiştirmek dalgalı ses problemini çözdü. Üç adım gerçekleştirmeniz gerekir:

  1. Bluetooth cihazı hakkında gerekli bilgileri bulun (bağlıyken!)

    pactl list | grep -Pzo '.*bluez_card(.*\n)*'
    

    Çıktı,

    Name: bluez_card.28_11_A5_84_B6_F9
    Driver: module-bluez5-device.c
    ...
    Ports:
    speaker-output: Speaker (priority: 0, latency offset: 0 usec, available)
        Part of profile(s): a2dp_sink, headset_head_unit
    speaker-input: Bluetooth Input (priority: 0, latency offset: 0 usec, not available)
        Part of profile(s): headset_head_unit
    

    Tamponların şu anda 0 gecikme süresi olduğunu görüyoruz. Bir sonraki adımda, çıktılarınızın NAMEve öğelerine ihtiyacınız olacak PORT. Bu örnekte, bunlar bluez_card.28_11_A5_84_B6_F9ve speaker-outputsırasıyla.

  2. Bu komut deseni ile kartınızın arabellek boyutunu (gecikme) uygun bir değere ayarlayın:

    pactl set-port-latency-offset <NAME> <PORT> <BUFFER_SIZE_MICROSECONDS> 
    

    Aşağıdaki komutun gecikme birimi mikrosaniyedir, bu yüzden burada komutum için 50 milisaniyelik bir tampon kullanıyorum:

    pactl set-port-latency-offset bluez_card.28_11_A5_84_B6_F9 speaker-output 50000 
    
  3. Değişikliğinizi uygulamak için bluetooth hizmetinizi yeniden başlatın

    sudo service bluetooth restart
    

Bu konuda genellikle herhangi bir belge bulunmadığından, daha yüksek veya daha düşük arabellek değerlerini denemeniz gerekebilir.


1
Daha fazla oy hak ediyorsun! 45000'in Macbook Air (2014 başı) ve Bose QC35
Ole Aldric

Bu doğru, teşekkür ederim
jhtong

Benim için hala kekeme :( (Manjaro)
Lucas Bustamante

Hangi gecikmeleri denediniz?
Chris_128

1
çok daha küçük bir değer çoğu zaman işe yaradı, ancak kromdaki unsurları incelemek ve stilleri değiştirmek gibi şeyler yaparken atlamalardan kurtulmak için 64448'e kadar kranklamak zorunda kaldım.
Nick

3

Düzeltme benim için çalıştı, ancak önceki satır REM zorunda buldum. Aşağıya bakınız:

# Keep snd-usb-audio from beeing loaded as first soundcard  
# options snd-usb-audio index=-2  <-REM this line if it doesn't work at first  
options snd-hda-intel model=generic

3

Chris_128 cevap benim için çalıştı ama yeni başlayanlar için biraz detay ekleyeceğim.

Aşağıdaki komut için NAME ve PORT için:

pactl set-port-latency-offset NAME PORT 50000 

Yazarak sonuç aldıktan sonra alacaksınız:

pactl list | grep -Pzo '.*bluez_card(.*\n)*'


Name: bluez_card.5C_FB_7C_0D_0F_EE
Driver: module-bluez5-device.c
Owner Module: 28
Properties:
    ...
Profiles:
    headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
    a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: yes)
    off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: a2dp_sink
Ports:
    headset-output: Headset (priority: 0, latency offset: 0 usec, available)
        Part of profile(s): headset_head_unit, a2dp_sink
    headset-input: Headset (priority: 0, latency offset: 0 usec)
        Part of profile(s): headset_head_unit

NAME "bluez_card.5C_FB_7C_0D_0F_EE" ve PORT "kulaklık çıkışı" olacak

Benim durumum için emrim

"pactl set-port-latency-offset bluez_card.5C_FB_7C_0D_0F_EE headset-output 50000"

Bluetooth hizmetinizi yeniden başlatın

sudo service bluetooth restart

1

MacBook Mini'de çift önyükleme olarak çalışan Ubuntu 18.04 ile aynı sorunu vardı. @ConfirmAndCreateThisAccount tarafından belirtildiği gibi ALSA yapılandırmasını değiştirmeye çalıştım.

Ama işe yaramadı.

Bu yüzden aşağıdaki komutu kullanarak Blueman'ı kurdum

sudo apt-get install blueman

Sonra Bluetooth cihazını sistem bluetooth ayarlarından çıkardım ve Blueman kullanarak yeniden eşleştirdim. Şimdi her şey yolunda. Oynat / Duraklat kontrolleri bile çalışır.


0

Arama çubuğunu (birlik içinde CTRL-D, Gnome'da Windows-Key) "Nabız" veya "Ses Düzeyi" olarak açabilirsiniz. "Pulseaudio Ses Kontrolü" GUI aracını açın, simgesi düğme veya gösterge gibi görünür.

Orada Bluetooth hoparlörünüzü seçebilirsiniz. Gelişmiş'e tıklayın, Gecikme değerini diğer yanıtlarda önerildiği gibi ayarlayın. 45 ms veya 50 ms onlar için çalışıyor gibi görünüyor, ama benim için iyi bir değer bulamadım.

Bir ekran görüntüsü eklenmiştir. Bluetooth Hoparlörüme SRS-BTX300 adı verilir. Gecikme değerini değiştirdikten sonra bluetooth'u yeniden başlatmanız gerekmez.

resim açıklamasını buraya girin

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.