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

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

逻辑比较简单

相关推荐
咸鱼永不翻身16 小时前
Lua脚本事件检查工具
unity·lua·工具
笑虾20 小时前
cocos2d-x lua 加载 Cocos Studio 导出的 csb
游戏引擎·lua·cocos2d
xingpanvip1 天前
星盘接口开发文档:日返比接口指南
开发语言·lua
xingpanvip2 天前
星盘接口开发文档:天象盘接口指南
android·开发语言·python·php·lua
tianyuanwo2 天前
Rust RPM Spec 中的动态宏定义:原理、原因与低版本兼容方案
rust·lua·spec
tianyuanwo2 天前
rpm spec文件为什么有时调用lua脚本语言而不是shell
lua·spec
liulilittle3 天前
递归复制搜索所有的lua文件到指定目录
java·开发语言·lua·cmd
上海合宙LuatOS3 天前
LuatOS 课程-011 讲:GNSS应用开发
网络·物联网·lua·luatos
LcGero4 天前
游戏引擎Luanti的前世今生与技术解析
游戏引擎·lua·游戏开发·我的世界·luanti
绿草在线5 天前
SpringBoot请求与响应全解析
spring boot·后端·lua