إنشاء مساعد صوت

يوم جيد. في الآونة الأخيرة ، أصبحت متحمسًا لإنشاء مساعد صوتي. واجه مليار المشاكل. ولكن ما زلت قررت أسئلتي.

للبدء ، قم بتنزيل Visual Studio .

تحتاج الآن إلى تنزيل 3 حزم Microsoft

  1. https://www.microsoft.com/en-us/download/details.aspx؟id=3971
  2. https://www.microsoft.com/en-us/download/details.aspx؟id=24003
  3. https://www.microsoft.com/en-us/download/details.aspx؟id=24974

عندما تقوم بالتنزيل ، اختر نظام x86 الأساسي (الأمر أسهل معه وليس عربات التي تجرها الدواب).

الآن. عند اختيار لغة ، اختر أي لغة تنتهي بـ TELE (عند تنزيل Microsoft Speech Platform - لغات وقت تشغيل الخادم) ، هذا أمر لا بد منه.



في نهاية تثبيت حزمة اللغة ، لن يحدث شيء ، لن يكون هناك أزرار "إنهاء" أو "إنهاء" ، لا تخف ، كل شيء على ما يرام.

انتقل الآن إلى Visual Studio ، وقم بإنشاء مشروع جديد (تطبيق Windows Forms)



قم بتعيين تسمية واحدة ولا تغير اسمها:



افتح "مستكشف الحلول" أو "مستعرض المشروع" ، كما يمكنك النقر فوق الزر "مشروع" أو "مشروع" في القائمة وإضافة رابط "2" أو "إضافة مرجع".

هنا لديك هذه النافذة:



انقر على "browser" أو "Browse" وانتقل إلى المجلد "C: \ Program Files (x86) \ Microsoft SDKs \ Speech \ v11.0 \ Assembly" وستكون هناك مكتبة DLL واحدة ، حددها:



مرة أخرى نضيف الرابط ، ولكن بالفعل قياسي. نحن نبحث عن "System.Speech" (انظر أدناه لماذا). نضع داو وانقر على زر "موافق".



نمرر إلى الكود! أولاً ، قم بإنشاء حدث للنموذج "المعروض". يمكنك القيام بذلك عن طريق النقر فوق علامة التبويب "خصائص" مع سحاب:



العنوان لا يحتاج إلى إعادة كتابته! فقط 2 نقرات على حقل الإدخال.

في الجزء العلوي ، ندرج الفئات التالية في المشروع:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Speech.Recognition; using System.IO; using System.Speech.Synthesis; using System.Diagnostics; using System.Threading; 

الآن الحق تحت

 public Form1() { InitializeComponent(); } 

نكتب

 static Label l; static void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { if (e.Result.Confidence > 0.7) { l.Text = e.Result.Text; if(e.Result.Text == "  "){ //  .     ( //      speak,   !  ,  // speak("  ."); } }//  0,7   . //  .  ,   .    // } 

لقد أنشأنا متغيرًا وفصلًا يتعامل مع الكلام.

في حدثنا "المبين" ، نوفر الجزء التالي من الشفرة.

 l = label1; System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ru-ru"); // ru-ru   ,   en-us  ..       //   new System.Globalization.CultureInfo("ru-ru")  // System.Globalization.CultureInfo.CurrentCulture SpeechRecognitionEngine sre = new SpeechRecognitionEngine(ci); sre.SetInputToDefaultAudioDevice(); sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized); Choices numbers = new Choices(); numbers.Add(new string[] { "", "", "", "", "", "  " }); //   // GrammarBuilder gb = new GrammarBuilder(); gb.Culture = ci; gb.Append(numbers); Grammar g = new Grammar(gb); sre.LoadGrammar(g); sre.RecognizeAsync(RecognizeMode.Multiple); 

الآن نحن التقاط الكلمات. ثم تقوم بإنشاء وظائف في الوظيفة

 static void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 

أو يمكنك إنشاء معالج وظيفة.

الآن نجعل صوت صوت مساعدنا. نجعل وظيفة جديدة الكلام. هذه الوظيفة ستلتقط النص وتصوت عليه.

 private void speak(string text) { SpeechSynthesizer speaker = new SpeechSynthesizer(); speaker.Rate = 1; speaker.Volume = 100; speaker.Speak(text); } 

تهانينا ، مساعد الصوت الصغير الخاص بك يتم. نحن بصدد الانتهاء منه ولن يكون أسوأ من "Ok Google".

بالنسبة لجميع الأسئلة ، اكتب إلى telegramsCp_Troia - سأقدم المساعدة قدر الإمكان.

مصدر بلدي . قبل أن تقول شيئًا ما ، قل "Sudo" ، ثم أمرًا ، على سبيل المثال ، "افتح Google Chrome" أو "مرحبًا" ، هناك العديد من الأوامر هناك ، حتى يمكنك فتح المفكرة والحاسبة ، وفتح YouTube ، إلخ.

Source: https://habr.com/ru/post/ar451718/


All Articles