Files
my-chat_-server/common/asr.hpp
2025-10-13 18:34:48 +08:00

25 lines
861 B
C++

#pragma once
#include "aip-cpp-sdk/speech.h"
#include "logger.hpp"
namespace bite_im{
class ASRClient {
public:
using ptr = std::shared_ptr<ASRClient>;
ASRClient(const std::string &app_id,
const std::string &api_key,
const std::string &secret_key):
_client(app_id, api_key, secret_key) {}
std::string recognize(const std::string &speech_data, std::string &err){
Json::Value result = _client.recognize(speech_data, "pcm", 16000, aip::null);
if (result["err_no"].asInt() != 0) {
LOG_ERROR("语音识别失败:{}", result["err_msg"].asString());
err = result["err_msg"].asString();
return std::string();
}
return result["result"][0].asString();
}
private:
aip::Speech _client;
};
}