Kinect: Sprachsteuerung einer Anwendung (SpeechRecognition)

Veröffentlicht von Sascha am

Mittels des Kinect-SDK lassen sich relativ schnell Resultate erzielen. Hier zeige ich euch eine simple Sprachsteuerung mit der Kinect.

Voraussetzungen: Installiertes Kinect SDK (http://www.microsoft.com/en-us/kinectforwindows/)

Hier ist der Code für die Erkennung von „starten, stoppen, menü, zurück“.

private RecognizerInfo GetKinectRecognizer()
{
  foreach (RecognizerInfo recognizer in SpeechRecognitionEngine.InstalledRecognizers())
  {
      string value;
      recognizer.AdditionalInfo.TryGetValue("Kinect", out value);
      if ("True".Equals(value, StringComparison.OrdinalIgnoreCase) && "en-US".Equals(recognizer.Culture.Name, StringComparison.OrdinalIgnoreCase))
      {
          return recognizer;
      }
  }
  return null;
}

// Kinect initialisieren und verbinden
KinectSensor kinect = KinectSensor.KinectSensors[0];
kinect.Start();

SpeechRecognitionEngine speechEngine;
RecognizerInfo recognizerInfo = GetKinectRecognizer();
speechEngine = new SpeechRecognitionEngine(recognizerInfo.Id);     

// Kommandos festlegen
var commands = new Choices();
commands.Add("starten");
commands.Add("stoppen");
commands.Add("menü");
commands.Add("zurück");
// etc...

var grammarBuilder = new GrammarBuilder { Culture = recognizerInfo.Culture };
grammarBuilder.Append(commands);
var grammar = new Grammar(grammarBuilder);
speechEngine.LoadGrammar(grammar);

// Event-Handler für erkannte Sprachkommandos:
speechEngine.SpeechRecognized += (sender, args) => { 
  // Erkanntes Commando: e.Result.Text
};

// Ein paar Konfigurationen:
kinect.AudioSource.BeamAngleMode = BeamAngleMode.Automatic;
speechEngine.SetInputToAudioStream(kinect.AudioSource.Start(), new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
speechEngine.RecognizeAsync(RecognizeMode.Multiple);

 


Kommentar verfassen

%d Bloggern gefällt das:

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter.

Schließen