声纹注册算法¶
声纹注册算法当前推荐最多注册4个人,人数越多会影响注册效果,如需注册更多人数,需确认效果达到使用要求;同时注册过的声纹支持单个删除或全部删除。
1.算法功能配置步骤如下:
打开CI13XX_SDK_ALG_PRO_Vx.x.x\project_file\makefile文件,将CI_ALG_TYPE修改为CI_ALG_TYPE := $(USE_VPR)
CI_ALG_TYPE变量和算法功能对应说明请参考:算法功能使用说明
2. 该算法参数宏说明在projects\CI13XX_SDK_ALG_PRO_Vx.x.x\app\app_main\user_config.h文件中, 可调整的参数如下(如无特殊需求,建议都使用sdk中的默认宏配置):
//声纹计算的窗长,单位为ms, 建议范围1200-1500,值越大消耗内存越多(每增加100,内存增加8KB)
#define VP_USE_FRM_LEN 1200
//声纹阈值-建议范围(0.48-0.68),值越大,灵敏度越低,误识越低,识别率下降,需要更严格的匹配注册的模版
#define VP_THR_FOR_MATCH (0.52f)
//声纹注册时重复录入次数 -注册时的次数
#define VP_REC_TIMES 3
//声纹识别功能允许的最大模版(用户)数,最大4个 重要说明:每个模版单次约占0.8KB NV空间,三次2.4KB
#define MAX_VP_TEMPLATE_NUM 3
//注册声纹时最大超时等待时间(秒)
#define MAX_VP_REG_TIME 10
3. 声纹注册算法请把external\model\vpr(声纹注册)中[60001]VPR_model_v00xx.bin算法模型,复制到projects\CI13XX_SDK_ALG_PRO_Vx.x.x\firmware\dnn文件夹中
注意
- 声纹注册算法,涉及收费,需烧录license,具备license的芯片正常运行,无license的芯片每五分钟会进行复位,如有量产需求,请联系启英泰伦商务。
- 固件打包时,如果NV data分区空间过小,影响模板数据存储,导致无法正常识别已注册的声纹。
- 声纹注册需搭配该算法的前端算法模型使用。
4. 声纹注册结果说明:
声纹注册和注册以后的识别结果在vpr_callback回调函数中,该函数位于CI-SDK-ASR-ALG_Vx.x.x\projects\components\VPR\voice_print_recognition.c中,如下图:

vpr_callback函数参数rst:表示返回当前注册状态,reg_index:表示当前注册到第几个模版
rst注册状态有如下几类:
typedef enum
{
vpr_reg_successed, // 注册成功
vpr_reg_failed, // 注册失败
vpr_rec_successed, // 识别成功
vpr_rec_failed, // 识别失败
vpr_reg_resample, //继续重复录入声纹
vpr_reg_resample_failed //重复录入失败(注册一个模板可能需要录入多次)。
}vpr_callback_rst_t;