Chcę opracować aplikację Windows na Windows 10 przy użyciu nowego silnika Cortana.Czy interfejsy API Cortany są dostępne dla aplikacji komputerowych?
Niestety, o ile wiem, wydaje się, że jest dostępny tylko w projekcie Windows Phone 8.1 (na przykład, nie znalazłem sposobu na dostęp do przestrzeni nazw Windows.Media.SpeechRecognition z innego typu Visual Studio projekt).
Również nie byłem w stanie znaleźć dobrej dokumentacji API, tylko niektóre bardzo proste przykłady.
Edit:
podstawie Peter Torr odpowiedź Mam trochę kodu. Byłem w stanie rozpoznać słowo, ale silnik wydaje się walczyć, gdy próbował rozpoznać proste słowa, takie jak "Cześć", a Cortana rozpoznała to z powodzeniem.
Czy robię coś nie tak?
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();
}
}
Witam, bardzo dziękuję za odpowiedź. Próbowałem utworzyć projekt biblioteki klas, ale na liście dostępnych odniesień nie ma zestawu Windows.Media (lub podobnego). Jedyne pliki DLL o tej nazwie istnieją w ścieżce takiej jak C: \ Windows \ WinSxS \ amd64_microsoft-windows-runtime-windows-media_31bf3856ad364e35_10.0.10240.16384_none_4f69ddc0692a98bf i są to biblioteki COM. Szczerze mówiąc, czuję się nieco zdezorientowany.Spodziewałbym się, że biblioteka dll będzie częścią .Net Framework (lub Windows Sdk) i będzie biblioteką C#. – simoneL
Myślę, że przegapiłeś tę część odpowiedzi: "Typy w przestrzeni nazw Windows.Media.SpeechRecognition są również niedostępne dla klasycznych aplikacji". Myślę, że musisz spojrzeć na System.Speech.Recognition. –
Tak, Brendan, masz rację, źle odczytałem. Następnie powinienem pójść spać wcześniej :) Przy okazji napisałem kod na podstawie odpowiedzi Petera i umieściłem go w oryginalnym pytaniu. Osiągnąłem pewne rozpoznawanie mowy, ale wciąż nie jest wystarczająco dobre. – simoneL