You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "asr_service.hpp"
#include "zlinuxcomponents/aiui_ws/aiui.h"
using namespace iflytop; using namespace core; using namespace std;
static AiuiService *thisClass = nullptr;
void aiui_message_cb(const char *data, int len) { if (thisClass) { thisClass->call_aiui_message_cb(data, len); } } void aiui_error_cb(int code, const char *str) { if (thisClass) { thisClass->call_aiui_error_cb(code, str); } } AiuiService::AiuiService() { thisClass = this; } int AiuiService::aiuiInit(const char *appid, const char *key, const char *param) { thisClass = this; return aiui_init(appid, key, param, aiui_message_cb, aiui_error_cb); } int AiuiService::aiuiWrite(const char *audio, int len) { return aiui_write(audio, len); } int AiuiService::aiuiFinished() { return aiui_finished(); } void AiuiService::aiuiDestroy() { aiui_destroy(); thisClass = nullptr; }
void AiuiService::call_aiui_message_cb(const char *data, int len) { try { json j = json::parse(data); onAsrResult(j); } catch (const std::exception &e) { logger->error("AiuiService::call_aiui_message_cb error: {}", e.what()); } } void AiuiService::call_aiui_error_cb(int code, const char *str) { logger->error("AiuiService::call_aiui_error_cb error: {} => {}", code, str); onError(code, str); }
|