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

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

逻辑比较简单

相关推荐
我发在否1 天前
Lua > OpenResty HelloWorld
lua·openresty
测试界清流1 天前
postman接口功能测试
开发语言·lua
lanhuazui102 天前
lua中table键类型及lua中table的初始化有几种方式
lua
程序猿多布2 天前
Lua和C#比较
c#·lua
我发在否3 天前
Lua > Mac Mini M4安装openresty
macos·lua·openresty
Aiah.3 天前
大彩串口屏-烧录与调试
lua·大彩串口屏·ui显示
程序猿多布3 天前
Lua 面向对象编程
lua
qyvlik3 天前
MacOS 使用 luarocks+wrk+luajit
macos·lua·wrk
云梦谭3 天前
C/C++ 与 Lua 互相调用详解
lua
群联云防护小杜4 天前
服务器异常磁盘写排查手册 · 已删除文件句柄篇
运维·服务器·nginx·开源·lua