当前位置:网站首页>如何使用XSwitch内置的离线ASR及TTS
如何使用XSwitch内置的离线ASR及TTS
2022-07-21 05:17:00 【[email pro】
在如何在XSwitch中使用ASR及TTS中提到,XSwitch内置了很多ASR/TTS模块,但大多数的ASR/TTS服务都是云厂商提供的。使用这些服务不仅需要有相应的账号,而且大部分也需要付费才能使用。在开发测试时,有时用起来就不能随心所欲。
为方便大家开发与测试,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目录。
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参数语法为:
其中:model可以省略,如果省略,则使用能找到的第一个模型,如:
XCC中,不需要asr:前缀,用起来更高效。
在Lua中使用:
FreeSWITCH兼容用法(Lua):
其它:
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,只要是不重复的字符串就行,如果字符串发生重复,结果是未知的。
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_49543223/article/details/125511667
边栏推荐
- 开源 Cocos Creator 3.x 游戏框架 oops-framework
- [oops framework] supporting game configuration data generation + data object code generator plug-in
- 微信团队分享:微信后台在海量并发请求下是如何做到不崩溃的
- 如何在 Unity Editor 中录制游戏界面
- Teach you how to realize an efficient im long connection adaptive heartbeat keeping mechanism
- P1111 修复公路(并查集)
- VoLTE高清通话是voip嘛
- 一个好用的Unity Touch管理器
- VMware虚拟机网络模式之NAT模式
- Redis哨兵机制及配置过程
猜你喜欢
Probability theory - law of large numbers and central limit theorem
STL preliminary understanding
leetcode哈希
Pratique et réflexion sur l'architecture d'un système intégré de messages de GI pour 100 000 TPS
unity 锁定相机绕锁定目标的弧形运动
CocosCreator 3.x 环境搭建
Im development technology sharing: talking about the best practice of offline messages and historical messages in IM system
Dx11---纹理与光照(火焰动画,纹理的旋转,贴不同的纹理)
Atcoder beginer contest 218 problem solution
Unity 使用 bvh 驱动骨骼动作
随机推荐
视频直播技术分享:一文读懂主流视频直播系统的推拉流架构、传输协议等
阿里IM技术分享(七):闲鱼IM的在线、离线聊天数据同步机制优化实践
ACM training report of the second week
Probability theory - maximum likelihood estimation
Sixth week ACM training report
OKCC呼叫中心呼出与呼入有什么不同
MySQL installation
Directx11--窗口初始化(win32)
11th week ACM training report
Upgrade every day
Dx11--用dx11绘制棱台,并用键盘和鼠标进行旋转缩放操作
力扣记录:动态规划1基础题目——509 斐波那契数,70 爬楼梯,746 使用最小花费爬楼梯,62 不同路径,63 不同路径II,343 整数拆分,96 不同的二叉搜索树
Force deduction record: dynamic programming 5 Subsequence Problems (2) editing distance - 392 judging subsequences, 115 different subsequences, 583 deleting operations of two strings, 72 editing dista
力扣记录:动态规划4股票问题——121,122,123,188 ,309,714买卖股票的最佳时机(I,II,III,IV,含冷冻期,含手续费)
图集分离RGB和A通道之后的图片合并RGBA通道后导出原图
D3D函数说明
Playable Director (TimeLine) 3D游戏的开场动画制作
Unity iTween的匀速运动
2022acm summer training weekly report (I)
108. Convert an ordered array into a binary search tree