XSwitch asr.lua

Lua 复制代码
session:answer()
session:setVariable("tts_engine", "ali")
session:setVariable("tts_voice", "default")
session:setVariable("playback_delimiter", "!")

local json = freeswitch.JSON()
local prompt = "您好,请说"

while session:ready() do
	session:execute("play_and_detect_speech", "say:" .. "." ..  prompt .. "'" .. "!tone_stream://%(100,1000,800)" .. " detect:ali default") -- asr模块是ali, 语法是default
	local res = session:getVariable("detect_speech_result")
	session:consoleLog("ERR", res)
	local j = json:decode(res)
	local text = j and j.text or ""
	session:consoleLog("ERR", text)
	if text ~= "" then
		if string.find(text, "再见")  or string.find(text, "拜拜") then break end
		prompt = "您说的是  "  .. text .. "..........谢谢!我们再玩一次......您好,请说"
	else
		prompt = "抱歉,我听不清您说什么..........您好请说"
	end
end

session:streamFile("say:'谢谢您的使用,再见!'")

session:setVariable("playback_delimiter", "!")

say:tts!tone_stream://%(100,1000,800)

这样播放tts,再播放一个beep

如果asr识别到了,就把识别到的内容再播放一遍

如果是"再见"或者"拜拜",那么say good bye,最后挂机

如果识别不到,那么 "抱歉,我听不清您说什么"

逻辑比较简单

相关推荐
龙哥·三年风水2 小时前
openresty(nginx)+lua+kafka实现日志搜集系统
kafka·lua·openresty
天堂的恶魔9462 天前
软件测试 —— Postman(全局变量和环境变量,请求前置脚本,关联)
测试工具·lua·postman
xiao-xiang7 天前
nginx-lua模块安装
运维·nginx·lua
利来利往7 天前
lua下标是可以从0开始
lua
qq_356408668 天前
redis监控会不会统计lua里面执行的命令次数
redis·junit·lua
請叫我菜鳥8 天前
什么是 OpenResty
nginx·lua·openresty
我是單身你是狗8 天前
token
开发语言·lua
maply9 天前
如何编写和运行 Lua 脚本优化复杂的 Redis 操作
开发语言·数据库·redis·消息队列·lua
看星星的派大星9 天前
nvim , neovim , Lua 语法, text object
开发语言·lua
网络安全工程师老王9 天前
Lua项目下SSRF利用Redis文件覆盖lua回显RCE
web安全·网络安全·信息安全·junit·lua