2010-10-20 19 views
5

क्या किसी को पता है कि एंड्रॉइड डिवाइस के अंतर्निर्मित ध्वनिक गूंज रद्दीकरण का उपयोग कैसे करें? यह सिलिकॉन में कहीं स्थित है और जीएसएम/सीडीएमए स्पीकरफोन कॉल के लिए प्रयोग किया जाता है। हम वास्तव में अपने स्वयं के रोलिंग के बजाय वीओआईपी आवेदन के लिए इसमें टैप करना चाहते हैं।एंड्रॉइड के बिल्ड-इन ध्वनिक इको रद्दीकरण का उपयोग

बेन

+0

किसी भी भाग्य? मैं वही चीज़ देख रहा हूं ... –

उत्तर

0

मैं एक ही जगह पर किया गया है, सफलतापूर्वक Android के लिए Speex एईसी पोर्ट और 2 अलग एंड्रॉयड वीओआईपी ग्राहकों में इसका इस्तेमाल किया। स्पीकरफ़ोन पर पूर्ण मात्रा में - विभिन्न उपकरणों पर परीक्षण किए जाने पर अधिकांश गूंज रद्द हो जाती है। स्पीक्स आधिकारिक दस्तावेज़ और गुगलिंग इसे काम करने के लिए पर्याप्त होना चाहिए।

+0

हाय क्या आप मुझे यह काम करने के लिए मार्गदर्शन कर सकते हैं। मैं गूंज रद्द करने के लिए संघर्ष कर रहा हूं जब दोनों डिवाइस लाउडस्पीकर मोड में हैं। –

+0

हाय, यू अपने मूल कोड –

4

मैं अंत में अपने आर्म 5 (डब्ल्यूएम 8650) प्रोसेसर (एंड्रॉइड 2.2) पर काम करने के लिए गूंज रद्दीकरण प्राप्त करने में सक्षम था। नीचे दिए गए कदम हैं।

  1. मैंने जेएनआई के साथ स्पीक्स लपेट लिया और पीसीएम फ्रेम को एन्कोडर भेजने से पहले गूंज प्रसंस्करण दिनचर्या कहा। कोई इको रद्द नहीं किया गया था इससे कोई फर्क नहीं पड़ता कि मैंने स्पीक्स सेटिंग्स की कोशिश की थी।

  2. क्योंकि स्पीक्स प्लेबैक और गूंज फ्रेम के बीच देरी के प्रति बहुत संवेदनशील है, मैंने एक कतार लागू की और ऑडियोट्रैक को भेजे गए सभी पैकेट कतारबद्ध किए। कतार का आकार लगभग आंतरिक ऑडियोट्रैक बफर के आकार के बराबर होना चाहिए। इस तरह पैकेट को echo_playback पर लगभग उसी समय भेजा गया था जब ऑडियोट्रैक अपने आंतरिक बफर से साउंड कार्ड में पैकेट भेजता था। देरी को इस दृष्टिकोण से हटा दिया गया था लेकिन गूंज अभी भी रद्द नहीं किया गया था

  3. मैंने जेएनआई के साथ वेबआरटीसी इको रद्दीकरण भाग लपेट लिया और पैकेट को एन्कोडर भेजने से पहले इसकी विधियों को बुलाया। गूंज अभी भी मौजूद थी लेकिन पुस्तकालय स्पष्ट रूप से इसे रद्द करने की कोशिश कर रहा था।

  4. मैंने पी 2 में वर्णित बफर तकनीक लागू की और अंत में यह काम करना शुरू कर दिया। हालांकि प्रत्येक डिवाइस के लिए देरी को समायोजित करने की आवश्यकता है। ध्यान दें कि वेबआरटीसी में इको रद्दीकरण का मोबाइल और पूर्ण संस्करण है। पूर्ण संस्करण प्रोसेसर को काफी हद तक धीमा कर देता है और शायद एआरएम 7 पर ही चलाया जाना चाहिए। मोबाइल संस्करण के कम गुणवत्ता के

साथ लेकिन काम करता है मुझे आशा है कि यह किसी को मदद मिलेगी।

+0

Speex में घबराना बफर इस्तेमाल किया ओपस http://opus-codec.org/ ने ले लिया है था। –

+0

क्या कतार को ऑडियोट्रैक के आंतरिक बफर प्लस के समान ऑडियो आकार के आंतरिक बफर के आकार के समान आकार की आवश्यकता है? –

0

एपीआई स्तर 11 के बाद से, MediaRecorder.AudioSource के लिए एक नया मान है, यह VOICE_COMMUNICATION है। एंड्रॉयड डॉक्स say: "माइक्रोफोन ऑडियो स्रोत ऐसे वीओआईपी के रूप में आवाज संचार के लिए देखते यह उदाहरण के लिए प्रतिध्वनि रद्द या स्वचालित लाभ नियंत्रण यदि उपलब्ध हो का लाभ प्राप्त करेंगे यह अन्यथा डिफ़ॉल्ट की तरह बर्ताव करता है, तो कोई आवाज प्रसंस्करण लागू किया जाता है।।।" मैंने कोशिश की, लेकिन यह काम नहीं कर सका। समस्या वह डिवाइस हो सकती है जिसका मैंने उपयोग किया था, जो सोनी टैबलेट एस वर्थ की कोशिश कर रहा है।

+0

यह वास्तव में सच है, लेकिन एपीआई स्तर 11 के बाद से, यह वास्तव में अब तक उपयोग किए जाने वाले अधिकांश उपकरणों पर काम नहीं कर रहा है। यह सिर्फ करता है, ठीक है, कुछ नहीं .... – PKlumpp