PulseAudio पर A2DP - भयानक तड़का हुआ / लंघन ऑडियो


13

मैंने अपने ब्लूटूथ हेडसेट को अपने Ubuntu 12.04 लैपटॉप के साथ एक ब्लूटूथ चिप के साथ जोड़ा है:

lsusb | grep ब्लूटूथ

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

डिवाइस को जोड़ा गया है, और इसकी मदद से blueman, मैंने इसे पल्सएडियो से सिंक के रूप में जोड़ा है। ऑडियो A2DP मोड में आता है, लेकिन बहुत अधिक तड़का हुआ है और कुछ भी नहीं होने से बेहतर है।

मैंने चारों ओर पढ़ा और देखा कि niceपल्सएडियो सर्वर की प्राथमिकता को समायोजित करने के लिए एक फिक्स था । डिफ़ॉल्ट रूप से, पल्सएडियो प्रति उपयोगकर्ता आधार पर चलता है, मैंने निम्नलिखित को अपने साथ जोड़ा /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

फिर मैंने प्रक्रिया के audioलिए प्राथमिकता निर्धारित करने में सक्षम होने के लिए खुद को समूह में जोड़ा pulseaudio। ऐसा लगता है कि pulseaudioअब प्राथमिकता के साथ चल रहा है -11:

ps -eo pri, ni, cmd | जीआरपी [पी] अल्सर

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

इसका मतलब यह होना चाहिए कि PulseAudio -11 की प्राथमिकता के साथ चल रहा है, जो अच्छा है।

हालाँकि, पुनरारंभ करने के बाद भी, मुझे अभी भी भयानक चॉपी ऑडियो मिलता है।

मुझे कैसे आगे बढ़ना चाहिए? मैं इस ब्लूटूथ हेडसेट को बनाने की कोशिश कर रहा हूं जिसे मैंने प्रयोग करने योग्य खरीदा है।

नोट: मैंने इस डिवाइस को अपने लैपटॉप के ठीक बगल में एंड्रॉइड टैबलेट के साथ पेयर करने की कोशिश की है और यह ठीक काम करता है, इसलिए यह वायरलेस कंजेशन नहीं है, यह किसी भी तरह सीधे लिनक्स से संबंधित प्रतीत होता है।

जवाबों:


20

ALSA कॉन्फ़िगरेशन फ़ाइल को संपादित करें

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

लाइन जोड़ें

options snd-hda-intel model=generic

फ़ाइल के अंत में, और रिबूट करें।


1
यह मेरे BOSE शांत आराम 35 II वक्ताओं (ubuntu 18.04) के लिए आश्चर्यजनक रूप से काम करता है
विक्टर परमार

बहुत खोज के बाद इस साधारण फिक्स ने भी मेरे लिए काम किया। उबंटू 18.10, ब्लूटूथ इयरफ़ोन (प्रोम ट्रूबल)।
फ्रांसेस्को नेपोलिटानो

यह उल्लेख करने के लिए एक खाता बनाया कि इससे मेरी समस्याएं भी हल हो गई हैं (QC35II)। एक स्पष्टीकरण सहायक होगा; लेकिन किसी भी तरह से, आप एक जीवन रक्षक हैं
सैम

मैं डेबियन 9 टेस्टिंग, क्यूबर्न 4.18.20-2 पर QC35II के साथ इस फिक्स के साथ लगभग 95% कम तड़का हुआ देखता हूं।
एंड्री पोर्टनॉय

3
इस फ़ाइल को संपादित करने के बाद अंत में आपको पुनः आरंभ करने की आवश्यकता नहीं है, बस चलाएंsudo service bluetooth restart
दीनुका सलावाथुरा

12

जैसा कि मेरे सिस्टम पर काम किए गए अन्य उत्तरों में से किसी ने भी नहीं किया (2012 मैकबुक एयर पर उबंटू 18.04 एलटीएस), मैंने जर्मन ubuntuusers विकी पर अपना समाधान पाया । जर्मन निर्देशों का अंग्रेजी सारांश:

ए 2 डीपी कार्यान्वयन के कारण तड़का हुआ उत्पादन हो सकता है, और यह बफ़र्स एन्कोडिंग से पहले कैसे ध्वनि करता है। मेरे लिए, इस बफ़र के आकार को बदलने से चॉपी ध्वनि की समस्या हल हो गई। आपको तीन चरण करने होंगे:

  1. ब्लूटूथ डिवाइस के बारे में आवश्यक जानकारी प्राप्त करें (जबकि यह जुड़ा हुआ है!)

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

    आउटपुट कुछ इस तरह होना चाहिए

    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
    

    हम देखते हैं कि बफ़र्स में वर्तमान में 0 विलंबता है। अगले चरण में, आप की आवश्यकता होगी NAMEऔर PORTअपने उत्पादन का। इस उदाहरण में, ये क्रमशः हैं bluez_card.28_11_A5_84_B6_F9और speaker-output

  2. इस कमांड पैटर्न के साथ अपने कार्ड के बफर आकार (विलंबता) को एक उपयुक्त मान पर सेट करें:

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

    निम्नलिखित कमांड की विलंबता इकाई माइक्रोसेकंड है, इसलिए मैं यहां अपने आदेश के लिए 50 मिलीसेकंड बफर का उपयोग कर रहा हूं:

    pactl set-port-latency-offset bluez_card.28_11_A5_84_B6_F9 speaker-output 50000 
    
  3. अपना परिवर्तन लागू करने के लिए अपनी ब्लूटूथ सेवा को पुनरारंभ करें

    sudo service bluetooth restart
    

जैसा कि आमतौर पर इस बारे में कोई दस्तावेज नहीं है, आपको उच्च या निम्न बफर मान के साथ प्रयोग करना पड़ सकता है।


1
आप अधिक उत्थान के लायक हैं! मैं उल्लेख करना चाहूंगा कि मैकबुक एयर (2014 की शुरुआत) और बोस QC35 के लिए 45000 अच्छी तरह से काम करता है
ओले एल्ड्रिक

यह सही है, धन्यवाद
jhtong

अभी भी मेरे लिए हकलाता है :( (मंजरो)
लुकास Bustamante

आपने किन विलंब की कोशिश की?
क्रिस_128

3

मेरे लिए फिक्स ने काम किया, हालांकि मैंने पाया कि मुझे इसके पहले आरईएम की लाइन लेनी थी। निचे देखो:

# 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

क्रिस_128 जवाब ने मेरे लिए काम किया लेकिन न्यूबाय्स के लिए मैं थोड़ा विस्तार जोड़ूंगा।

नीचे दिए गए आदेश के लिए NAME और PORT के लिए:

pactl set-port-latency-offset NAME PORT 50000 

टाइप करने के बाद आपको परिणाम मिलेगा:

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" होगा और पोर्ट "हेडसेट-आउटपुट" होगा

तो मेरे मामले के लिए मेरी आज्ञा है

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

अपनी ब्लूटूथ सेवा को पुनरारंभ करें

sudo service bluetooth restart

1

मैकबुक मिनी में दोहरे बूट के रूप में चलने वाले Ubuntu 18.04 के साथ एक ही मुद्दा था। @ConfirmAndCreateThisAccount द्वारा उल्लिखित ALSA कॉन्फ़िगरेशन को बदलने की कोशिश की।

लेकिन यह काम नहीं किया।

इसलिए मैंने नीचे दिए गए कमांड का उपयोग करके ब्लूमैन को स्थापित किया

sudo apt-get install blueman

फिर मैंने सिस्टम ब्लूटूथ सेटिंग्स से ब्लूटूथ डिवाइस को डिस्कनेक्ट कर दिया और ब्लूमैन का उपयोग करके फिर से जोड़ा। अब सब ठीक हे। यहां तक ​​कि प्ले / पॉज काम को नियंत्रित करता है।


0

आप "पल्स" या "वॉल्यूम" में खोज पट्टी (एकता में सीटीआरएल-डी, गनोम में विंडोज-कुंजी) प्रकार खोल सकते हैं। GUI टूल "Pulseaudio वॉल्यूम कंट्रोल" खोलें, इसका आइकन घुंडी या गेज जैसा दिखता है।

वहां आप अपने ब्लूटूथ स्पीकर का चयन कर सकते हैं। उन्नत पर क्लिक करें, अन्य उत्तरों में प्रस्तावित की तरह ही लेटेंसी वैल्यू सेट करें। 45 एमएस या 50 एमएस उनके लिए काम करने लगता है, लेकिन मुझे एक अच्छा मूल्य नहीं मिला जो मेरे लिए काम करता है।

एक स्क्रीनशॉट संलग्न है। मेरे ब्लूटूथ स्पीकर को SRS-BTX300 कहा जाता है। विलंबता मान को बदलने के बाद आपको ब्लूटूथ को पुनरारंभ करने की आवश्यकता नहीं है।

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.