मैं रास्पियन जेसी पर जैस्पर के लिए अपनी आवाज कैसे कॉन्फ़िगर करूं?


19

मैं रास्पबेरी पाई 2 मॉडल बी पर जैस्पर (मास्टर शाखा ) को चलाने के लिए रास्पियन जेसी (2015-11-21) का उपयोग कर रहा हूं । दस्तावेज़ीकरण में इंस्टॉलेशन निर्देश व्हीज़ी के लिए लगता है न कि जेसी के लिए।

व्हीज़ज़ी पर जैस्पर चलाना ठीक रहता है। लेकिन, जेसी पर, मुझे ध्वनि को कॉन्फ़िगर करने में समस्याएं थीं। या तो मेरे माइक ने काम किया लेकिन स्पीकर या इसके विपरीत नहीं।

क्या करने की आवश्यकता है, डिफ़ॉल्ट साउंड कार्ड को USB पर सेट किया जाना चाहिए क्योंकि यही वह जगह है जहां मेरा यूएसबी माइक जुड़ा हुआ है और जैस्पर को इसकी आवश्यकता है। ऐसे बहुत से उत्तर हैं जो ALSA के माध्यम से कॉन्फ़िगर करने की बात करते हैं ~/.asoundrc, /etc/asound.confऔर यहां तक ​​कि /usr/share/alsa/alsa.confउनमें से किसी ने भी मेरे लिए काम नहीं किया।

जब मैं अपने मिक्सर को खोलकर alsamixerहिट करता F6हूं, तो मैं हमेशा bcm2835डिफ़ॉल्ट कार्ड के रूप में देखता हूं । यह Pi2 का डिफ़ॉल्ट कार्ड है लेकिन मैं अपने USB को डिफ़ॉल्ट कार्ड बनाना चाहता हूं।

मैं यह कैसे करु?

जवाबों:


25

एएलएसए विकी के अनुसार , शीर्षक के तहत " कई स्थापित कार्डों के लिए एक विशेष ऑर्डर कैसे चुनना है" पढ़ता है , यह निम्नलिखित है:

कौन सा कार्ड कार्ड नंबर 0, 1 है और इसलिए डिफ़ॉल्ट रूप से मॉड्यूल लोड ऑर्डर द्वारा निर्धारित किया गया है। यह चुनने के लिए विशेष रूप से उपयोगी है कि कौन सा कार्ड डिफ़ॉल्ट है।

इसलिए सिद्धांत रूप में यह चुनना संभव है कि कौन से स्थापित कार्ड कार्ड 0 बन गए, डिफ़ॉल्ट, यह सुनिश्चित करके कि उसका ड्राइवर मॉड्यूल पहले लोड किया गया है। (नोट: यह मानता है कि प्रत्येक साउंड कार्ड के लिए एक अलग ड्राइवर की आवश्यकता होती है। यदि आपके पास एक ही प्रकार के दो साउंडकार्ड हैं, तो कृपया अगले अनुभाग पर जाएं।)

इसे प्राप्त करने के दो तरीके हैं, कार्ड ड्राइवर मॉड्यूल का "पुराना" सूचकांक = विकल्प, और snd मॉड्यूल का विकल्प (और नया) स्लॉट = विकल्प।

यह ऐसा करने के दो तरीकों का दस्तावेजीकरण करता है:

  1. पुरानी "इंडेक्स =" विधि
  2. नया "स्लॉट्स =" विधि

पूर्व वह है जो जैस्पर इंस्टॉलेशन निर्देश सुझाता है। यह भी क्या समाधान के बहुमत के बारे में बात करते हैं। हालांकि, यह पुरानी पद्धति है और अधिक वर्तमान रास्पियन जेसी छवियों पर काम नहीं कर सकता है।

दोनों विधियों का एक संयोजन जो मेरे लिए काम करता है।

सबसे पहले, यह देखने के लिए जांचें कि आपके कार्ड किस क्रम में लोड किए गए हैं:

$ cat /proc/asound/modules
 0 snd_bcm2835
 1 snd_usb_audio

गिनती कार्ड शुरू होता है 0इसलिए डिफ़ॉल्ट bcm2835पहले लोड होता है और मेरा यूएसबी कार्ड जिसमें मेरा माइक दूसरा होता है।

मेरे कार्ड को पुन: व्यवस्थित करने के लिए, मैं पहली बार नाम की एक फ़ाइल बनाने के /etc/modprobe.d/alsa-base.conf। इसे तब तक नाम दिया जा सकता है जब तक आप इसे समाप्त करना चाहते हैं .conf। मैंने फिर निम्नलिखित जोड़ा:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835

टिप्पणियों को यह बताना चाहिए कि प्रत्येक पंक्ति क्या करती है। एक बार जब आप ऐसा कर लेते हैं, तो ऐसा लगता है कि आपको काम करने के लिए अपनी मशीन को रिबूट करना होगा।

एक बार जब आप रिबूट करते हैं, तो आपको डिफ़ॉल्ट कार्ड के साथ कुछ ऑडियो रिकॉर्ड करने में सक्षम होना चाहिए जो अब आपका माइक होना चाहिए:

$ arecord temp.wav

और फिर इसे प्ले करें, कार्ड को 1 के रूप में निर्दिष्ट करें और 0 के रूप में डिवाइस जो आपके स्पीकर आउटपुट में होना चाहिए:

aplay -D plughw:1,0 temp.wav

मैंने शुरू में इसमें केवल लाइन जोड़ी थी slots। इसने मेरे USB कार्ड को डिफ़ॉल्ट कार्ड बनाने में काम किया लेकिन इसे गलत अनुक्रमित किया गया। उदाहरण के लिए, एक बार मैंने ऐसा किया, यह वही है जो मेरे /proc/asound/modulesजैसा दिखता था:

$ cat /proc/asound/modules
 1 snd_usb_audio
 2 snd_bcm2835

आदर्श रूप में, यह इस तरह दिखना चाहिए:

 0 snd_usb_audio
 1 snd_bcm2835

और यही कारण है कि मैं indexइसे प्राप्त करने के लिए विधि का भी उपयोग करता हूं ।


खुशी है कि यह मदद मिली :) मेरे पास बैश सेटअप स्क्रिप्ट के साथ-साथ मेरे गिठुब खाते (मेरी प्रोफ़ाइल में लिंक) पर कुछ दिनों में यह सब करने के लिए एक बावर्ची रसोई की किताब भी होगी।
गृहणी

मेरे पास दो उपकरण हैं snd_usb_audio, दुर्भाग्य से।
क्लेनफ्रेन्ड

@ हसनी क्या आपने वह स्क्रिप्ट अभी तक बनाई है?
not2qubit

0

इस परियोजना के लिए एल्सा मुद्दों को डीबग करने की कोशिश करने और बीओटीएच यूएसबी माइक और बीएमसी 2835 स्पीकर काम करने के बाद मुझे लगता है कि एक बुनियादी समस्या है जो मुझे मिली सभी एएलएसए सलाह से निपटती नहीं है।

/ Usr / share / alsa / card निर्देशिका में bcm2835.conf फ़ाइल नहीं है। / Usr / share / alsa directory file alsa.conf में बहुत सारे स्टब्स होते हैं जिन्हें निर्दिष्ट करने की आवश्यकता होती है। जब तक bcm2835 के लिए एक कार्ड की आपूर्ति नहीं की जाती है, तब तक जैस्परफ्रेम को फायर करना बहुत अधिक गैर-घातक त्रुटि संदेशों को प्रदर्शित करता है। Bcm2835.conf फ़ाइल पर काम करके, आप चिड़चिड़े संदेशों से छुटकारा पा सकते हैं।

मुझे लगता है कि यह एक जेसी बग है; वास्तव में ऐसी फ़ाइल होनी चाहिए जो इन त्रुटि संदेशों को हल करती है। मैं सिर्फ जेसीआई प्रोग्रामर के लिए आलसी लगता है जो कि एएलएसए के साथ सौदा करता है जिसने परीक्षण नहीं किया है।

मैंने सभी त्रुटि संदेशों के माध्यम से काम नहीं किया है, लेकिन मुझे संदेह है कि अन्य संदेश इसके कारण भी हैं।

एक परिपक्व रिलीज नहीं होने का एक और मामला बूट के दौरान पुराने फर्मवेयर की जांच करने में विफलता है। मेरी जेसी पर पुरानी फर्मवेयर एक डेस्कटॉप के परिणामस्वरूप हुई जो कीबोर्ड या माउस का जवाब नहीं देगी जो पुराने फर्मवेयर के साथ जेसी का उपयोग करने के लिए एक शोस्टॉपर है, जब तक कि आप एसश को नहीं जानते। उपयोगकर्ता अनुभवहीन नहीं है।


1
WRT यह "जेसीआई प्रोग्रामर के लिए सिर्फ आलसी लगता है जो एएलएसए के साथ सौदा करता है जिसने एक परीक्षण नहीं किया है", यह विश्वास करते हुए भ्रमित न हों कि डेबियन 8, उर्फ। जेसी, जिसमें से रास्पियन बनाया गया है, मुख्य रूप से रास्पबेरी पाई और बीसीएम 2835 एसओसी के लिए अभिप्रेत है। बाद वाले डेबियन उपयोगकर्ताओं का 1% हिस्सा होगा, इसलिए इसे शायद ही उनके लिए प्राथमिकता माना जा सकता है। तथ्य यह है कि के एक समूह मुख्य रूप से स्वयंसेवकों नहीं काम करने के लिए एक कुंजीपटल 25 घंटे / दिन में करने के लिए हर कोई उन्हें आलसी नहीं है सब कुछ बनना चाहता हूँ ....
गोल्डीलॉक्स

... यह सिर्फ इंगित करता है कि काम करने के लिए आवश्यक तकनीकी विशेषज्ञता वाले समुदाय के लोगों द्वारा पर्याप्त रुचि नहीं है।
गोल्डीलॉक्स ocks
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.