Ich möchte eine Windows-Anwendung auf Windows 10 mit der neuen Cortana-Engine entwickeln.Sind Cortana-APIs für Desktop-Anwendungen verfügbar?
Leider, so weit ich weiß, scheint es nur für Windows Phone 8.1-Projekt verfügbar (zum Beispiel habe ich keine Möglichkeit gefunden, auf den Windows.Media.SpeechRecognition-Namespace von einem anderen Typ von Visual Studio zugreifen Projekt).
Auch konnte ich keine gute API-Dokumentation finden, nur einige sehr einfache Beispiele.
Edit:
Basierend auf Peter Torr Antwort habe ich schrieb einige Code. Ich konnte ein Wort erkennen, aber die Engine scheint zu kämpfen, als sie versuchte, einige einfache Wörter wie "Hallo" zu erkennen, während Cortana sie erfolgreich erkannte.
Mache ich etwas falsch?
public static class SpeechSynthetizerManager
{
private static readonly SpeechSynthesizer synth = new SpeechSynthesizer();
private static readonly SpeechRecognitionEngine speechRecognitionEngine = new SpeechRecognitionEngine();
public static event EventHandler<SpeechRecognizedEventArgs> SpeechRecognized
{
add { speechRecognitionEngine.SpeechRecognized += value; }
remove { speechRecognitionEngine.SpeechRecognized -= value; }
}
public static event EventHandler<RecognizeCompletedEventArgs> RecognizeCompleted
{
add { speechRecognitionEngine.RecognizeCompleted += value; }
remove { speechRecognitionEngine.RecognizeCompleted -= value; }
}
static SpeechSynthetizerManager()
{
synth.SelectVoiceByHints(VoiceGender.Female);
speechRecognitionEngine.LoadGrammar(new DictationGrammar());
speechRecognitionEngine.SetInputToDefaultAudioDevice();
}
public static void Speak(string message)
{
synth.Speak(message);
}
public static void Listen()
{
speechRecognitionEngine.RecognizeAsync();
}
}
Hallo, vielen Dank für Ihre Antwort. Ich habe versucht, ein Klassenbibliotheksprojekt zu erstellen, aber in der Liste der verfügbaren Referenzen gibt es keine Windows.Media (oder ähnliche) Assembly. Die einzigen DLLs mit diesem Namen existieren im Pfad wie C: \ Windows \ WinSxS \ amd64_microsoft-windows-runtime-windows-media_31bf3856ad364e35_10.0.10240.16384_none_4f69ddc0692a98bf und sie sind COM-DLLs. Ehrlich gesagt, fühle ich mich ein bisschen verwirrt.Ich hätte erwartet, dass die DLL Teil von .Net Framework (oder Windows Sdk) und eine C# -Bibliothek sein würde. – simoneL
Ich glaube, Sie haben diesen Teil der Antwort verpasst: "Die Typen im Windows.Media.SpeechRecognition-Namespace sind auch für Classic-Apps nicht verfügbar." Ich denke, Sie müssen sich System.Speech.Recognition ansehen. –
Ja Brendan, du hast recht, ich habe es falsch verstanden. Als nächstes sollte ich früher zu Bett gehen :) Übrigens habe ich einige Code basierend auf Peter Antwort geschrieben und es in die ursprüngliche Frage aufgenommen. Ich habe eine Spracherkennung erreicht, aber es ist immer noch nicht gut genug. – simoneL