2012-06-11 4 views
0

Я пытаюсь объединить как результат семантического, так и запроса диктовки в семантическом значении документа SRGS. Например, я бы сказал, «Поиск картофеля», и выход будет что-то вроде out = «Поиск картофеля», где картофель - это случайное слово, произнесенное пользователем. Я старался использовать специальное правило для мусора, но он, похоже, не работает. До сих пор это то, что у меня есть:Объединить диктовку и семантику свободной формы в грамматике srgs

<rule id="rule1" scope="public"> 
<one-of> 
    <item xml:lang="en-us">Search</item> 
    <item>Cherche</item> 
</one-of> 
<tag>out.command="Search"</tag> 
<tag>out.param1=<ruleref special="GARBAGE"/></tag> 
<tag>out=out.command+out.param1;</tag> 

Я также видел, что пост: Free-form text with custom SRGS based Grammer где кто-то предложил диктовку тег. Но проблема в том, что она, похоже, не совместима с SRGS.

Если это поможет, я использовать тег-формат = «семантика/1,0»

ответ

1

Если посмотреть на W3C бумаге «Extending SRGS to Support More Powerful and Expressive Grammars» вы можете увидеть, что стандарты группа видит необходимость справедливого сценария вы упоминая (см. пример 1.a), но в настоящее время он не поддерживается в стандарте SRGS. Ваш вопрос заключается в том, как это сделать с SRGS, но есть, вероятно, способы достижения тех же результатов вне SRGS, которые зависят от используемой платформы ASR.

+0

Спасибо! Это очень ценится. Я буду копать в этих расширениях, приведенных в этой статье. – Charles

4

Я также искал высоко и низко для этого и, наконец, нашел ответ. Я использовал следующий код и загрузил его в System.Speech.Recognition.Grammar, и он отлично работает.

<ruleref uri="grammar:dictation" type="application/srgs+xml"/> 

Просто добавьте этот ruleref как элемент, где вы хотите получить продиктованный текст. Вы можете вытащить продиктованный текст в семантический/тег, используя это непосредственно после ruleref:

<tag>out.SpokenText=rules.latest();</tag> 
+0

Это потрясающе! Он работает отлично. – Rilcon42

+1

Я пробовал это и при вызове 'speechRecognizer.recognizeAsync()' Я получаю «Неизвестную ошибку», используя [this] (https://gist.github.com/pke/090714c8cd6f3ccf556b) грамматику xml. – philk

+0

это не сработало, вы, должно быть, оставили какую-то информацию. –