首页 > 解决方案 > 没有这样的语法文件可用 Speech-Language res_speech_unimrcp.c:433 uni_recog_load_grammar:

问题描述

我有一个简单的vxml,加载到星号上的voximal应用程序中,提示播放find,但我遇到了这个错误;uni_recog_load_grammar:没有这样的语法文件可用:我该怎么办,两个文件都在同一个目录中,这不是文件丢失的问题,而是无法加载语法的事实,请帮忙。

<?xml version="1.0" encoding="UTF-8"?> 
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.w3.org/2001/vxml 
http://www.w3.org/TR/voicexml20/vxml.xsd">
<form id="form1">
    <block>
        <prompt>Hi Johnson,  </prompt>
    </block>

    <field name="option">
        <prompt> Choose a type of drink ?</prompt>

        <grammar src="options.xml" type="application/srgs+xml"/>
        <help> Please say any of the options .</help>
    </field>

    <block>
        <prompt>Great, you chose the option <value expr="option" /> 
</prompt>      
        <goto next="#form1" /> 
    </block>


</form>
</vxml>

这是 option.xml 文件

<?xml version="1.0"?>
<grammar  root="drink" xmlns="http://www.w3.org/2001/06/grammar" 
xml:lang="en-US" version="1.0" mode="voice" >
<rule id="drink">
    <one-of>
        <item>coke</item>
        <item>pepsi</item>
        <item>coca cola</item>
    </one-of>
</rule>
</grammar>

我的拨号方案是这样的

exten => 888,1, Answer
exten => 888,n,Wait(3)
exten => 888,n,Voximal(file:///home/johnson3yo/Desktop/chat_bot.vxml)
exten => 888,n,Hangup

当呼叫分机 888 时,警告日志出现在所附图像中在此处输入图像描述

显然,语法文件是在 src=/tmp/grammar_1_0.grxml 中创建的,但无法加载。我知道这是 voximal 的配置问题,但可能是“没有可用的此类语法文件”的原因

标签: asteriskvxmlunimrcpvoximal

解决方案


很抱歉这么晚才回复,我们错过了您的信息...

Voximal 使用特定的 uniMRCP,对于 VoiceXML 支持,uniMRCP 模块需要一些扩展。该项目在我们的 GitHub 中可用。

另一个选项是禁用将属性发送到 uniMRCP 客户端模块的选项。在 /etc/asterisk/voximal.conf 的 [recognize] 部分中,您可以设置 sendproperties=0 通过这种方式,您将禁用将 VoiceXML 属性发送到 ASR 引擎。检查完整集成,因为某些 ASR 引擎可以请求它。


推荐阅读