تقييم الموضوع :
  • 1 أصوات - بمعدل 1
  • 1
  • 2
  • 3
  • 4
  • 5
تحويل الاوامر الصوتية الي نصوص باستخدام مكتبة SpeechLib
#1
كاتب الموضوع : Friendassist

السلام عليكم ورحمة الله
هذا الموضوع يتحدث عن تحويل الصوت الي نصوص من خلال الاعتماد علي بعض المكتبات مثل مكتبة 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

السلام عليكم ورحمة الله ....
تم الشكر بواسطة: marwan raid


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - مقدمة RaggiTech 2 1,218 22-01-18, 12:49 AM
آخر رد: amna jamal
  التعامل مع الملفات الصوتية ........دردشة برمجية RaggiTech 8 4,754 28-11-17, 11:23 PM
آخر رد: ahmed4240
  اصنع محرر أكواد خاص بك باستخدام الأداة RichTextBox السكر المغرور 10 2,275 23-11-17, 06:00 PM
آخر رد: mr crazy
  تحويل Interface الي دوال API silverlight 0 146 25-09-17, 11:13 AM
آخر رد: silverlight
  كيفية قراءة ملف باستخدام IntPtr الخاص بالملف silverlight 3 690 24-12-16, 03:13 AM
آخر رد: silverlight
  [VB.NET] ( يبدو انني مزعج ) ممن عندهم خبره في vb.net هل يمكنك تحويل النص التالي إلى كود برمجي thevirus 2 618 21-11-16, 06:35 AM
آخر رد: أبو عمر
Star [مقال] كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service Programmation 8 3,525 26-08-16, 10:21 AM
آخر رد: tryold
  شرح انشاء برنامج تحويل صيغ الملفات الصوتيه CLARO 9 940 02-06-16, 11:13 AM
آخر رد: CLARO
  [درس فيديو] تشغيل اوامر Run من البرنامج & مثال غلق الويندوز بعد وقت محدد باستخدام VB.net أحمد النجار 1 985 23-12-15, 04:26 AM
آخر رد: الماجيك مسعد
  [VB.NET] عمل برنامج تحويل الفيديو video convert alking-0999 0 828 09-07-15, 12:50 PM
آخر رد: alking-0999

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم