"Есть ли способ зациклить правила в файле.grxml?"

Я пытаюсь создать приложение GVP через Composer (Genesys Framework), которое должно принимать входные данные через распознавание речи. Входные данные состоят из буквенно-цифрового кода из 12 или более букв / цифр, где говорящий должен использовать вместо букв названия городов Италии.

Я уже пытался написать код для моей грамматики, используя конструктор грамматики в Genesys Composer, но таким образом он принимает только ОДНО слово. Итак, я начал писать код.grxml с нуля (у меня нет практически никаких знаний об этом языке). Я придумал следующее:

<rule id="A" scope="public">
<item repeat="0-5">
    <one-of>
        <item>Ancona</item>
        <item>A</item>
    </one-of>
    </item>
</rule>

<rule id="B" scope="public">
<item repeat="0-5">
    <one-of>
        <item>Bologna</item>
        <item>Bari</item>
        <item>Bi</item>
        <item>B</item>
    </one-of>
    </item>
</rule>

<rule id="C" scope="public">
<item repeat="0-5">
    <one-of>
        <item>Como</item>
        <item>Ci</item>
        <item>C</item>
    </one-of>
    </item>
</rule> 

<rule id="D" scope="public">
<item repeat="0-5">
    <one-of>
        <item>Domodossola</item>
        <item>Di</item>
        <item>D</item>
    </one-of>
    </item>
</rule>

<!-- Reference by URI to a local rule -->
<rule id="codice" scope="public">
    <item repeat="0-5"> 
        <ruleref uri="#A" />
        <ruleref uri="#B" />
        <ruleref uri="#C" />
        <ruleref uri="#D" />
    </item>     
</rule> 

Грамматика работает, но только если я произношу слова по порядку. Например, если я произношу "ANCONA, COMO", я получаю правильный результат, и если я печатаю свою входную переменную, она содержит "ANCONA COMO". Вместо этого, если я произнесу "COMO, ANCONA", моя переменная содержит только слово "COMO". Как я могу "зациклить" свои правила, чтобы слова произносились в случайном порядке? Спасибо.

2 ответа

Возможно, я неправильно понимаю, но не это ли вам нужно?

<rule id="A" scope="public">
    <item repeat="12">
    <one-of>
        <item>Ancona</item>
        <item>A</item>
        <item>Bologna</item>
        <item>Bari</item>
        <item>Bi</item>
        <item>B</item>
        <item>Como</item>
        <item>Ci</item>
        <item>C</item>
    </one-of>
    </item>
</rule>

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

Я думаю, вам стоит попробовать что-то подобное, но у вас сложный случай. Вы можете найти спецификацию здесь

      <?xml version="1.0"?>
<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="it-IT" version="1.0"
         root="codice">

    <rule id="A" scope="public">
      <item>
        <tag>out+="A"</tag>
        <one-of>
            <item>Ancona</item>
            <item>A</item>
        </one-of>
      </item>
    </rule>

    <rule id="B" scope="public">
      <item>
        <tag>out+="B"</tag>
        <one-of>
            <item>Bologna</item>
            <item>Bari</item>
            <item>Bi</item>
            <item>B</item>
        </one-of>
      </item>
    </rule>

    <rule id="C" scope="public">
      <item>
        <tag>out+="C"</tag>
        <one-of>
            <item>Como</item>
            <item>Ci</item>
            <item>C</item>
        </one-of>
      </item>
    </rule> 

    <rule id="D" scope="public">
      <item>
        <tag>out+="D"</tag>
        <one-of>
            <item>Domodossola</item>
            <item>Di</item>
            <item>D</item>
        </one-of>
      </item>
    </rule>
        
    <rule id="code" scope="public">
        <one-of>
          <item> <ruleref uri="#A" /></item>
          <item> <ruleref uri="#B" /></item>
          <item> <ruleref uri="#C" /></item>
          <item> <ruleref uri="#D" /></item>  
        </one-of>     
    </rule>     
        
    <!-- Reference by URI to a local rule -->
    <rule id="codice" scope="public">
        <item repeat="12-"> 
            <ruleref uri="#code" />
        </item>     
    </rule> 

</grammar>
Другие вопросы по тегам