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,最后挂机

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

逻辑比较简单

相关推荐
LcGero6 小时前
Lua 的灵魂:Table 如何撑起整个游戏系统?
游戏·lua
lifewange1 天前
Postman如何实现接口自动化
自动化·lua·postman
上海合宙LuatOS2 天前
LuatOS扩展库API——【 excloud】AirCloud云平台控制
物联网·lua·luatos·合宙aircloud平台
he___H2 天前
Nginx+lua+openresty
nginx·lua·openresty
最好有梦想~3 天前
嵌入式Linux Lua使用ZeroBrane远程调试
linux·嵌入式硬件·lua
chushiyunen4 天前
lua脚本笔记、redis使用lua解锁
redis·笔记·lua
深蓝轨迹4 天前
Redis+Lua实现秒杀优化
数据库·redis·lua
qhs15735 天前
解决 LuaJIT 报错:unknown luaJIT command or jit.* modules not installed
lua
luanma1509805 天前
Laravel 8.X重磅特性全解析
前端·javascript·vue.js·php·lua
luanma1509805 天前
Laravel 7.X核心特性深度解析
android·开发语言·php·lua·laravel