Рейтинг:
4
Thomas Daniels
Если XML - файл следует за Спецификация ГСП [^], вы можете:
Grammar gr = new Grammar(@"path\to\grammar.xml");
jmallory0001
Я просмотрел ссылку, которую вы дали, но не вижу полного примера. Соответствует ли СРГ следующее:
&ЛТ;грамматика XML-файле:Ланг="ан-Нас" атрибутов xmlns="http://www.w3.org/2001/06/grammar" корень="топлевел" версия="1.0"&ГТ;
<rule id="topLevel">
&ЛТ;ruleref Ури="#команду, дайте ей"&ГТ;&ЛТ;/ruleref&ГТ;
</правило>
<rule id="playCommands">
<ruleref uri="#playAction"></ruleref>
&ЛТ;товар и GT; &ЛТ;/п&ГТ;
<ruleref uri="#fileWords"></ruleref>
</правило>
<rule id="playAction">
<один из>
&ЛТ;товар&ГТ; играть &ЛТ;/п&ГТ;
&ЛТ;товар&ГТ; начать &ЛТ;/п&ГТ;
&ЛТ;товар&ГТ; начать &ЛТ;/п&ГТ;
</один из>
</правило>
<rule id="fileWords">
<один из>
&ЛТ;товар&ГТ; песня &ЛТ;/п&ГТ;
&ЛТ;товар&ГТ; мелодия &ЛТ;/п&ГТ;
&ЛТ;товар&ГТ; трек &ЛТ;/п&ГТ;
&ЛТ;товар&ГТ; деталь &ЛТ;/п&ГТ;
</один из>
</правило>
</грамматика>
Thomas Daniels
Да, я считаю, что это действительно SRGS.
(Кроме того, я отредактировал ваш комментарий, чтобы исправить XML-теги; они не появились, потому что считались HTML-тегами)
jmallory0001
Большое вам спасибо за вашу помощь. Кажется, сейчас он загружается, но я все еще не получаю событие SpeechRecognized. Он попадает в гипотетическое событие, но не дальше. Есть ли у вас какие-либо указания, чтобы решить эту проблему?
Thomas Daniels
Вы загрузили грамматику в распознаватель речи, используя метод LoadGrammar?
jmallory0001
Да. Мой код находится ниже:
RecognitionEngine = новый SpeechRecognitionEngine();
RecognitionEngine.SetInputToDefaultAudioDevice();
RecognitionEngine.SpeechRecognized += SpeechRecognized;
RecognitionEngine.SpeechDetected += SpeechDetected;
RecognitionEngine.SpeechHypothesized += SpeechHypothesized;
SrgsDocument srgsdoc = новый SrgsDocument("..\\Grammars\\RootGrammar.xml");
Grammar grammar = новая грамматика(srgsdoc);
RecognitionEngine.LoadGrammar(грамматика);
RecognitionEngine.RecognizeAsync(RecognizeMode.Множественный);
Thomas Daniels
Я проверю его завтра, так как мне нужно идти сегодня.
Sergey Alexandrovich Kryukov
5ед.
—СА
jmallory0001
Я все понял. Это был xml-файл. Вы не можете иметь более одного правила команды на грамматику. Грамматика, которую я тестировал, пришла прямо из microsoft, но не работала так, как описано. Я действительно получал распознавание речи, чтобы стрелять, если я сказал: "воспроизвести песню, приостановить песню, остановить песню". Если вы разбиваете каждую команду на ее собственную грамматику и загружаете их все, то она работает так, как задумано.
Thomas Daniels
Я вижу. Рад слышать что ты все понял :)
Member 10527817
Привет всем, я застрял с той же проблемой. @jmallory can u plz объясните мне, что означает последняя строка.. Если разбить каждую команду на ее собственную грамматику ?
Member 13561651
ребята, я работаю над той же проблемой, но c# (asp.net)т. е. асинхронная функция веб-приложения создает исключение, что асинхронные операции не разрешены на веб-странице, тогда что мне теперь делать для веб-базового приложения????
любой плохо предложение
Thomas Daniels
Обратите внимание на эту систему.Речь работает на стороне сервера, и это довольно бесполезно для веб-приложения, потому что вы хотите иметь распознавание речи на стороне клиента. Выполните поиск в Google по запросу "Web Speech API", и вы найдете, как это сделать с помощью JavaScript.