XSwitch内置的离线ASR及TTS的使用方法

更新时间:2022-07-03
     在如何在XSwitch中使用ASR及TTS中提到,XSwitch内置了很多ASR/TTS模块,但大多数的ASR/TTS服务都是云厂商提供的。使用这些服务不仅需要有相应的账号,而且大部分也需要付费才能使用。在开发测试时,有时用起来就不能随心所欲。

各类通信方案定制咨询:028-83110277 

       为方便大家开发与测试,XSwitch也提供了离线的ASR与TTS。

tts_commandline:

       该模块是XSwitch内置的模块,XSwitch提供了配套的espeak-ng,可以支持中文。
       在命令行上加载模块:
命令行上加载模块
当然,也可以在XUI界面上加载,殊途同归。
到【呼叫】⇨【路由】中,新建一条路由:
       •  名称:tts,也可以随意
       •  被叫字冠:tts,也可以是其它号码,如1234
       •  呼叫源:default
       •  目的地类型:高级功能/系统
新出现的“文本”框中填入以下内容:
填写文本内容
 
其中,zh表示是中文。
然后就可以呼叫tts进行测试了。
       注意,espeak-ng放出来的声音不好听,但对于开发测试来说,有总比没有好。我们后续会给出一个更“好听”的使用方法,敬请期待。

mod_ai:

       XSwitch在mod_ai中提供了一个asr服务,可离线使用,效果还不错。使用开源的Vosk引擎。Vosk引擎比较小,但是模型文件比较大,因而需要单独下载。
      首先,进入宿主机上的storage目录,创建vosk目录,如下:
创建vosk目录
到以下地址下载模型文件,解压后放到刚刚创建的vosk目录。
https://alphacephei.com/vosk/models
目前测试了以下几个模型:
       •  vosk-model-cn-0.1 8k
       •  vosk-model-small-cn-0.3 16k
       •  vosk-model-small-en-us-0.15 16k
       •  vosk-model-en-us-daanzu-20200328 16k
       然后,到XUI上【AI】⇨【AI】⇨【default】中,配置Asr-Models,启用相应的模型配置。配置完成后【重载】模块。

简单使用:

到【呼叫】⇨【路由】中,新建一条路由:
       •  名称:asr,也可以随意
       •  被叫字冠:asr,也可以是其它号码,如1234
       •  呼叫源:default
       •  目的地类型:高级功能/系统
新出现的“文本”框中填入以下内容:
填写文本内容
       打开【高级】⇨【扩展功能】⇨【终端】就可以看到日志。上面使用了err级别的日志是为了红色能显示得更醒目。
       上述命令中,也可以通过asr:ai:vosk-model-cn-0.1指定使用的模型。

使用方法:

其中,asr engine参数语法为:
asr engine参数语法
其中:model可以省略,如果省略,则使用能找到的第一个模型,如:
语音模型
XCC中,不需要asr:前缀,用起来更高效。
XCC,不用asr:前缀

在Lua中使用:

FreeSWITCH兼容用法(Lua):
FreeSWITCH兼容用法
 

其它:

mod_ai模块实现了:
       •  AI API:类似mod_httapi,但是用JSON代替XML
       •  ai ASR Interface:是一个XCC的ASR,仅用于xcc_detect_speech,不适用于在核心中调用。
       •  asr ASR Interface:是一个XCC ASR的包装器,通过使用asr:your-xcc-asr-interface-name可以将XCC ASR包装成系统原生接口使用。
XCC ASR主要是取消了核心状态机,通过以下参数发送事件,事件驱动,而无须核心中的忙等待。
        •  asr-result-fire-json-event:发送JSON事件,可以使用JSON Event Channel订阅ai_asr主题获取事件。
        •  asr-result-fire-switch-event:发送原生FreeSWITCH Detected Speech事件,可以在ESL中获取。
        •  asr-result-fire-session-event:发送Sesion事件,可以在Lua onInputCallback中回调。
XCC ASR由于取消了核心状态机,实现比较简单。
        asr ASR Interface实现了一个包装器,通过JSON Event Channel与XCC ASR Interface通信。主题格式为:ai_asr.$channel_uuid,因此,channel-uuid参数是必须的。channel-uuid不一定是真正的Channel UUID,只要是不重复的字符串就行,如果字符串发生重复,结果是未知的。

下一篇

SBC是什么-企业为什么需要SB以及应用场景

通信百科

SBC是什么-企业为什么需要SB以及应用场景

sbc一种NAT穿透的方式。SBC可确保VoIP 安全,又可提供媒体代理服务器的套件。SBC架构于IMS网络之上,可作为IMS网络的SIP和RTSP的 Proxy Server,所有的SIP与RTSP讯息都会透过SBC来处理,SBC更具备N... ...

相关内容

对讲平台(如何选择最适合你的一款)

对讲平台(如何选择最适合你的一款)

作为一种高效的沟通工具,对讲平台在现代化的办公环境中越来越受欢迎。不仅可以提高工......

通信系统集成

2023-11-30

楼宇可视对讲主机(如何选择最适合的品牌和型号)

楼宇可视对讲主机(如何选择最适合的品牌和型号)

楼宇对讲主机是现代化公寓、写字楼、商场等建筑中不可或缺的安全设备之一。它可以通过......

通信系统集成

2023-11-29

手持对讲机的使用方法(如何选择适合自己的款式和品牌)

手持对讲机的使用方法(如何选择适合自己的款式和品牌)

手持对讲机是一种便捷的通讯工具,它可以在没有信号的地方进行通讯,比如山区、森林、......

通信系统集成

2023-11-28