दिलचस्प पोस्ट
जावा में अजीब पूर्णांक मुक्केबाजी डेटा का उपयोग करते समय सुझाए गए फ़ाइल नाम निर्दिष्ट करने का कोई तरीका क्या है: यूआरआई? एंड्रॉइड एसडीके टूल अपग्रेड नहीं कर सकते पटरियों पर सीखना रूबी मुझे डेटा स्रोत की SQL बोली को कॉन्फ़िगर करने की आवश्यकता क्यों है? कक्षा खंड को बढ़ाना त्रुटि जावा में फ़ाइल निर्माण तिथि निर्धारित करें सी # ड्रैग ड्रॉप विंडोज 7 पर काम नहीं करता है दो खींचने योग्य डिवाओं के बीच एक रेखा खींचें पायथन 3 टाइमेड इनपुट एसक्यूएल रैंक () बनाम ROW_NUMBER () उत्सुकता से आवर्ती टेम्पलेट पैटर्न (सीआरटीपी) क्या है? एंड्रॉइड में विशाल छवियां प्रदर्शित करें कोणीय – यूआई रूटर – प्रोग्रामेटिक रूप से राज्य जोड़ें क्या मुझे एसवीएन या गिट का उपयोग करना चाहिए?

आवाज़ पहचान आशय से ऑडियो रिकॉर्ड / सहेजें

इस सवाल को पूछने से पहले, मैंने बिना किसी सफलता के इस मुद्दे से संबंधित सभी थ्रेकेवर्फ फ़्लो को चेक किया, इसलिए कृपया, अन्य धागे के लिंक के साथ उत्तर न दें, 🙂

मैं ऑडियो को सहेजना / रिकॉर्ड करना चाहता हूं जो कि Google मान्यता सेवा को भाषण के लिए टेक्स्ट ऑपरेशन के लिए इस्तेमाल किया गया है (रिकॉग्नाइजरआईआईन्टेंट या स्पीचआरिकोजिज़र का उपयोग करके)

मैंने कई विचारों का अनुभव किया:

  1. मान्यता के बाद से बफर को प्राप्त किया गया: लेखक: मुझे पता है, यह काम नहीं कर रहा है, बस इसे देखने के लिए जांचें कि क्या होता है और बफर को हासिल नहीं किया जाता है (जेबी 4.3 के साथ आकाशगंगा गठजोड़ पर परीक्षण किया गया है)
  2. एक मीडिया रिकॉर्डर का इस्तेमाल किया: काम नहीं कर रहा है यह भाषण मान्यता तोड़ रहा है माइक के लिए केवल एक ऑपरेशन की अनुमति है
  3. यह पता लगाने की कोशिश की कि जहां आवाज़ सेवा अस्थायी ऑडियो फ़ाइल को भाषण के निष्पादन से पहले कॉपी करने के लिए टेक्स्ट एपीआई को सहेज रही है, लेकिन सफलता के बिना

मैं लगभग हताश था लेकिन मैंने देखा है कि Google आवेदन रख रहा है जो मुझे करने की आवश्यकता है !!!! मैंने लॉगकट का उपयोग करते हुए आवेदन को थोड़ी ही डिबग कर दिया और ऐप टेक्स्ट को भाषण को ट्रिगर करने के लिए "रिकॉग्नाइज़रइंन्टेंट। एक्शन_ओएजजीआईएसपीईईएसीएच" (जैसे हम, डेवलपर्स, करें) भी कह रहे हैं। लेकिन, ऑडियो को कैसे बचाया जा रहा है? क्या यह छिपाना एपीआई हो सकता है? गूगल "धोखाधड़ी" है :)?

आपके सहयोग के लिए धन्यवाद

सादर

वेब के समाधान से एकत्रित समाधान "आवाज़ पहचान आशय से ऑडियो रिकॉर्ड / सहेजें"

@ कैरेल्स का जवाब लगभग पूर्ण है – परिणामी ऑडियो intent.getData() और सामग्री रीसोलर का उपयोग करके पढ़ा जा सकता है

दुर्भाग्य से, लौटाए गए एएमआर फाइल कम गुणवत्ता है – मैं उच्च गुणवत्ता वाले रिकॉर्डिंग प्राप्त करने का कोई रास्ता खोज नहीं पा रहा था। मैं "ऑडियो / एएमआर" के अलावा किसी अन्य मान की कोशिश कर रहा था intent.getData() में शून्य।

यदि आपको उच्च गुणवत्ता वाली रिकॉर्डिंग प्राप्त करने का कोई तरीका मिल जाए – कृपया टिप्पणी दें या कोई उत्तर जोड़ें!

 public void startSpeechRecognition() { // Fire an intent to start the speech recognition activity. Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // secret parameters that when added provide audio url in the result intent.putExtra("android.speech.extra.GET_AUDIO_FORMAT", "audio/AMR"); intent.putExtra("android.speech.extra.GET_AUDIO", true); startActivityForResult(intent, "<some code you choose>"); } // handle result of speech recognition @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // the resulting text is in the getExtras: Bundle bundle = data.getExtras(); ArrayList<String> matches = bundle.getStringArrayList(RecognizerIntent.EXTRA_RESULTS) // the recording url is in getData: Uri audioUri = data.getData(); ContentResolver contentResolver = getContentResolver(); InputStream filestream = contentResolver.openInputStream(audioUri); // TODO: read audio file from inputstream } 

पिछली बार मैंने चेक किया, Google Keep इन एक्स्ट्रास सेट करता है:

  • android.speech.extra.GET_AUDIO_FORMAT: ऑडियो / एएमआर
  • android.speech.extra.GET_AUDIO: सच है

ये एंड्रॉइड प्रलेखन के हिस्से के रूप में प्रलेखित नहीं हैं, इसलिए वे एक एंड्रॉइड एपीआई का गठन नहीं करते हैं। साथ ही, Google Keep इन एक्स्ट्रास्ट्रस पर विचार करने के लिए पहचानकर्ता इरादे पर भरोसा नहीं करता है। यह निश्चित रूप से अच्छा होगा यदि Google द्वारा इस तरह के एक्स्ट्रा कलाकार लोकप्रिय और प्रलेखित थे

यह पता लगाने के लिए कि Google Keep द्वारा कौन-से ऐडवर्ड्स सेट किए गए हैं, जब वह RecognizerIntent कॉल करता है, एक ऐप्लिकेशन को लागू करें जो RecognizerIntent प्रतिक्रिया करता है और सभी एक्स्ट्रार्स को प्रिंट करता है जो इसे प्राप्त करता है। आप कोऑनेले ( http://kaljurand.github.io/K6nele/ ) को भी स्थापित कर सकते हैं, जो कि रिकॉग्नाइजरआईंटेंट का कार्यान्वयन है। जब Google Keep द्वारा Kõnele लॉन्च किया गया है, तो रेंच-आकार की सेटिंग्स आइकन को लंबे समय से दबाएं। यह कॉल करने वाले के बारे में कुछ तकनीकी जानकारी दिखाता है, और इसमें आने वाले अतिरिक्त शामिल हैं

@Iftah का जवाब बताता है कि Google Keep ऑडियो रिकॉर्डिंग को रिकॉइलाइजर इन्टरेंट के कॉल करने के लिए कैसे देता है

मुझे यहां से यह उत्तर मिला, मैंने तिथियों की जाँच की और देखा कि यह आपके पोस्ट के कुछ दिनों बाद पोस्ट किया गया था, इसलिए मैंने सोचा कि आपने इसे याद किया। एक ही समय में एंड्रॉइड भाषण पहचानने और ऑडियो रिकॉर्डिंग

एक दोस्त वहाँ कहते हैं:

मुझे एक ऐसा समाधान मिला है जो भाषण पहचानने और ऑडियो रिकॉर्डिंग के लिए अच्छी तरह से काम कर रहा है यहां ( https://github.com/katchsvartanian/voiceRecognition ) एक सरल एंड्रॉइड प्रोजेक्ट का लिंक है जो मैंने समाधान के काम को दिखाने के लिए बनाया है। इसके अलावा, मैं एप को वर्णन करने के लिए परियोजना के अंदर कुछ प्रिंट स्क्रीन रखता हूं।

मैं संक्षेप में जिस तरीके से इस्तेमाल किया था, उसे समझाने की कोशिश कर रहा हूं I मैंने उस प्रोजेक्ट में दो विशेषताएं एकत्रित की हैं: Google भाषण एपीआई और फ्लेक्स रिकॉर्डिंग

Google भाषण API को HTTP कनेक्शन के माध्यम से कहा जाता है माइक Pultz एपीआई के बारे में अधिक जानकारी देता है:

"(…) नया [Google] एपीआई एक पूर्ण-डुप्लेक्स स्ट्रीमिंग एपीआई है। इसका क्या मतलब है, यह वास्तव में दो HTTP कनेक्शन का उपयोग करता है- सामग्री को" लाइव "चंकेड स्ट्रीम के रूप में अपलोड करने के लिए एक पोस्ट अनुरोध, और दूसरे परिणाम प्राप्त करने के लिए अनुरोध प्राप्त करें, जो लंबे समय तक ऑडियो नमूनों के लिए और स्ट्रीमिंग ऑडियो के लिए बहुत अधिक समझ में आता है। "

हालांकि, इस API को ठीक से काम करने के लिए एक एफ़एलएसी ध्वनि फ़ाइल प्राप्त करने की आवश्यकता है। यही हमें दूसरे भाग में जाने देता है: फ्लैक रिकॉर्डिंग

मैंने ऑडियोबू नामक एक ओपन सोर्स ऐप से कोड और लाइब्रेरी के कुछ टुकड़ों को निकालने और अनुकूल करने के माध्यम से उस प्रोजेक्ट में फ्लैक रिकॉर्डिंग को कार्यान्वित किया है। ऑडियोबू फ्लेक प्रारूप को दर्ज करने और चलाने के लिए मूल कोड का उपयोग करता है।

इस प्रकार, एक फ्लेक्स ध्वनि रिकॉर्ड करना संभव है, इसे Google भाषण एपीआई पर भेजें, टेक्स्ट प्राप्त करें, और ध्वनि दर्ज करें जो अभी रिकॉर्ड किया गया था।

मेरे द्वारा बनाई गई परियोजना में इसे काम करने के लिए बुनियादी सिद्धांत हैं और विशिष्ट स्थितियों के लिए इसमें सुधार किया जा सकता है। इसे किसी भिन्न परिदृश्य में काम करने के लिए, Google भाषण API कुंजी प्राप्त करना आवश्यक है, जो कि Google क्रोमियम-देव समूह का हिस्सा बनकर प्राप्त किया जाता है। मैंने उस प्रोजेक्ट में एक कुंजी को छोड़ दिया, सिर्फ यह काम करने के लिए, लेकिन मैं अंततः इसे निकाल दूंगा अगर किसी को इसके बारे में अधिक जानकारी की जरूरत है, मुझे इस कारण बताएं कि मैं इस पोस्ट में 2 से अधिक लिंक डाल नहीं पा रहा हूं।