Я только что начал проверять возможности Windows Speech to Text в C# .Net. В настоящее время я работаю над основами (IE - Скажи что-нибудь, и он будет обеспечивать вывод на основе того, что вы говорите). Тем не менее, я изо всех сил пытаюсь понять, как реально получить пользовательский ввод в качестве переменной.Получить пользовательский ввод от речи?
Что я имею в виду под этим, это, например. Если пользователь говорит:
"Call me John"
Тогда я хочу, чтобы иметь возможность взять слово John
как переменные, а затем сохранить, что, как говорят, имя пользователя людей.
Мой текущий SpeechRecognized
событие следующим образом:
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;
}
}
NB:writeConsolas
просто прославил Append линии к RichTextBox
.
Я хотел бы добавить еще один case
, который делает следующее:
case "call me"
username = e.Result.GetWordFollowingCallMe() //Obv not a method, but thats the general idea.
break;
Очевидно, что нет такого метода, но это общая идея, что я хотел бы реализовать. Есть ли способ поиска конкретных фраз (IE: Call me
) и взять следующее слово?
EDIT: Следует отметить, что e.Result.Text возвращает только слова, которые могут соответствовать Text в словаре.
+1 для интеллектуально интересного вопроса программирования, но только мои 2 цента: если компьютер спросит меня о моем имени, моим первым инстинктом будет отвечать только мое имя, громкое и ясное. Не «Назовите меня Ishmael» или «Мое имя - это грязь» или что-то в этом роде ... которое вы, возможно, захотите проверить, если вы спуститесь по этому пути «Позвоните мне» :) –
@MiklosAubert Спасибо за совет. Тем не менее, я планирую реализовать его так, чтобы пользователь начинал произносить «Call me blah» вместо того, чтобы его запрашивали – JosephGarrone