Das neue Windows Phone 8 ist um ein wesentliches Feature erweitert worden: Spracherkennung.
Ich habe mir das neue SDK 8 für Windows Phone bezüglich Speech Recognition angesehen und mir die Frage gestellt, wie schwer und aufwendig ist das eigentlich dafür eine App zu bauen. Antwort: einfach!
Nehmen wir ein konkretes Beispiel: Wir haben eine Liste von Ländern deren Auswahl vom Benutzer jetzt nicht per Hand sondern per Stimme gemacht werden soll.
Was ist zu beachten – wie geht man vor:
Grundlegend gibt es einen Recognizer dem man Grammatik “anlernt”. Die Grammatik besteht nun in den Wörtern die der Recognizer kennt – in unserem Fall die Länderliste. Danach legt man fest um welche Sprache es sich handelt. Default ist die eingestellte Ländersprache. Man passt nun das UI des Recognizers an (bsp.: mit Hilfetext, Beispielen, usw.) und definiert noch einige Properties, was der Recognizer alles bei der Erkennung tun soll (bsp.: ob der Eingabetext wiederholt ausgegeben werden soll usw.).
Man ruft den Recognizer auf und bekommt als Return-Value in unserem Fall das erkannte Land als string zurück – that’s it :-)
Hier mein keiner Sample-Code (natürlich in VB :-)):
'Grammatikliste für's zuhören
Dim grammList As New List(Of String)
grammList.Add("Austria")
grammList.Add("Germany")
grammList.Add("Spain")
grammList.Add("Italy")
grammList.Add("Portugal")
grammList.Add("Norway")
'Liste der Wörter in den Recogizer aufnehmen
myspeechrecognizer.Recognizer.Grammars.AddGrammarFromList("Länderliste", grammList)
'UI-Dialog anpassen
myspeechrecognizer.Settings.ListenText = "Welches Land wollen Sie auswählen?"
myspeechrecognizer.Settings.ExampleText = "Beispiel bitte in Englisch: 'Austria'"
myspeechrecognizer.Settings.ReadoutEnabled = True
'Aufruf
Dim result As Windows.Phone.Speech.Recognition.SpeechRecognitionUIResult = Await myspeechrecognizer.RecognizeWithUIAsync()
'Rückgabe der Sprachauswahl
TextBox1.Text = ("gewähltes Land: " + result.RecognitionResult.Text)
Weiterführende Infos dazu findet Ihr auf:
http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj206958%28v=vs.105%29.aspx
Viel Spaß!