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

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

逻辑比较简单

相关推荐
IMPYLH1 天前
Lua 的 require 函数
java·开发语言·笔记·后端·junit·lua
avi91111 天前
Lua高级语法-第二篇
lua·游戏开发·编程语言·语法糖
雨中飘荡的记忆1 天前
秒杀系统设计与实现
java·redis·lua
emo了小猫2 天前
Redis 执行 Lua 脚本过程中报错,会发生什么
redis·junit·lua
软件测试雪儿3 天前
高频Postman软件测试面试题
测试工具·lua·postman
12程序猿4 天前
postman调用文件(.xlsm---带宏的excel文件)下载接口成功下载excel文件,浏览器访问下载文件打不开
excel·lua·postman
霜绛4 天前
Unity:lua热更新(三)——Lua语法(续)
unity·游戏引擎·lua
百***35945 天前
【Java EE】Spring请求如何传递参数详解
spring·java-ee·lua
IMPYLH6 天前
Lua 的 pairs 函数
开发语言·笔记·后端·junit·单元测试·lua
这人很懒没留下什么9 天前
SpringBoot2.7.4整合Oauth2
开发语言·lua