Sprachassistenten erstellen

Guten Tag. Vor kurzem war ich begeistert davon, einen Sprachassistenten zu erstellen. Konnte eine Milliarde Probleme. Trotzdem habe ich meine Fragen entschieden.

Laden Sie zunächst Visual Studio herunter.

Jetzt müssen Sie 3 Microsoft-Pakete herunterladen

  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

Wählen Sie beim Herunterladen die x86-Plattform (es ist einfacher und nicht fehlerhaft).

Jetzt. Wählen Sie bei der Auswahl einer Sprache eine Sprache mit der Endung TELE aus (wenn Sie diese Microsoft Speech Platform - Server-Laufzeitsprachen herunterladen). Dies ist ein Muss.



Am Ende der Installation des Sprachpakets passiert nichts, es gibt keine Schaltflächen zum Beenden oder Beenden, seien Sie nicht alarmiert, alles ist in Ordnung.

Gehen Sie nun durch Visual Studio und erstellen Sie ein neues Projekt (Windows Forms App).



Setze 1 Etikett und ändere seinen Namen nicht:



Öffnen Sie "Solution Explorer" oder "Project Browser", klicken Sie im Menü auf die Schaltfläche "Project" oder "Project" und 2 fügen Sie einen Link hinzu "oder" Add reference ".

Hier haben Sie dieses Fenster:



Klicken Sie auf "Browser" oder "Durchsuchen" und wechseln Sie in den Ordner "C: \ Programme (x86) \ Microsoft SDKs \ Speech \ v11.0 \ Assembly". Es wird 1 DLL-Bibliothek angezeigt. Wählen Sie diese aus:



Wieder fügen wir den Link hinzu, aber schon Standard. Wir suchen nach "System.Speech" (siehe unten für warum). Wir setzen eine Morgendämmerung ein und klicken auf die Schaltfläche "OK".



Wir gehen zum Code über! Erstellen Sie zunächst ein Ereignis für das angezeigte Formular. Klicken Sie dazu mit einem Reißverschluss auf die Registerkarte „Eigenschaften“:



Der Titel muss nicht neu geschrieben werden! Nur 2 Klicks auf das Eingabefeld.

Ganz oben nehmen wir die folgenden Klassen in das Projekt auf:

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; 

Jetzt gleich darunter

 public Form1() { InitializeComponent(); } 

Wir schreiben

 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   . //  .  ,   .    // } 

Wir haben eine Variable und eine Klasse erstellt, die mit Sprache umgehen.

In unserem "gezeigten" Ereignis stopfen wir den nächsten Code.

 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); 

Jetzt fangen wir die Worte. Dann erstellen Sie Funktionen in der Funktion

 static void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 

oder Sie können einen Funktionshandler erstellen.

Jetzt machen wir die Stimme unseres Assistenten. Wir bringen eine neue Funktion zum Sprechen. Diese Funktion fängt den Text ab und spricht ihn aus.

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

Herzlichen Glückwunsch, Ihr Mini-Sprachassistent ist fertig. Wir stellen es fertig und es wird nicht schlimmer sein als "Ok Google".

Schreiben Sie bei allen Fragen an die Telegramme @Cp_Troia - ich werde helfen, so gut ich kann.

Meine Quelle . Bevor Sie etwas sagen, sagen Sie "Sudo" und dann einen Befehl, zum Beispiel "Google Chrome öffnen" oder "Hallo". Dort gibt es viele Befehle. Sie können sogar ein Notizbuch und einen Taschenrechner öffnen, YouTube öffnen usw.

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


All Articles