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