跳转至

哭声检测 API参考

前言

概述

本文档为使用媒体处理芯片的哭声检测进行智能分析方案开发的程序员而写,目的是供您在开发过程中查阅哭声检测支持的各种参考信息,包括API、错误码等。

产品版本

与本文档相对应的产品版本如下。

产品名称

产品版本

Hi3516C

V608

Hi3516C

V610

读者对象

本文档主要适用于以下工程师:

  • 技术支持工程师
  • 软件开发工程师

符号约定

在本文中可能出现下列标志,它们所代表的含义如下。

符号

说明

表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。

表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。

表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。

用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。

“须知”不涉及人身伤害。

对正文中重点信息的补充说明。

“说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。

修改记录

文档版本

发布日期

修改说明

00B01

2026-06-30

第1次临时版本发布

概述

哭声检测提供了婴幼儿哭声检测(Baby Crying Detection,简称:BCD)功能。

重要概念

  • 哭声检测功能

    婴幼儿哭声检测功能基于独立封装的哭声检测库,可对婴幼儿哭声进行识别检测,并提供回调函数接口。

  • 适用场景

    哭声检测功能仅适用于家居场景。

注意:

仅Hi3516CV610支持哭声检测功能。

API参考

哭声检测相关API如下:

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);

【参数】

参数名称

描述

输入/输出

bcd

哭声检测句柄。

输出

sample_rate

待处理音频数据的采样率,仅支持16kHz。

输入

bcd_config

哭声检测属性结构体的指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【需求】

  • 头文件: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);

【参数】

参数名称

描述

输入/输出

bcd

哭声检测句柄(初始化哭声检测模块时获得的句柄)。

输入

input_data

输入数据的指针。

输入

output_data

输出数据的指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【需求】

  • 头文件:ss_audio_bcd.h
  • 库文件:libss_bcd.a

【注意】

  • 哭声检测仅支持对单声道16bit位宽的音频数据进行处理,并输出单声道16bit位宽的音频数据。
  • 哭声检测仅支持采样率为16kHz的音频数据,不支持低采样率的数据上采样到16kHz。
  • 单次传入的输入数据长度必须为10ms,当采样率为16kHz、位宽为16bit时则该数据长度为320字节。
  • 哭声检测的处理流程如图1所示。

    图 1 哭声检测的处理流程

【举例】

无。

【相关主题】

无。

ss_baby_crying_detection_deinit

【描述】

去初始化哭声检测模块。

【语法】

td_s32 ss_baby_crying_detection_deinit(ot_bcd_handle bcd);

【参数】

参数名称

描述

输入/输出

bcd

哭声检测句柄(初始化哭声检测模块时获得的句柄)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【需求】

  • 头文件:ss_audio_bcd.h
  • 库文件:libss_bcd.a

【注意】

对于同一个哭声检测句柄,不能重复调用去初始化接口,否则会出现异常。

【举例】

无。

【相关主题】

无。

数据类型

哭声检测相关数据类型、数据结构定义如下:

ot_bcd_mode

【说明】

定义哭声检测模式。

【定义】

typedef enum {
    OT_BCD_MODE_NORMAL = 0,
    OT_BCD_MODE_FAST,
    OT_BCD_MODE_BUTT,
} ot_bcd_mode;

【成员】

成员名称

描述

OT_BCD_MODE_NORMAL

Normal模式。

OT_BCD_MODE_FAST

Fast模式。

【注意事项】

无

【相关数据类型及接口】

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;

【成员】

成员名称

描述

usr_mode

是否采用用户模式:

0:自动模式

1:用户模式

默认值:0。

bypass

是否开启旁路功能。

0:不开启旁路功能,即使能哭声检测

1:开启旁路功能,即不使能哭声检测

默认值:0。

alarm_sensitivity

告警阈值,即哭声检测的灵敏度。该值越小,误报率越高,漏检率越低。取值范围为[0,100]。

默认值:80。

alarm_period

告警时限,以ms为单位。取值范围为大于或等于1000。

默认值:3000。

alarm_count_threshold

告警次数阈值,在告警时限内若告警次数大于该值则判定为检测到哭声。取值范围为大于或等于1。

默认值:1。

alarm_interval

告警间隔,即两次告警之间的最小时间间隔。取值范围为大于或等于0。

默认值:0。

detect_mode

检测模式:

0:Normal模式

1:Fast模式

默认值:0。

callback

检测到哭声时执行的回调函数。

【注意事项】

  • 当用户模式开启时,其余参数(回调函数除外)的配置才生效,否则按照默认值来配置。
  • 在初始化哭声检测模块时,当开启用户模式后才会对其余参数(回调函数除外)做正确性检查,只有所有参数正确才能配置成功。
  • 回调函数仅在开启旁路功能的时候可设置为NULL,其余情况下须保证其地址有效,否则会导致异常。
  • Fast模式相比Normal模式检测时延更小,但是虚警率相比偏大,可以适量提高告警阈值。

【相关数据类型及接口】

ss_baby_crying_detection_init

ot_bcd_process_data

【说明】

定义哭声检测处理数据结构体。

【定义】

typedef struct {
    td_s16 *data;
    td_s32 data_size;
} ot_bcd_process_data;

【成员】

成员名称

描述

data

数据缓冲区的指针。

data_size

数据大小,以byte为单位。

【注意事项】

在进行哭声检测时,须保证data的地址有效,且对应数据缓存区的有效长度不小于data_size,否则会导致处理异常。

【相关数据类型及接口】

ss_baby_crying_detection_process

错误码

哭声检测API错误码如表 1所示。

表 1 哭声检测API错误码

错误代码

宏定义

描述

0xA0148100

OT_ERR_BCD_INVALID_HANDLE

句柄无效。

0xA0148101

OT_ERR_BCD_MEMORY_ERROR

系统内存不足。

0xA0148102

OT_ERR_BCD_ILLEGAL_PARAM

输入参数非法。

0xA0148103

OT_ERR_BCD_NULL_PTR

输入参数空指针错误。

0xA0148104

OT_ERR_BCD_NOT_PERM

操作不允许。

0xA0148105

OT_ERR_BCD_PROCESS_ERROR

检测处理出错。