Właśnie zacząłem wypróbowywać możliwości Windows Speech to Text w C# .Net. Obecnie mam działające podstawy (IE - Powiedz coś, a to zapewni dane wyjściowe na podstawie tego, co mówisz). Jednak staram się dowiedzieć, jak właściwie odbierać dane wejściowe od użytkownika jako zmienną.Pobierz dane użytkownika z Mowy?
Co mam na myśli to, że na przykład. Jeśli użytkownik mówi:
"Call me John"
Następnie chcę, aby móc wziąć słowo John
jako zmienna, a następnie zapisać jako powiedzmy, że nazwę użytkownika osoby.
Mój obecny SpeechRecognized
wydarzenie następująco:
void zeusSpeechRecognised(object sender, SpeechRecognizedEventArgs e)
{
writeConsolas(e.Result.Text, username);
switch (e.Result.Grammar.RuleName)
{
case "settingsRules":
switch (e.Result.Text)
{
case "test":
writeConsolas("What do you want me to test?", me);
break;
case "change username":
writeConsolas("What do you want to be called?", me);
break;
case "exit":
writeConsolas("Do you wish me to exit?", me);
break;
}
break;
}
}
UWAGA:writeConsolas
tylko uwielbiony linia Dołącz do RichTextBox
.
chciałbym dodać kolejny case
który wykonuje następujące czynności:
case "call me"
username = e.Result.GetWordFollowingCallMe() //Obv not a method, but thats the general idea.
break;
Oczywiście, nie ma takiej metody, ale to jest ogólna idea, że chcę do wdrożenia. Czy istnieje sposób, aby wyszukać określone wyrażenia (IE: Call me
) i wziąć następujące słowo?
EDIT: Należy zauważyć, że e.Result.Text zwraca tylko słowa, które może dopasować do tekstu w słowniku.
+1 za interesującą intelektualnie programowania pytanie, ale tylko moje 2 centy: jeżeli komputer pyta mnie o moje imię, moje pierwszym odruchem byłoby odpowiedzieć _just moim Nazwa _, głośno i wyraźnie. Nie "Zadzwoń do mnie Ishmael" lub "Mam na imię Błoto" lub coś w tym stylu ... co możesz chcieć sprawdzić, jeśli zejdziesz tą drogą "Zadzwoń do mnie" :) –
@MiklosAubert Dzięki za radę. Jednak planuję go wdrożyć, aby użytkownik zaczął od powiedzenia "Call me blah", zamiast być monitowany – JosephGarrone