“有没有办法在.grxml文件中循环规则?”

时间:2019-06-21 11:19:03

标签: speech-recognition genesys nuance grxml

我正在尝试通过Composer(Genesys Framework)构建一个GVP应用程序,该应用程序需要通过语音识别来接受输入。输入内容包含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”。我如何才能“遍历”我的规则以使单词以随机顺序发音?谢谢。

1 个答案:

答案 0 :(得分:0)

也许我误会了,但这不是您所需要的吗?

<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>

说了这么长时间的输入,我无法想象它能很好地工作。您可能需要确认每个输入...