0

我正在尝试通过 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”。我怎样才能“循环”通过我的规则,以便让单词以随机顺序发音?谢谢你。

4

1 回答 1

0

Perhaps I am misunderstanding but isn't this what you need?

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

Having said that I can't imagine this working very well with such long inputs. You might need to confirm each input...

于 2019-06-26T06:48:23.270 回答