Browse Source

修复aiui tts存储的bug

master
zhaohe 2 years ago
parent
commit
fdd3771aa6
  1. 2
      dep/zlinuxcomponents
  2. 30
      src/service/main_control_service.cpp
  3. 88
      webapp/debug/index.html

2
dep/zlinuxcomponents

@ -1 +1 @@
Subproject commit 8085579161497e78502e7b50ffe5639ea0bb9183
Subproject commit 3e936505866b63292729a41c56cd493435dea0ed

30
src/service/main_control_service.cpp

@ -88,9 +88,7 @@ void MainControlService::initializeVoiceProcess() {
});
m_aiuiService->onMessage.connect([&](const json& rxjson) {
lock_guard<recursive_mutex> lock(m_voiceprocessmutex);
Trace trace(logger, "m_aiuiService->onMessage");
json msg = rxjson;
json msg = rxjson;
m_workQueue->enQueue([this, msg]() {
try {
processasrResult(msg);
@ -106,8 +104,13 @@ void MainControlService::initializeVoiceProcess() {
void MainControlService::triggerProcessConversationSession() {
m_smartSoundboxPlayer->playConversationTTS(m_conversationSession->getAsrTTSLocalURL(), nullptr);
json nlpResult = m_conversationSession->getNlpResult();
if (nlpResult["data"]["intent"]["shouldEndSession"] == "true") {
logger->info("endSession");
if (nlpResult["data"]["intent"].find("shouldEndSession") == nlpResult["data"]["intent"].end()) {
logger->info("conversationSession normal end");
if (m_endsessionTimer->isRunning()) m_endsessionTimer->stop();
endSession();
return;
} else if (nlpResult["data"]["intent"]["shouldEndSession"] == "true") {
logger->info("conversationSession normal end");
if (m_endsessionTimer->isRunning()) m_endsessionTimer->stop();
endSession();
return;
@ -135,7 +138,7 @@ void MainControlService::processasrResult_tts(json& rxjson) {
}
void MainControlService::processasrResult(json rxjson) {
Trace trace(logger, "processasrResult");
// Trace trace(logger, "processasrResult");
lock_guard<recursive_mutex> lock(m_voiceprocessmutex);
string action = rxjson["action"];
@ -179,7 +182,7 @@ void MainControlService::constructSession() {
* 5. ,10s内无人应答session
*/
lock_guard<recursive_mutex> lock(m_voiceprocessmutex);
Trace trace(logger, "constructSession");
// Trace trace(logger, "constructSession");
/**
* @brief
* TODO:
@ -192,6 +195,7 @@ void MainControlService::constructSession() {
m_smartSoundboxPlayer->triggerWakeup();
if (m_conversationSession) {
if (m_endsessionTimer->isRunning()) m_endsessionTimer->stop();
logger->info("trigger double wakeup,end session");
endSession();
}
@ -213,19 +217,15 @@ void MainControlService::constructSession() {
void MainControlService::endSession() {
lock_guard<recursive_mutex> lock(m_voiceprocessmutex);
Trace trace(logger, "endSession");
logger->info("{}", __LINE__);
// Trace trace(logger, "endSession");
if (m_conversationSession) {
logger->info("endsession {}", m_conversationSession->getSessionId());
m_conversationSession = nullptr;
logger->info("{}", __LINE__);
int ret = m_aiuiService->aiuiFinished();
logger->info("{} {}", __LINE__, ret);
m_aiuiService->aiuiFinished();
ThisThread().sleepForMs(100);
m_aiuiService->aiuiDestroy();
logger->info("{}", __LINE__);
}
logger->info("{}", __LINE__);
m_audioLoggingService->endwakeup();
logger->info("{}", __LINE__);
}
void MainControlService::initialize() {

88
webapp/debug/index.html

@ -1,88 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script src="../js/zcmd.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>日志配置</title>
<style>
</style>
<script>
</script>
</head>
<body>
<!--
选择框:main,service
选择框:等级(debug,info,warning,error)
设置日志等级:按钮
-->
<div>
<select id="logger">
<option value="main">main</option>
<option value="service">service</option>
</select>
<select id="level">
<option value=0>trace</option>
<option value=1>debug</option>
<option value=2>info</option>
<option value=3>warning</option>
<option value=4>error</option>
<option value=5>critical</option>
</select>
<button id="set">设置日志等级</button>
</div>
<script>
$(function () {
var zcmd = new ZCommand();
zcmd.onsendraw = function (data/*json*/) {
console.log("zcmd send:" + JSON.stringify(data, null, 0));
}
zcmd.onreceipt = function (tx, rx) {
console.log("zcmd receipt:" + JSON.stringify(rx, null, 0));
}
ZWSURL = "ws://127.0.0.1:19000";
//连接后端
zcmd.start_auto_connect(ZWSURL, () => {
console.log("zcmd connected");
//请求日志名称
zcmd.send_message({
"command": "loggerGetAllLoggers",
"need_receipt": true,
}, 4000).then((data) => {
console.log(data);
var html = "";
for (var i = 0; i < data.loggers.length; i++) {
html += "<option value='" + data.loggers[i] + "'>" + data.loggers[i] + "</option>";
}
$("#logger").html(html);
});
$("#set").click(function () {
zcmd.send_message({
"command": "loggerSetLevel",
"need_receipt": true,
"loggerLevel": Number($("#level").val()),
"loggerName": $("#logger").val(),
}, 4000).then((data) => {
if (data.success) {
alert("设置成功");
} else {
alert("设置失败")
}
});
});
});
});
</script>
</body>
</html>
Loading…
Cancel
Save