![]() |
[ درس ] تحويل الاوامر الصوتية الي نصوص باستخدام مكتبة SpeechLib السلام عليكم ورحمة الله هذا الموضوع يتحدث عن تحويل الصوت الي نصوص من خلال الاعتماد علي بعض المكتبات مثل مكتبة SpeechLib و التي يمكن من خلالها تحويل الصوت الي نص مكتوب في البرنامج و يمكن تطوير هذه الطريقة الي اوامر نصية تحول الي كلمات .وهذه الكلمات تكون معرفة في البرنامج علي انها مهام يمكن تنفيذها تلقائيا . كما في نظام speech recognition في ويندوز سفن حيث يمكننا تنفيذ العديد من المهام المعروفة بالنسبة للويندوز من خلال اوامر صوتية ك open computer , close it ,try,start وغيرها ... ولا بالنسبه للمشروع فانه يعمل علي ويندوز xp بدون اي مشاكل بالاعتماد منظومة speech sdk و التي تتضمن العديد من المكتبات لعمليات تحويل الصوت لاي نص او العكس و مهام اخري كثيرة لا اعرفها . في المشروع الان سنقوم باضافة الاداه SpeechLib.dll وفي قسم التعريفات Imports SpeechLib و سنعتمد في هذه الطريقة علي الدالة التالية : Public Sub SPReco_Create() Dim rule As ISpeechGrammarRule Dim propvalue As Object = "" Dim wrd As Char objrec = New SpSharedRecoContext() grammer = objrec.CreateGrammar(0) rule = grammer.Rules.Add("MenuCommand", SpeechRuleAttributes.SRADynamic Or SpeechRuleAttributes.SRATopLevel, 0) rule.InitialState.AddWordTransition(Nothing, "new", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "old", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "help", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "open", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "close", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "start", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "try", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "do", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "sleep", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "shut down", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) rule.InitialState.AddWordTransition(Nothing, "yes", " ", SpeechGrammarWordType.SGLexical, wrd, 0, propvalue, 1.0) grammer.Rules.Commit() grammer.CmdSetRuleState("MenuCommand", SpeechRuleState.SGDSActive) End Sub تقوم هذه الداله بالتحقق من قواعد نطق الكلمات المضمنة بداخلها فاذا كانت الكلمة المنطوقة متطابقة مع التعبيرات المخزنة في ذاكرة المكتبة فانة سيتم اظهار الكلمة في اداة textbox و في حالة عدم حدوث تطابق فان المكتبة ستتجاهل الكلمة الي ان تنطق بالطريقة الصحيحه .. -في قسم التعاريف للمتغيرات و اثوابت : Public WithEvents objrec As SpSharedRecoContext Public grammer As ISpeechRecoGrammar Dim rule As ISpeechGrammarRule Dim propvalue As Object = "" الدالة الاتية لمتابعة عملية تسجيل الصوت في ذاكرة البرنامج : Public Sub Reco_Event(ByVal streamnmber As Integer, ByVal streamposition As Object, ByVal Recognitiontype As SpeechRecognitionType, ByVal Result As ISpeechRecoResult) Handles objrec.Recognition Dim str As String str = Result.PhraseInfo.GetText(0, -1, True) TextBox1.Text = str.ToString End Sub و من خلالها ايضا يتم عرض الكلمة في اداة نص .. -في حدث ال load : SPReco_Create() بحيث نهيئ الدالة للعمل . داله لتحديد حالة المترجم : Public Sub stoprec() grammer.CmdSetRuleState("MenuCommand", SpeechRuleState.SGDSInactive) End Sub رابط تحميل المشروع : http://download956.mediafire.com/7o2...545/Speech.rar |
| الساعة الآن 02:35 PM |
Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By
Almuhajir