2011-03-30 15 views
6

मैं भाषण पहचानने में सक्षम होने के लिए System.Speech लाइब्रेरी का उपयोग करता हूं लेकिन यह आमतौर पर बहुत अलग पहचानता है।भाषण पहचान में सुधार, सी #

SpeechRecognizer_rec = new SpeechRecognizer(); 
DictationGrammar grammar = new DictationGrammar(); 

grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized); 
_rec.LoadGrammar(grammar); 

मैं कैसे recgonition सुधार कर सकते हैं? क्या यह व्याकरण वर्ग के साथ संबंध है?

उत्तर

5

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

+0

क्या आप प्रोग्राम पहचान इंजन को प्रोग्रामेटिक रूप से प्रशिक्षित कर सकते हैं? – NuWin

+0

ऐसा लगता है कि आप एसएपीआई का उपयोग कर सकते हैं। – NuWin

7

आपको उच्च विश्वास आउटपुट प्राप्त करने के लिए भाषण मान्यता इंजन द्वारा उपयोग किए जाने वाले मॉडल (मूल रूप से भाषण इनपुट से भाषण इनपुट से मैपिंग) को सीमित करना होगा। आपका मॉडल छोटा है, आपके परिणाम सामान्य रूप से बेहतर होंगे, क्योंकि पहचानकर्ता को चुनने के लिए कम संभावना है यानी दो समान ध्वनि शब्दों के बीच गलत शब्द।

यह सरल उदाहरण अर्थात केवल तीन एक से संख्या को पहचान करने में सक्षम होगा:

SpeechRecognizer rec = new SpeechRecognizer(); 
Choices c = new Choices(); 

c.Add("one"); 
c.Add("two"); 
c.Add("three"); 

var gb = new GrammarBuilder(c); 
var g = new Grammar(gb); 
rec.LoadGrammar(g); 
+0

लेकिन मुझे यह पहचानने की आवश्यकता है कि उपयोगकर्ता ने क्या कहा है। – Kaan

+0

@ कान: आमतौर पर कॉल सेंटर भाषण मान्यता के लिए मॉडल विशिष्ट विकल्पों तक सीमित है, यानी "मैं अपना केक चाहता हूं" या "और इसे भी खाएं", आपको विभिन्न संयोजनों को अनुमति देने के लिए एक कस्टम व्याकरण बनाना होगा। यदि आप मानक मॉडल के साथ रहना चाहते हैं तो कोई सटीकता नहीं बढ़ सकती है - जब तक कि आप एक विशिष्ट स्पीकर (या उच्चारण) के आधार पर मॉडल को फिर से प्रशिक्षित नहीं करते हैं, जो आमतौर पर व्यावहारिक या यहां तक ​​कि करने योग्य नहीं होता है। – BrokenGlass

2

डिक्टेशन ग्रामर किसी भी तरह के अजीब परिणाम उत्पन्न करता है, मैंने स्पीच रिकॉग्निशनइंजिन के विभिन्न गुणों को आजमाया, शायद ही सफल। आज़माएं: SpeechRecognitionEngine.BabbleTimeOut लेकिन त्रुटियों को रोकने के लिए पहले उपयोग के बारे में पढ़ें।

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