双麦声源定位算法¶
该算法能进行声源方位角度估计,当前版本支持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
/**
* @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间距一致
};
注意
- 双mic位置需处于同一平面相同朝向,推荐麦间距为4cm~10cm。
- 声源定位算法支持多种不同方式输出角度信息,可通过AI_DOA_OUT_TYPE宏来设置。
- 声源定位需搭配该算法的前端算法模型使用。
- V2.7.14起DOA提供7种距离模型,
distance配置、所选模型与实际硬件MIC间距必须三者一致。