السلام عليكم
أريد معلومات عن
voice recognition in C#
وكيف يمكن لي أن أقوم بعمل برنامج بحيث أنه عندما أقوم بتكلم كلمة
the position
أن يقوم بتنفيذ الامر
أرجو أن تعطوني أية معلومات عن هذا الموضوع
شكرا لكم
السلام عليكم
أريد معلومات عن
voice recognition in C#
وكيف يمكن لي أن أقوم بعمل برنامج بحيث أنه عندما أقوم بتكلم كلمة
the position
أن يقوم بتنفيذ الامر
أرجو أن تعطوني أية معلومات عن هذا الموضوع
شكرا لكم
1+1=10
هدفي هو الصوت نفسه وانا بالفعل استخدم
الMicrosoft Speech SDK
سؤالي كالتالي:
قمت بكتابة كود يقوم بتنفيذ الاوامر عن طريق تكلم كلمة
Position
وواجهتني مشكله في ذلك حيث أنني لا أستطيع تحديد هذه الكلمة فقط بل عندما أتكلم أي كلمه يقوم بتنفيذ الامر , أعتقد أن لهذا علاقه بتخزين بشئ يدعى "Grammer"
لا أدري بالضبط
أرجو المساعده
1+1=10
ممكن تكتب \ ي لنا كود اضافة الأمر وكود المقارنه الموجود في حدث استقبال الأمر لكى تتضح لنا المشكله أكثر من ذلك.
objRecoContext = new SpeechLib.SpSharedRecoContext();
//objRecoContext.Hypothesis += new _ISpeechRecoContextEvents_HypothesisEventHandler(Hypo_Event);
objRecoContext.Recognition += new
_ISpeechRecoContextEvents_RecognitionEventHandler(Reco_Event);
//Creating an instance of the grammer object.
grammar = objRecoContext.CreateGrammar(0);
menuRule = grammar.Rules.Add("MenuCommands",SpeechRuleAttributes.SRATopLevel|SpeechRuleAttributes.SRADynamic,1);
object PropValue = "";
menuRule.InitialState.AddWordTransition(null,"Position"," ",SpeechGrammarWordType.SGLexical,"Position", 1, ref PropValue, 1.0F );
grammar.Rules.Commit();
grammar.CmdSetRuleState("MenuCommands", SpeechRuleState.SGDSActive);
هاد كود تاع انشاء الجرمر وبنحط بيه الاوامر شيلي منو الكومنت بس ازا بدك
private void Reco_Event(int StreamNumber, object StreamPosition,SpeechRecognitionType RecognitionType,ISpeechRecoResult Result)
{
{
axDirectSS1.Speak("my position is "+lat+"alt and "+lon+"long");
هاد كود تاع الريكوجنشنأرجو الرد
لو سمحت أريد عندما أقوم بلفظ كلمة Position يقوم بتنفيذ الامر
1+1=10
أنا لم أستخدم الـ Recognition بهذه الطريقه سوى مره أو اثنان.
ولكن , الكود المرفق غير كامل , ولو كان كاملا بهذا الشكل ... فانه غريب جدا لأني لا أرى به اى شروط لتنفيذ الكود , اى لا أرى به ( if ) أو حتى ( switch ) للتأكد من الأوامر الداخله.
فانه عندما يسمع أى كلمه يذهب الى الحدث Reco_Event وينفذ مابداخله دائما لأنه لايجد أى شروط محدده هناك.
جرب / ي تقارن الأمر الداخل في الحدث Reco_Event ... مثلا ::
if (e.PhraseInfo.Rule.Name == "Position")
MessageBox.Show("I heared Position");
else
MessageBox.Show("I can't get it");انا عموما استخدم الـ Agent ... واستخدامه أسهل من هيك :D .
هذا الموضوع مغلق.