System.Speech.Recognition और Microsoft.Speech.Recognition में क्या अंतर है?


79

.NET में वाक् पहचान के लिए दो समान नामस्थान और असेंबली हैं। मैं मतभेदों को समझने की कोशिश कर रहा हूं और जब एक या दूसरे का उपयोग करना उचित हो।

विधानसभा System.Speech से System.Speech.Recognition है (System.Speech.dll में)। System.Speech.dll .NET फ्रेमवर्क क्लास लाइब्रेरी 3.0 और बाद में एक कोर DLL है

असेंबली से Microsoft.Speech.Recognition भी है। Microsoft (microsoft.speech.dll में)। Microsoft.Speech.dll UCMA 2.0 SDK का हिस्सा है

मुझे भ्रमित करने वाले दस्तावेज़ मिले हैं और मेरे पास निम्नलिखित प्रश्न हैं:

System.Speech.Recognition का कहना है कि यह "विंडोज डेस्कटॉप स्पीच टेक्नोलॉजी" के लिए है, क्या इसका मतलब यह है कि इसका उपयोग सर्वर OS पर नहीं किया जा सकता है या इसका उपयोग उच्च स्तर के अनुप्रयोगों के लिए नहीं किया जा सकता है?

UCMA 2.0 स्पीच SDK ( http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx ) का कहना है कि इसके लिए Microsoft Office कम्युनिकेशंस सर्वर 2007 R2 की आवश्यकता होती है। हालाँकि, मुझे सम्मेलनों और बैठकों में कहा गया है कि अगर मुझे उपस्थिति और वर्कफ़्लो जैसी OCS सुविधाओं की आवश्यकता नहीं है तो मैं OCS के बिना UCMA 2.0 स्पीच API का उपयोग कर सकता हूं। क्या ये सच है?

यदि मैं एक सर्वर एप्लिकेशन के लिए एक साधारण मान्यता ऐप बना रहा हूं (जैसे कि मैं स्वचालित रूप से वॉयस मेल ट्रांसफर करना चाहता था) और मुझे ओसीएस की विशेषताओं की आवश्यकता नहीं है, तो दो एपीआई के बीच अंतर क्या हैं?

जवाबों:


102

संक्षिप्त उत्तर यह है कि Microsoft.Speech.Recognition SAPI के सर्वर संस्करण का उपयोग करता है, जबकि System.Speech.Recognition SAPI के डेस्कटॉप संस्करण का उपयोग करता है।

एपीआई ज्यादातर समान हैं, लेकिन अंतर्निहित इंजन अलग हैं। आमतौर पर, सर्वर इंजन को कमांड और नियंत्रण अनुप्रयोगों के लिए टेलीफोन-गुणवत्ता ऑडियो स्वीकार करने के लिए डिज़ाइन किया गया है; डेस्कटॉप इंजन को कमांड और नियंत्रण और श्रुतलेख अनुप्रयोगों दोनों के लिए उच्च-गुणवत्ता वाले ऑडियो को स्वीकार करने के लिए डिज़ाइन किया गया है।

आप किसी सर्वर OS पर System.Speech.Recognition का उपयोग कर सकते हैं, लेकिन इसे लगभग Microsoft.Speech.Recognition के पैमाने पर डिज़ाइन नहीं किया गया है।

अंतर यह है कि सर्वर इंजन को प्रशिक्षण की आवश्यकता नहीं होगी, और निम्न-गुणवत्ता वाले ऑडियो के साथ काम करेगा, लेकिन डेस्कटॉप इंजन की तुलना में कम मान्यता गुणवत्ता होगी।


52

मुझे एरिक का जवाब वास्तव में मददगार लगा, मैं बस कुछ और विवरण जोड़ना चाहता था जो मुझे मिला।

System.Speech.Recognition का उपयोग डेस्कटॉप पहचानकर्ताओं को प्रोग्राम करने के लिए किया जा सकता है। SAPI और डेस्कटॉप पहचानकर्ताओं ने उत्पादों में भेज दिया है:

  • Windows XP: SAPI v5.1 और कोई पहचानकर्ता नहीं है
  • विंडोज एक्सपी टैबलेट संस्करण: एसएपीआई v5.1 और रिकॉगनाइजर v6.1
  • विंडोज विस्टा: SAPI v5.3 और रिकॉगनाइजर v8.0
  • विंडोज 7: SAPI v5.4 और रिकॉगनाइजर v8.0?

सर्वर SAPI के साथ आते हैं, लेकिन कोई भी पहचानकर्ता नहीं है:

  • विंडोज सर्वर 2003: SAPI v5.1 और कोई पहचानकर्ता नहीं
  • Windows सर्वर 2008 और 2008 R2: SAPI v5.3? और कोई पहचानकर्ता नहीं है

डेस्कटॉप पहचानकर्ताओं ने कार्यालय जैसे उत्पादों में भी भेज दिया है।

  • Microsoft Office 2003: पहचानकर्ता v6.1

Microsoft.Speech.Recognition सर्वर पहचानकर्ताओं को प्रोग्राम करने के लिए इस्तेमाल किया जा सकता है। सर्वर पहचानकर्ताओं ने उत्पादों में भेज दिया है:

  • भाषण सर्वर (विभिन्न संस्करण)
  • कार्यालय संचार सर्वर (OCS) (विभिन्न संस्करण)
  • UCMA - जो OCS के लिए एक प्रबंधित API है (मेरा मानना ​​है कि) में एक पुनर्वितरण पहचानकर्ता शामिल था
  • Microsoft सर्वर भाषण प्लेटफ़ॉर्म - पहचानकर्ता v10.2

Microsoft सर्वर भाषण प्लेटफ़ॉर्म 10.2 संस्करण के लिए पूरा SDK http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4 पर उपलब्ध है । भाषण इंजन एक मुफ्त डाउनलोड है। संस्करण 11 अब http://www.microsoft.com/download/en/details.aspx?id=27226 पर उपलब्ध है ।

Microsoft भाषण प्लेटफ़ॉर्म SDK 11 जानकारी और डाउनलोड के लिए, देखें:

डेस्कटॉप पहचानकर्ताओं को inproc या साझा करने के लिए डिज़ाइन किया गया है। साझा पहचानकर्ता डेस्कटॉप पर उपयोगी होते हैं जहां किसी भी खुले अनुप्रयोगों को नियंत्रित करने के लिए वॉइस कमांड का उपयोग किया जाता है। सर्वर पहचानकर्ता केवल inproc चला सकते हैं। Inproc पहचानकर्ताओं का उपयोग तब किया जाता है जब एक एकल अनुप्रयोग पहचानकर्ता का उपयोग करता है या जब wav फ़ाइलों या ऑडियो धाराओं को पहचानने की आवश्यकता होती है (साझा पहचानकर्ता ऑडियो फ़ाइलों को संसाधित नहीं कर सकते हैं, बस इनपुट उपकरणों से ऑडियो)।

केवल डेस्कटॉप भाषण पहचानकर्ताओं में एक श्रुतलेख व्याकरण (मुक्त पाठ श्रुतलेख के लिए प्रयुक्त व्याकरण प्रदान किया गया सिस्टम) शामिल है। वर्ग System.Speech.Recognition.DictationGrammar में Microsoft.Speech नामस्थान का कोई पूरक नहीं है।

आप अपने इंस्टॉल किए गए रिकॉन्गाइजर्स को निर्धारित करने के लिए एपीआई का उपयोग कर सकते हैं

  • डेस्कटॉप: System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()
  • सर्वर: Microsoft.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()

मैंने पाया कि मैं यह भी देख सकता हूं कि रजिस्ट्री कुंजियों को देखकर क्या पहचानकर्ता स्थापित होते हैं:

  • डेस्कटॉप पहचानकर्ता: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech \ Recognizers \ टोकन
  • सर्वर पहचानकर्ता: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech Server \ v10.0 \ Recognizers और टोकन

--- अपडेट करें ---

जैसा कि Microsoft भाषण मान्यता में चर्चा की गई है - मुझे क्या संदर्भ जोड़ना है? , Microsoft.Speech भी Kinect पहचानकर्ता के लिए उपयोग किया जाने वाला API है। यह MSDN लेख http://msdn.microsoft.com/en-us/library/hh855387.aspx में प्रलेखित है


3
यदि मैं डॉक्स को सही ढंग से पढ़ता हूं, तो केवल डेस्कटॉप भाषण पहचानकर्ताओं में श्रुतलेख व्याकरण (मुक्त पाठ तानाशाही के लिए उपयोग किया जाने वाला व्याकरण) प्रदान किया जाता है। वर्ग System.Speech.Recognition.DictationGrammar में Microsoft.Speech नामस्थान का कोई पूरक नहीं है।
माइकल लेवी

MSDN API के अनुसार C # में एक DictationGrammar और एक WildcardGrammar है (और मैं इसका उपयोग करता हूं)। लेकिन मैं यह नहीं जानता कि इसे एक्सएमएल (हैकिंग पार्सर?) के माध्यम से कैसे सक्रिय किया जा सकता है: यह भी देखें: stackoverflow.com/questions/12101120/…
जीन-फिलिप एनसेसे

मैंने microsoft.com/en-us/download/details.aspx?id=27224 से डाउनलोड की गई इटालियन भाषा स्थापित की है, लेकिन System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers केवल वाक् पहचान के लिए सक्रिय भाषा के रूप में दिखाता है। मुझे कुछ याद आया?
POW

7

यहां स्पीच लाइब्रेरी (एमएस सर्वर स्पीच प्लेटफॉर्म) के लिए लिंक दिया गया है:

Microsoft सर्वर भाषण प्लेटफ़ॉर्म 10.1 जारी (SR और TTS 26 भाषाओं में)


2
10.2 को हाल ही में जारी किया गया था। microsoft.com/downloads/en/…
माइकल लेवी

जानकारी के लिए धन्यवाद। मैं देखता हूं कि अब एक व्याकरण सत्यापनकर्ता भी शामिल है। मैं अपने सिर को तोड़ने की कोशिश कर रहा था जो मैं बना रहा हूं। मुझे भविष्य की रिलीज़ के बारे में समाचारों के लिए कहां देखना चाहिए?
स्विच वाणिज्य

"मुझे भविष्य में रिलीज़ होने वाली खबरों के लिए कहाँ देखना चाहिए?" बहुत अच्छा सवाल है !!! microsoft.com/speech/developers.aspx पुराना है। Blogs.msdn.com/b/speak और blogs.msdn.com/b/speech जैसे भाषण ब्लॉग में हमेशा नवीनतम अपडेट नहीं होते हैं। आप getspeech.net या gotuc.net जैसी संबंधित साइटों की कोशिश कर सकते हैं । लेकिन जैसा कि आप देख सकते हैं, मुझे या तो तारीख करने के लिए एक महान स्रोत नहीं मिला है।
माइकल लेवी

1
लेखन के समय सबसे हाल का संस्करण 11 है - microsoft.com/en-us/download/details.aspx?id=27225
जॉर्ज बीरबिलिस

btw, चूँकि व्याकरण सत्यापनकर्ता के ऊपर उल्लेख किया गया था, देखें msdn.microsoft.com/en-us/library/hh378407%28v=office.14%29.aspx व्याकरण के उपकरणों की एक सूची के लिए
जॉर्ज बीर्बिलिस

4

लगता है कि Microsoft ने एक लेख लिखा है जो Microsoft भाषण प्लेटफ़ॉर्म और विंडोज SAPI - https://msdn.microsoft.com/en-us/library/jj127858.aspx के बीच अंतर के बारे में बातें स्पष्ट करता है । Microsoft.Speech से System.Speech ( http://github.com/birbilis/Hotspotizer देखें ) के लिए Kinect से स्पीच रिकग्निशन कोड को परिवर्तित करते समय मैंने खुद को पाया था कि पूर्व में टैग-प्रारूप = शब्दार्थ / 1.0 के साथ SGRS व्याकरण का समर्थन किया गया था शाब्दिक, जबकि उत्तरार्द्ध नहीं है और आपको x = आउट "x" को बदलकर शब्दार्थ / 1.0 में बदलना है; टैग पर


3
btw, आपको मेरा स्पीचलिब कोड उपयोगी ( SpeechLib.codeplex.com ) मिल सकता है। आप System.Speech संदर्भ को वहां से हटा सकते हैं और इसके बजाय Microsoft.Speech का उपयोग कर सकते हैं और कोड में Microsoft.Speech का उपयोग करने के लिए उपयुक्त सशर्त संकलन प्रतीक (सूत्रों को देखें) सेट करते हैं (ज्यादातर उपयोग करने वाले खंडों को प्रभावित करता है, बाकी कोड समान है)
जॉर्ज बिरबिलिस

1
उपरोक्त टिप्पणी में उल्लिखित स्पीचलिब github.com/zoomicon/SpeechLib पर चला गया है (क्योंकि कोडप्लेक्स को अब आर्काइव मोड में फ्रीज किया गया है)
जॉर्ज बिरबिलिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.