2013-12-12 6 views
10

से ओपस कोडेक का उपयोग कैसे कर सकता हूं, मैं देखना चाहता हूं कि getUserMedia या नवीनतम ब्राउज़र से संबंधित कुछ भी उपयोग करके ओपस तक सीधे पहुंच हो सकती है या नहीं।मैं जावास्क्रिप्ट

मैं इस पर बहुत शोध कर रहा हूं लेकिन बिना अच्छे परिणाम के।

मुझे पता है कि ओपस या स्पीक्स वास्तव में webkitSpeechRecognition एपीआई में उपयोग किया जाता है। मैं भाषण मान्यता करना चाहता हूं लेकिन Google के बजाए अपने सर्वर का उपयोग करना चाहता हूं।

उत्तर

11

इसलिए ईएमएसस्क्रिप्ट के बारे में बहुत सारे सुझाव हैं लेकिन किसी ने भी नहीं किया, इसलिए मैंने एन्स्क्रिप्टर का उपयोग करके जावास्क्रिप्ट में opus-tools एन्कोडर पोर्ट किया। किसी के दिमाग में निर्भर है, अब निम्नलिखित अवसर हैं:

+0

वाह! ये अद्भुत है। इसे स्वीकार किए गए उत्तर के रूप में चिह्नित करना, हालांकि मैंने इसका परीक्षण नहीं किया है! –

+0

@OmarIthawi धन्यवाद। [यह डेमो] देखें (https://blog.rillke.com/opusenc.js/) और [रिपोर्ट बग] (https://github.com/Rillke/opusenc.js/issues) या मुझे बताएं कि कैसे बनाना है यह और अधिक भयानक है। –

3

दुर्भाग्य से, वर्तमान में जावास्क्रिप्ट से एन्कोडिंग के लिए ब्राउज़र कोडेक्स तक पहुंचना संभव नहीं है। ऐसा करने का एकमात्र तरीका वेबआरटीसी का उपयोग करना और सर्वर पर रिकॉर्डिंग सेट करना होगा। मैंने क्रोमियम से किसी अन्य कोड के साथ libjingle संकलित करके इसे Node.js सर्वर पर चलाने के लिए कोशिश की है ... यह लगभग असंभव है।

एकमात्र चीज जो आप वर्तमान में कर सकते हैं वह आपके सर्वर पर कच्चे पीसीएम डेटा भेजती है। यह बैंडविड्थ का थोड़ा सा हिस्सा लेता है, लेकिन आप फ्लोट 32 नमूने को 16 बिट तक (या 8 बिट अगर आपकी भाषण मान्यता इसे संभाल सकते हैं) को परिवर्तित करके कम कर सकते हैं।

उम्मीद है कि मीडिया रिकॉर्डर एपीआई जल्द ही दिखाई देगा ताकि हम ब्राउज़र कोडेक्स का उपयोग कर सकें।

+0

धन्यवाद एक साथ समर्थित प्लेटफार्मों पर ओपस प्रारूप में परिवर्तित करने की अनुमति होगी उपयोग करना संभव है एक बहुत। मुझे लगता है कि मैं एचटीएमएल 5 के किनारे तक पहुंच गया हूं। अफसोस की बात है कि मैं 'rtmp' का उपयोग कर फ्लैश आधारित समाधान पर वापस जाऊंगा। –

+0

दुख की बात यह है कि Google के पास पहले से ही दो घटक 'x-webkit-speech' और 'webkitSpeechRecognition' में है, मैं चाहता हूं कि वे सर्वर को बदलने की अनुमति दें। यह वास्तव में मेरी समस्या का समाधान होगा। –

+0

@OmarIthawi मैं वास्तव में असहमत हूं कि भाषण मान्यता एपीआई है जहां यह किया जाना चाहिए। मैं एक ऐसे मामले की कल्पना कर सकता हूं जहां ब्राउजर द्वारा स्पीच मान्यता की जा सकती है, बिना किसी सर्वर पर इसे भेज दिए। मीडिया रिकॉर्डर एपीआई है जहां आपकी तत्काल आवश्यकता पूरी होनी चाहिए। अन्यथा, यदि आप ब्राउज़र प्लगइन के माध्यम से भाषण मान्यता को ओवरराइड कर सकते हैं तो यह सहायक होगा। – Brad

3

यह एक पूरा समाधान नहीं है, @ ब्रैड का जवाब वास्तव में इस समय सही है।

ऐसा करने का एक तरीका Opus to Emscripten संकलित करना है और उम्मीद है कि आपका पीसी जावास्क्रिप्ट का उपयोग करके एन्कोडिंग को संभाल सकता है। एक और विकल्प speex.js का उपयोग करना है।

4

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

+1

अब हमारी एकमात्र चुनौती एक मुक्त ओपन-सोर्स वीडियो कोडेक ढूंढ रही है जो getUserMedia के साथ काम करेगी। – CpnCrunch

संबंधित मुद्दे