FireRedASR-AED / cpp /bin /sdk_lib.hpp
Axera's picture
FireRedASR-AED AX650N NPU deployment with FSMN-VAD
45340ff
Raw
History Blame Contribute Delete
1.73 kB
#pragma once
#include <string>
#include <vector>
// FireRedASR-AED AX650N 端到端 SDK(板端 VAD + fbank + ASR)
class FireredSdk {
public:
FireredSdk() = default;
~FireredSdk();
// 初始化:encoder/decoder/vad axmodel、cmvn、词典、pe、max_dur、max_steps
bool Init(const char* encoder, const char* decoder, const char* vad,
const char* cmvn, const char* dict, const char* pe_path,
int max_dur_s, int max_steps,
const char* fsmn_vad = nullptr, const char* fsmn_cmvn = nullptr,
int vad_min_speech_ms = 1000);
// 识别 wav,输出文本;可选返回各阶段耗时(ms)
std::string Transcribe(const char* wav_path,
double* vad_ms = nullptr,
double* enc_ms = nullptr,
double* dec_ms = nullptr);
private:
struct Impl;
Impl* impl_ = nullptr;
};
// 默认 VAD 最小语音段(ms)
// 简易 C API(供其他语言/框架调用)
#ifdef __cplusplus
extern "C" {
#endif
typedef void* FireredHandle;
FireredHandle firered_create(const char* encoder, const char* decoder, const char* vad,
const char* cmvn, const char* dict, const char* pe_path,
int max_dur_s, int max_steps,
const char* fsmn_vad = nullptr,
const char* fsmn_cmvn = nullptr,
int vad_min_speech_ms = 1000);
int firered_transcribe(FireredHandle h, const char* wav, char* out, int out_size,
double* vad_ms, double* enc_ms, double* dec_ms);
void firered_destroy(FireredHandle h);
#ifdef __cplusplus
}
#endif