跳转至

双麦声源定位算法

该算法能进行声源方位角度估计,当前版本支持0-180度检测范围,分辨率为10°,双mic位置需处于同一平面相同朝向,推荐麦间距为4cm~10cm(超过约定范围的mic间距需要重新训练模型支持),该算法仅双mic可用。

V2.7.14 DOA距离模型说明

自V2.7.14起,DOA算法优化了距离建模,在 external/model/doa(声源定位)/ 目录下提供4~10cm共7种距离模型,必须根据实际MIC间距选用对应模型:

  • [60004]nn_dual_mic_doa_4cm_v0004.bin (4cm间距)
  • [60004]nn_dual_mic_doa_5cm_v0004.bin (5cm间距)
  • [60004]nn_dual_mic_doa_6cm_v0004.bin (6cm间距)
  • [60004]nn_dual_mic_doa_7cm_v0004.bin (7cm间距)
  • [60004]nn_dual_mic_doa_8cm_v0004.bin (8cm间距)
  • [60004]nn_dual_mic_doa_9cm_v0004.bin (9cm间距)
  • [60004]nn_dual_mic_doa_10cm_v0004.bin (10cm间距)

选用的模型距离、doa_config_t.distance 配置值与硬件实际MIC间距三者必须保持一致,否则会导致角度估计偏差。

1.算法功能配置步骤如下:

打开CI13XX_SDK_ALG_PRO_Vx.x.x\project_file\makefile文件,对CI_ALG_TYPE修改为CI_ALG_TYPE := $(USE_AI_DOA)

CI_ALG_TYPE变量和算法功能对应说明请参考:算法功能使用说明

2. 该算法参数宏说明在projects\CI13XX_SDK_ALG_PRO_Vx.x.x\app\app_main\user_config.h文件中

 //doa输出类型:1-唤醒词输出角度  2-命令词输出角度 3-唤醒次和命令词都输出角度
#define AI_DOA_OUT_TYPE                 3        
3. 该算法检测到角度信息回调函数在projects\CI13XX_SDK_ALG_PRO_Vx.x.x\app\app_doa\doa_app_handle.c文件中

/**
 * @brief 角度信息输出-检测到声源角度信息后,系统会自动回调该函数,用户可以通过该函数的参数doa_angle拿到当前声源角度值,参数audio_state为预留参数,用户不用关注
 */
void ci_doa_get_cb(int audio_state, int doa_angle)

4. 声源定位算法请把external\model\doa(声源定位)中[60004]nn_dual_mic_doa_Xcm_v0004.bin算法模型,复制到projects\CI13XX_SDK_ALG_PRO_Vx.x.x\firmware\dnn文件夹中

V2.7.14 距离模型选择

V2.7.14提供4cm/5cm/6cm/7cm/8cm/9cm/10cm共7种距离模型(文件名 nn_dual_mic_doa_Xcm_v0004.bin,X为间距cm数),请按实际MIC间距选用,并在 doa_config_t.distance 中配置一致的值(单位mm,如4cm填40)。

5. DOA算法参数配置 如下算法参数用户只需关注distance,其他参数算法内部使用,用户无需关注

const doa_config_t doa_config =
{
    .distance = 40,        //双mic间距(单位mm),40表示当前双mic间距为4cm,需与所选距离模型和实际硬件MIC间距一致
};
调节参数说明 distance: (调节mic间距,范围4~10cm,需与所选DOA距离模型间距一致)

注意

  1. 双mic位置需处于同一平面相同朝向,推荐麦间距为4cm~10cm。
  2. 声源定位算法支持多种不同方式输出角度信息,可通过AI_DOA_OUT_TYPE宏来设置。
  3. 声源定位需搭配该算法的前端算法模型使用。
  4. V2.7.14起DOA提供7种距离模型,distance配置、所选模型与实际硬件MIC间距必须三者一致。