CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
函数

asr识别打分模式,语音活动检测VAD等配置。 更多...

函数

int asrtop_asrpcmbuf_mem_cfg (unsigned int buf_base_ptr, int frm_nums, int frm_shift)
 配置 语音数据缓存信息给 asr 系统 更多...
 
int asrtop_taskmanage_create (void)
 asr 系统任务,信号量,队列创建,会配置 asr 默认参数 更多...
 
int asrtop_asr_system_start (unsigned int lg_model_addr0, unsigned int lg_model_size0, unsigned int ac_model_addr, unsigned int ac_model_size, void *pdata)
 asr 系统重启,第一次可直接调用 asrtop_asrtop_asr_system_start 系统的启动; asr启动后,禁止单独调用,必须先调用 asrtop_asr_system_release 成功后,才可调用此函数。 更多...
 
int asrtop_asr_system_release (void)
 释放 asr 系统,fe输出缓存,梅尔系数缓存,cmvn内部运算缓存,窗函数缓存, dnn输出缓存,decoder用到的缓存 全部释放,释放成功后 asr 系统不处理语音(不影响 flash的使用),必须调用 asrasrtop_asr_system_start恢复 asr的运行 更多...
 
int asrtop_asr_system_create_model (unsigned int lg_model_addr, unsigned int lg_model_size, unsigned int ac_model_addr, unsigned int ac_model_size, void *pdata)
 asr 系统模型创建,独立使用,模型创建不影响外部flash使用 更多...
 
int asrtop_asr_system_pause (void)
 暂停 运行 asr 系统,暂停成功后,asr 系统内部余留语音相关信息会被清掉, 不再处理语音(不影响flash的使用),直到 调用 asrtop_asr_system_continue asr 系统 再运行,必须和asrtop_asr_system_continue 配对调用 更多...
 
int asrtop_asr_system_continue (void)
 继续 运行 asr 系统,必须调用 asrtop_asr_system_pause 成功后才能调用此函数 禁止单独调用 更多...
 
int get_asrtop_asrfrmshift (void)
 Get the asrtop asrfrmshift 更多...
 
int send_requset_flash_msg_to_dnn (void)
 发送请求 flash消息给dnn,必须和 释放配对使用 更多...
 
int send_release_flash_semaphore_to_dnn (void)
 发送释放信号量给dnn ,只能flash 函数管理和请求flash 配对使用 更多...
 
int asrtop_sys_isbusy (void)
 查询 asr 系统是否处于忙状态,处理语音 更多...
 
short asrtop_get_decode_pcm_finished_frame (void)
 获取 asr 系统 已经解码的帧数 更多...
 
int asrtop_cmvn_update_weight_config (float alpha)
 asrtop fe的 cmvn 迭代系数配置(调试用) 更多...
 
int asrtop_tdvad_base_energy_cfg (float base_energy)
 asrtop tdvad的 base_energy 系数 配置 更多...
 
int asrtop_asr_switch_fst (int fst_idx, void *pdata)
 asr 系统模型内部语言模型网络索引切换 更多...
 
int asrtop_tdvad_vadend_frames_cfg (int vadend_frames)
 asrtop tdvad的 vad end 条件帧数 配置 更多...
 
int asrtop_dynamic_confidence_mode_cfg (int confidence_mode)
 asr识别打分模式配置 更多...
 
void asr_system_startup_task (void *p)
 asr识别启动任务 更多...
 
int get_asr_sys_verinfo (char *version_buf)
 asr版本查询 更多...
 
int set_asr_sigle_word_confidence_count_threshold (short confidence_thr, unsigned char valid_count_thr)
 设置单个命令词的置信度和有效次数阈值 更多...
 
int asrtop_asr_system_litecreate (unsigned int lg_model_addr, unsigned int lg_model_size, unsigned int ac_model_addr, unsigned int ac_model_size, void *pdata)
 asr 系统模型创建,独立使用,模型创建不影响外部flash使用 更多...
 
void config_adpt_cnt (int enable)
 asr 系统中,开/关 自适应CNT功能; 自适应CNT:在语音识别后处理中,针对指令词,自动计算对应的CNT值, 结合Excel中的数值,选取大作为最终CNT,用来改善长词识别成短词的问题 可通过修改 ADAPTIVE_CNT_ENABLE 来开关该功能 更多...
 
void config_max_stop_cfd (int enable, int nocnt_max_stop_cfd, int cnt_max_stop_cfd)
 开启该功能后,当语音识别结果的置信度打分满足 配置的 max_stop_cfd后,立即结束本轮的语音识别(打分超过阈值提前结束) 用来提升响应速度,特殊场景(固定词条、无长短词项目中)使用 更多...
 
void config_max_vad_end_frm (int max_vad_end_frm)
 asr 系统中,配置 VAD END 帧数,用于调整指令词语音中最大停顿静音间隔帧数 更多...
 
int config_base_confidence_count (short base_confidence, unsigned char valid_count)
 asr 系统中,配置 基础置信度打分门限和CNT值 CNT值:语音识别后处理中,满足条件(识别打分超过对应的门限)的累计帧数, 当累计帧数超过该值,立即结束本轮的语音识别, 更多...
 
void config_recover_result (int enable, int mode, int max_frm)
 asr 系统中,语音识别后处理逻辑里面的,语音识别结果回收使能 配置(整段语音结束,无有效结果,再回溯搜索打分满足阈值[CNT不满足]的结果), 开启人声噪音识别率会增加,但集外误识别会提升 更多...
 
void config_silprob_cnt (float base_silprob, int base_silcnt)
 asr 系统中, 配置静音概率门限和帧累计次数门限, 用于平衡语音指令识别响应时间和支持的最大停顿时间 更多...
 
int vadstart_callback (unsigned int *pdata, int line)
 asr 系统中 vadstart的回调函数,当触发vad start时,libasr库里面会调用该函数; 根据需要可自行在该函数中添加处理逻辑或获取、记录信息 更多...
 
int vadprocess_callback (unsigned int *pdata, int line)
 asr 系统中 vadstart后,vadend前,每帧(帧长10ms)语音调用一次该函数,libasr库里面会调用该函数 根据需要可自行在该函数中添加处理逻辑或获取、记录信息
更多...
 
int vadend_callback (unsigned int *pdata, int line)
 asr 系统中 vadend的回调函数,当触发vad end 时,libasr库里面会调用该函数; 根据需要可自行在该函数中添加处理逻辑或获取、记录信息 更多...
 
int set_pcm_vad_mark_flag (short *pcm_data, int frame_len)
 asr 系统中 vadstart,vadend 标记函数,每帧(帧长10ms)会调用一次,呈现在实时的语音信号上面,方便debug观察 可根据情况 更多...
 
int computevad_callback (int asrpcmbuf_addr, int pcm_byte_size, short asrfrmshift, unsigned int asrpcmbuf_start_addr, unsigned int asrpcmbuf_end_addr)
 可删除,调试函数 更多...
 
int asr_result_callback (callback_asr_result_type_t *asr)
 asr 系统中 识别到指令词的回调函数,当有识别结果,libasr库里面会调用该函数 该函数会输出指令文本、置信度打分、词条管理句柄等信息,并发送相关信息到 系统应用层,做后处理,如发送协议,播放对应的提示语音,进入唤醒等;可根据需要 在该函数中添加相关代码,但不能在该延时,或长时间占用,会影响识别响应速度 更多...
 

详细描述

asr识别打分模式,语音活动检测VAD等配置。

@文件 asr_process_callbak.h @版本 V1.0.1 @日期 2019-3-15 @概要 asr 回调函数,VAD相关

@注意

版权归chipintelli公司所有,未经允许不得使用或修改

函数说明

◆ asr_result_callback()

int asr_result_callback ( callback_asr_result_type_t asr)

asr 系统中 识别到指令词的回调函数,当有识别结果,libasr库里面会调用该函数 该函数会输出指令文本、置信度打分、词条管理句柄等信息,并发送相关信息到 系统应用层,做后处理,如发送协议,播放对应的提示语音,进入唤醒等;可根据需要 在该函数中添加相关代码,但不能在该延时,或长时间占用,会影响识别响应速度

参数
asr语音指令识别结果的相关的信息,如文本、打分等
返回
int 1

◆ asr_system_startup_task()

void asr_system_startup_task ( void *  p)

asr识别启动任务

参数

◆ asrtop_asr_switch_fst()

int asrtop_asr_switch_fst ( int  fst_idx,
void *  pdata 
)

asr 系统模型内部语言模型网络索引切换

参数
fst_idx语言模型网络索引
pdatapdata[0]:dnn输出位宽配置,1: 8bit,其他16bit(默认16bit) pdata[2]~:预留

◆ asrtop_asr_system_continue()

int asrtop_asr_system_continue ( void  )

继续 运行 asr 系统,必须调用 asrtop_asr_system_pause 成功后才能调用此函数 禁止单独调用

返回
int 0

◆ asrtop_asr_system_create_model()

int asrtop_asr_system_create_model ( unsigned int  lg_model_addr,
unsigned int  lg_model_size,
unsigned int  ac_model_addr,
unsigned int  ac_model_size,
void *  pdata 
)

asr 系统模型创建,独立使用,模型创建不影响外部flash使用

参数
lg_model_addr语言模型基地址,支持flash,SRAM,PSRAM 映射的地址,内部会自行判断 是否加载
lg_model_size语言模型大小
ac_model_addr声学模型基地址,支持flash,PSRAM 映射地址,内部自行判断是否配置qspi 对应dnn 模式参数
ac_model_size声学模型大小
pdatapdata[0]: dnn输出位宽配置,1: 8bit,其他16bit(默认16bit),其他预留 pdata[1]: 0: pdata[2],pdata[3] 参数无效,1:pdata[2],pdata[3],pdata[4] 参数有效,第二个网络语言模型参数 pdata[2]: lg_model_addr1 语言模型基地址,支持flash,SRAM,PSRAM 映射的地址,内部会自行判断 pdata[3]: lg_model_size1 语言模型大小
pdata[4]: 创建启动的模型索引号 pdata[5]~:预留
返回
int 0 创建成功;-1 创建失败

◆ asrtop_asr_system_litecreate()

int asrtop_asr_system_litecreate ( unsigned int  lg_model_addr,
unsigned int  lg_model_size,
unsigned int  ac_model_addr,
unsigned int  ac_model_size,
void *  pdata 
)

asr 系统模型创建,独立使用,模型创建不影响外部flash使用

参数
lg_model_addr语言模型基地址,支持flash,SRAM,PSRAM 映射的地址,内部会自行判断 是否加载
lg_model_size语言模型大小
ac_model_addr声学模型基地址,支持flash,PSRAM 映射地址,内部自行判断是否配置qspi 对应dnn 模式参数
ac_model_size声学模型大小
pdatapdata[0]: dnn输出位宽配置,1: 8bit,其他16bit(默认16bit) pdata[1]: 0: pdata[2],pdata[3] 参数无效,1:pdata[2],pdata[3],pdata[4] 参数有效,第二个网络语言模型参数 pdata[2]: lg_model_addr1 语言模型基地址,支持flash,SRAM,PSRAM 映射的地址,内部会自行判断 pdata[3]: lg_model_size1 语言模型大小
pdata[4]: 创建启动的模型索引号 pdata[5]~:预留
返回
int 0 创建成功;-1 创建失败

◆ asrtop_asr_system_pause()

int asrtop_asr_system_pause ( void  )

暂停 运行 asr 系统,暂停成功后,asr 系统内部余留语音相关信息会被清掉, 不再处理语音(不影响flash的使用),直到 调用 asrtop_asr_system_continue asr 系统 再运行,必须和asrtop_asr_system_continue 配对调用

返回
int 0

◆ asrtop_asr_system_release()

int asrtop_asr_system_release ( void  )

释放 asr 系统,fe输出缓存,梅尔系数缓存,cmvn内部运算缓存,窗函数缓存, dnn输出缓存,decoder用到的缓存 全部释放,释放成功后 asr 系统不处理语音(不影响 flash的使用),必须调用 asrasrtop_asr_system_start恢复 asr的运行

返回
int 0 asr 系统释放成功;-1 asr 系统释放失败

◆ asrtop_asr_system_start()

int asrtop_asr_system_start ( unsigned int  lg_model_addr0,
unsigned int  lg_model_size0,
unsigned int  ac_model_addr,
unsigned int  ac_model_size,
void *  pdata 
)

asr 系统重启,第一次可直接调用 asrtop_asrtop_asr_system_start 系统的启动; asr启动后,禁止单独调用,必须先调用 asrtop_asr_system_release 成功后,才可调用此函数。

参数
lg_model_addr0语言模型基地址,支持flash,SRAM,PSRAM 映射的地址,内部会自行判断 是否加载
lg_model_size0语言模型大小
ac_model_addr声学模型基地址,支持flash,PSRAM 映射地址,内部自行判断是否配置qspi 对应dnn 模式参数
ac_model_size声学模型大小
pdatapdata[0]: dnn输出位宽配置,1: 8bit,其他16bit(默认16bit), pdata[1]: 0: pdata[2],pdata[3] 参数无效,1:pdata[2],pdata[3],pdata[4] 参数有效,第二个网络语言模型参数 pdata[2]: lg_model_addr1 语言模型基地址,支持flash,SRAM,PSRAM 映射的地址,内部会自行判断 pdata[3]: lg_model_size1 语言模型大小
pdata[4]: 创建启动的模型索引号 pdata[5]~:预留
返回
int 0 asr 系统加载模型启动成功;-1 asr 系统加载模型启动失败

◆ asrtop_asrpcmbuf_mem_cfg()

int asrtop_asrpcmbuf_mem_cfg ( unsigned int  buf_base_ptr,
int  frm_nums,
int  frm_shift 
)

配置 语音数据缓存信息给 asr 系统

参数
buf_base_ptr语音缓存基地址
frm_nums语音缓存帧数
frm_shift语音缓存帧移
返回
int 0:配置成功;-1:配置失败

◆ asrtop_cmvn_update_weight_config()

int asrtop_cmvn_update_weight_config ( float  alpha)

asrtop fe的 cmvn 迭代系数配置(调试用)

参数
alpha迭代系数(0~1)
返回
int 0 配置成功,-1配置失败

◆ asrtop_dynamic_confidence_mode_cfg()

int asrtop_dynamic_confidence_mode_cfg ( int  confidence_mode)

asr识别打分模式配置

参数
confidence_mode配置模式,0 平均模式,-1 最大值模式
返回
int 0 配置成功,-1配置失败

◆ asrtop_get_decode_pcm_finished_frame()

short asrtop_get_decode_pcm_finished_frame ( void  )

获取 asr 系统 已经解码的帧数

返回
short 帧数

◆ asrtop_sys_isbusy()

int asrtop_sys_isbusy ( void  )

查询 asr 系统是否处于忙状态,处理语音

返回
int 0 空闲,1忙

◆ asrtop_taskmanage_create()

int asrtop_taskmanage_create ( void  )

asr 系统任务,信号量,队列创建,会配置 asr 默认参数

返回
int 0 asr 系统任务创建成功;-1 asr 系统任务创建失败

◆ asrtop_tdvad_base_energy_cfg()

int asrtop_tdvad_base_energy_cfg ( float  base_energy)

asrtop tdvad的 base_energy 系数 配置

参数
base_energy系数
返回
int 0 配置成功,-1配置失败

◆ asrtop_tdvad_vadend_frames_cfg()

int asrtop_tdvad_vadend_frames_cfg ( int  vadend_frames)

asrtop tdvad的 vad end 条件帧数 配置

参数
vadend_framesvad end 的帧数
返回
int 0 配置成功,-1配置失败

◆ computevad_callback()

int computevad_callback ( int  asrpcmbuf_addr,
int  pcm_byte_size,
short  asrfrmshift,
unsigned int  asrpcmbuf_start_addr,
unsigned int  asrpcmbuf_end_addr 
)

可删除,调试函数

◆ config_adpt_cnt()

void config_adpt_cnt ( int  enable)

asr 系统中,开/关 自适应CNT功能; 自适应CNT:在语音识别后处理中,针对指令词,自动计算对应的CNT值, 结合Excel中的数值,选取大作为最终CNT,用来改善长词识别成短词的问题 可通过修改 ADAPTIVE_CNT_ENABLE 来开关该功能

参数
enable非0: 开启自适应CNT功能;0:关闭自适应CNT功能, 关闭可加快响应速度,但必须手动在excel配置短词的cnt;
返回
void

◆ config_base_confidence_count()

int config_base_confidence_count ( short  base_confidence,
unsigned char  valid_count 
)

asr 系统中,配置 基础置信度打分门限和CNT值 CNT值:语音识别后处理中,满足条件(识别打分超过对应的门限)的累计帧数, 当累计帧数超过该值,立即结束本轮的语音识别,

参数
base_confidence配置默认置信度 :Excel未配置置信度的词条的默认值, 理论范围[1-255],建议范围[30-150],可修改 DEFAULT_CONFIDENCE 调整该值
valid_count配置默认cnt宏 :Excel未配置cnt的词条的默认值,理论范围[1-255], 建议范围[4-20] ,可修改 DEFAULT_CNT 调整该值
返回
0

◆ config_max_stop_cfd()

void config_max_stop_cfd ( int  enable,
int  nocnt_max_stop_cfd,
int  cnt_max_stop_cfd 
)

开启该功能后,当语音识别结果的置信度打分满足 配置的 max_stop_cfd后,立即结束本轮的语音识别(打分超过阈值提前结束) 用来提升响应速度,特殊场景(固定词条、无长短词项目中)使用

参数
enable非0:开启, 0:关闭,可通过修改 MAX_STOP_CFD_ENABLE 来开关该功能
nocnt_max_stop_cfdenable为非0时,该参数有效,无cnt配置的词, 最大结束阈值,理论范围 [5-200],建议范围[50-150],可配置 MAX_STOP_CFD_NOCNT 调整该值
cnt_max_stop_cfdenable为非0时,该参数有效,有cnt配置的词,最大结束阈值, 理论范围 [5-200],建议范围[50-150] 可配置 MAX_STOP_CFD_CNT 调整该值
返回
void

◆ config_max_vad_end_frm()

void config_max_vad_end_frm ( int  max_vad_end_frm)

asr 系统中,配置 VAD END 帧数,用于调整指令词语音中最大停顿静音间隔帧数

参数
max_vad_end_frmVAD END帧数 最大停顿静音间隔帧数 30=300ms 值越大识别响应时间会加长;过短导致出现截断,长词识别为短词 , 建议:英文/小语种 该值至少35,理论范围 [1-60],建议范围[20-50] 可配置 MAX_STOP_VAD_FRM 调整该值
返回
void

◆ config_recover_result()

void config_recover_result ( int  enable,
int  mode,
int  max_frm 
)

asr 系统中,语音识别后处理逻辑里面的,语音识别结果回收使能 配置(整段语音结束,无有效结果,再回溯搜索打分满足阈值[CNT不满足]的结果), 开启人声噪音识别率会增加,但集外误识别会提升

参数
enable0:关该功能 ,非0:开启该功能 可修改 RECOVER_RESULT_ENABLE 调整该值
modeenable 开启后,该参数有效 语音识别结果回收使能作用模式, 0 命令词和唤醒词; 1 唤醒词 可修改 RECOVER_RESULT_MODE 调整该值
max_frmenable 开启后,该参数有效,回收使能 在CNT基础上再增加超时帧数 , 10=300 ms ,理论范围 [0-200],建议范围[0-20] 可修改 RECOVER_RESULT_MAX_FRM 调整该值
返回
0

◆ config_silprob_cnt()

void config_silprob_cnt ( float  base_silprob,
int  base_silcnt 
)

asr 系统中, 配置静音概率门限和帧累计次数门限, 用于平衡语音指令识别响应时间和支持的最大停顿时间

参数
base_silprob识别结束停顿静音概率阈值,理论范围[0-1],值越大支持的停顿时间越长 可修改 DEFAULT_STOP_SILPROB 调整该值
base_silcnt识别结束静音连续次数:识别结束停顿静音,值越大支持的停顿时间越长, 理论范围 [1-200] 建议范围 [1-10],可修改 DEFAULT_STOP_SILCNT 调整该值
返回
0

◆ get_asr_sys_verinfo()

int get_asr_sys_verinfo ( char *  version_buf)

asr版本查询

参数
version_buf至少 80字节
返回

◆ get_asrtop_asrfrmshift()

int get_asrtop_asrfrmshift ( void  )

Get the asrtop asrfrmshift

返回
int 帧移的长度,单位 PCM 点数

◆ send_release_flash_semaphore_to_dnn()

int send_release_flash_semaphore_to_dnn ( void  )

发送释放信号量给dnn ,只能flash 函数管理和请求flash 配对使用

返回
int 0成功,-1失败

◆ send_requset_flash_msg_to_dnn()

int send_requset_flash_msg_to_dnn ( void  )

发送请求 flash消息给dnn,必须和 释放配对使用

返回
int 0成功,-1失败

◆ set_asr_sigle_word_confidence_count_threshold()

int set_asr_sigle_word_confidence_count_threshold ( short  confidence_thr,
unsigned char  valid_count_thr 
)

设置单个命令词的置信度和有效次数阈值

参数
shortconfidence_thr(16-24),short confidence_thr(>9)
返回
0

◆ set_pcm_vad_mark_flag()

int set_pcm_vad_mark_flag ( short *  pcm_data,
int  frame_len 
)

asr 系统中 vadstart,vadend 标记函数,每帧(帧长10ms)会调用一次,呈现在实时的语音信号上面,方便debug观察 可根据情况

参数
pcm_data语音PCM的地址
frame_len语音帧数(帧长10ms)
返回
int 0

◆ vadend_callback()

int vadend_callback ( unsigned int *  pdata,
int  line 
)

asr 系统中 vadend的回调函数,当触发vad end 时,libasr库里面会调用该函数; 根据需要可自行在该函数中添加处理逻辑或获取、记录信息

参数
pdata语音PCM的地址
linedebug用,调用该函数位置的行号
返回
int 0

◆ vadprocess_callback()

int vadprocess_callback ( unsigned int *  pdata,
int  line 
)

asr 系统中 vadstart后,vadend前,每帧(帧长10ms)语音调用一次该函数,libasr库里面会调用该函数 根据需要可自行在该函数中添加处理逻辑或获取、记录信息

参数
pdata语音PCM的地址
linedebug用,调用该函数位置的行号
返回
int 0

◆ vadstart_callback()

int vadstart_callback ( unsigned int *  pdata,
int  line 
)

asr 系统中 vadstart的回调函数,当触发vad start时,libasr库里面会调用该函数; 根据需要可自行在该函数中添加处理逻辑或获取、记录信息

参数
pdata语音PCM的地址
linedebug用,调用该函数位置的行号
返回
int 0