AIVoice 接口
流程和模块接口
接口 |
流程/模块 |
---|---|
aivoice_iface_full_flow_v1 |
AFE+KWS+ASR |
aivoice_iface_afe_kws_v1 |
AFE+KWS |
aivoice_iface_afe_kws_vad_v1 |
AFE+KWS+VAD |
aivoice_iface_afe_v1 |
AFE |
aivoice_iface_vad_v1 |
VAD |
aivoice_iface_kws_v1 |
KWS |
aivoice_iface_asr_v1 |
ASR |
所有接口均支持以下函数:
create()
destroy()
reset()
feed()
详情请参考 ${aivoice_lib_dir}/include/aivoice_interface.h
。
事件及回调信息
aivoice输出事件 |
事件触发时间 |
回调信息 |
---|---|---|
AIVOICE_EVOUT_VAD |
当VAD检测到语音段开始或结束 |
包含VAD状态,偏移的结构体 |
AIVOICE_EVOUT_WAKEUP |
当KWS检测到唤醒词 |
包含ID,唤醒词,唤醒得分的JSON字符串。示例: {“id”:2,”keyword”:”ni-hao-xiao-qiang”,”score”:0.9} |
AIVOICE_EVOUT_ASR_RESULT |
当ASR检测到命令词 |
包含FST类型,命令词,ID的JSON字符串。 示例: {“type”:0,”commands”:[{“rec”:”打开空调”,”id”:14}]} |
AIVOICE_EVOUT_AFE |
AFE收到输入的每一帧 |
包含AFE输出数据,通道数等的结构体 |
AIVOICE_EVOUT_ASR_REC_TIMEOUT |
ASR/VAD超时 |
NULL |
AFE 事件定义
struct aivoice_evout_afe {
int ch_num; /* 输出音频信号的通道数,默认值:1 */
short* data; /* 增强后的音频信号 */
char* out_others_json; /* 保留用于其他输出数据(例如标志位),key: value 形式 */
};
VAD 事件定义
struct aivoice_evout_vad {
int status; /* 0: VAD 从语音变为静音,表示语音段的结束点
1: VAD 从静音变为语音,表示语音段的起始点 */
unsigned int offset_ms; /* 相对于重置点的时间偏移量 */
};
通用配置
AIVoice 可配参数:
- no_cmd_timeout:
在 full flow 中,如果在此持续时间内未检测到命令词,则 ASR 退出。在 AFE+KWS+VAD 流程中,唤醒后 VAD 仅在此持续时间内工作。
- memory_alloc_mode:
默认使用 SDK 默认堆。SRAM 模式使用 SDK 默认堆,同时还从 SRAM 分配空间用于内存关键数据。 SRAM 模式目前仅适用于 RTL8713E 和 RTL8726E DSP。
详情请参考 ${aivoice_lib_dir}/include/aivoice_sdk_config.h
。