哭声检测 API参考
前言
本文档为使用媒体处理芯片的哭声检测进行智能分析方案开发的程序员而写,目的是供您在开发过程中查阅哭声检测支持的各种参考信息,包括API、错误码等。
与本文档相对应的产品版本如下。
本文档主要适用于以下工程师:
- 技术支持工程师
- 软件开发工程师
在本文中可能出现下列标志,它们所代表的含义如下。
概述
哭声检测提供了婴幼儿哭声检测(Baby Crying Detection,简称:BCD)功能。
重要概念
-
哭声检测功能
婴幼儿哭声检测功能基于独立封装的哭声检测库,可对婴幼儿哭声进行识别检测,并提供回调函数接口。
-
适用场景
哭声检测功能仅适用于家居场景。
注意:
仅Hi3516CV610支持哭声检测功能。
API参考
哭声检测相关API如下:
- ss_baby_crying_detection_init:初始化哭声检测模块。
- ss_baby_crying_detection_process:哭声检测处理。
- ss_baby_crying_detection_deinit:去初始化哭声检测模块。
ss_baby_crying_detection_init
【描述】
初始化哭声检测模块。
【语法】
td_s32 ss_baby_crying_detection_init(ot_bcd_handle *bcd, td_s32 sample_rate, const ot_bcd_config *bcd_config);
【参数】
【返回值】
失败,其值为错误码。 |
【需求】
- 头文件:ss_audio_bcd.h
- 库文件:libss_bcd.a
【注意】
用户通过传入哭声检测属性结构体,初始化一个哭声检测模块,并返回哭声检测句柄,可以最后通过哭声检测句柄来注销该哭声检测模块。
【举例】
下面代码举例哭声检测模块的初始化:
td_s32 ret;
ot_bcd_config bcd_cfg;
ot_bcd_handle bcd = TD_NULL;
td_s32 sample_rate = 16000;
bcd_cfg.usr_mode = TD_TRUE;
bcd_cfg.bypass = TD_FALSE;
bcd_cfg.alarm_sensitivity = 80;
bcd_cfg.alarm_period = 3000;
bcd_cfg.alarm_count_threshold = 1;
bcd_cfg.alarm_interval = 0;
bcd_cfg.callback = (fn_bcd_callback)cry_callback;
ret = ss_baby_crying_detection_init(&bcd, sample_rate, &bcd_cfg);
if (ret != TD_SUCCESS) {
return ret;
}
return TD_SUCCESS;
【相关主题】
无。
ss_baby_crying_detection_process
【描述】
哭声检测处理。
【语法】
td_s32 ss_baby_crying_detection_process(ot_bcd_handle bcd, ot_bcd_process_data *input_data, ot_bcd_process_data *output_data);
【参数】
【返回值】
失败,其值为错误码。 |
【需求】
- 头文件:ss_audio_bcd.h
- 库文件:libss_bcd.a
【注意】
- 哭声检测仅支持对单声道16bit位宽的音频数据进行处理,并输出单声道16bit位宽的音频数据。
- 哭声检测仅支持采样率为16kHz的音频数据,不支持低采样率的数据上采样到16kHz。
- 单次传入的输入数据长度必须为10ms,当采样率为16kHz、位宽为16bit时则该数据长度为320字节。
-
哭声检测的处理流程如图1所示。

【举例】
无。
【相关主题】
无。
ss_baby_crying_detection_deinit
【描述】
去初始化哭声检测模块。
【语法】
【参数】
【返回值】
失败,其值为错误码。 |
【需求】
- 头文件:ss_audio_bcd.h
- 库文件:libss_bcd.a
【注意】
对于同一个哭声检测句柄,不能重复调用去初始化接口,否则会出现异常。
【举例】
无。
【相关主题】
无。
数据类型
哭声检测相关数据类型、数据结构定义如下:
- ot_bcd_mode:定义哭声检测模式。
- ot_bcd_config:定义哭声检测属性结构体。
- ot_bcd_process_data:定义哭声检测处理数据结构体。
ot_bcd_mode
【说明】
定义哭声检测模式。
【定义】
【成员】
【注意事项】
无
【相关数据类型及接口】
ot_bcd_config
【说明】
定义哭声检测属性结构体。
【定义】
typedef struct {
td_bool usr_mode;
td_bool bypass;
td_u32 alarm_sensitivity;
td_u32 alarm_period;
td_u32 alarm_count_threshold;
td_u32 alarm_interval;
fn_bcd_callback callback;
ot_bcd_mode detect_mode;
} ot_bcd_config;
【成员】
【注意事项】
- 当用户模式开启时,其余参数(回调函数除外)的配置才生效,否则按照默认值来配置。
- 在初始化哭声检测模块时,当开启用户模式后才会对其余参数(回调函数除外)做正确性检查,只有所有参数正确才能配置成功。
- 回调函数仅在开启旁路功能的时候可设置为NULL,其余情况下须保证其地址有效,否则会导致异常。
- Fast模式相比Normal模式检测时延更小,但是虚警率相比偏大,可以适量提高告警阈值。
【相关数据类型及接口】
ot_bcd_process_data
【说明】
定义哭声检测处理数据结构体。
【定义】
【成员】
【注意事项】
在进行哭声检测时,须保证data的地址有效,且对应数据缓存区的有效长度不小于data_size,否则会导致处理异常。
【相关数据类型及接口】
ss_baby_crying_detection_process
错误码
哭声检测API错误码如表 1所示。
表 1 哭声检测API错误码




