性别识别用于识别音频中说话人的性别,返回识别类型和置信度。
使用限制
输入音频为 PCM 编码的无压缩 PCM 或 WAV 文件,16 bit 采样位深、单声道。
音频采样率为 8000 Hz。
音频时长不超过 60 秒。
计费和并发限制
性别识别提供试用版和商用版。服务版本及计费项请参见计费项,计费方式和升级操作请参见计费方式。并发限制请参见并发和 QPS 说明。
服务地址
|
访问方式 |
说明 |
服务地址 |
|
公网访问 |
所有服务器均可通过公网访问。 |
|
|
上海 ECS 内网访问 |
适用于华东 2(上海)地域的 ECS 实例,通过 VPC 访问。经典网络不支持访问语音服务。 |
|
Java SDK 的 NlsClient(String token) 默认使用上海公网服务地址。通过内网访问时,创建 NlsClient 需显式传入内网地址。内网访问不会产生 ECS 实例的公网流量费用。
交互流程
1. 鉴权
客户端建立 WebSocket 连接时使用 NLS Token 鉴权。Token 获取方法请参见获取 Token。项目 Appkey 获取方法请参见管理项目;Appkey 与 Token 需属于同一账号。
2. 开始检测
使用 Java SDK 时,通过 CommonRequest 构造函数传入命名空间,通过 setAppKey() 设置 Appkey,通过 addCustomedParam() 设置音频参数。参数说明如下:
|
参数 |
类型 |
说明 |
|
|
String |
命名空间,创建 |
|
|
String |
音频编码格式,默认 |
|
|
Integer |
音频采样率,默认 8000,单位为 Hz。 |
客户端初始化、监听器实现和音频发送的完整示例请参见Java SDK。以下片段基于已创建的 NlsClient client 和 CommonRequestListener listener,appkey 为项目 Appkey:
CommonRequest request = new CommonRequest(client, listener, "GenderIdentification");
request.setAppKey(appkey);
request.addCustomedParam("format", "pcm");
request.addCustomedParam("sample_rate", 8000);
request.start();
调用 start() 发起任务。服务端返回 TaskStarted 后,SDK 触发 onStarted 回调。任务失败时,通过 onFailed 回调获取错误信息。
3. 接收识别结果
发送音频数据,通过 CommonRequestListener.onEvent 接收性别识别结果。TaskResult 消息包含识别类型和置信度,响应示例如下:
{
"header":{
"namespace":"GenderIdentification",
"name":"TaskResult",
"status":20000000,
"message_id":"6b97ae72cf434e19aa797996fad9****",
"task_id":"ce70e356743b47b9b80dc283bdf0****",
"status_text":"Gateway:SUCCESS:Success."
},
"payload":{
"type":3,
"score":243.18978881835938
}
}
header 对象
|
参数 |
类型 |
说明 |
|
|
String |
消息所属的命名空间。 |
|
|
String |
消息名称, |
|
|
Integer |
服务状态码, |
|
|
String |
状态消息。 |
|
|
String |
任务的全局唯一 ID,可用于排查问题。 |
|
|
String |
当前消息的 ID。 |
payload 对象
|
参数 |
类型 |
说明 |
|
|
Integer |
识别类型: |
|
|
Float |
当前结果的置信度,取值范围为 [-1000.0, 500.0],值越大表示置信度越高。 |
4. 结束检测
音频发送完成后,调用 stop() 发送 StopTask,通过 onEvent 获取性别识别结果。服务端随后返回 TaskCompleted,SDK 触发 onStopped 回调,表示本次识别任务结束。
服务状态码
响应中的 header.status 表示服务状态。根据状态码和 status_text 处理错误;更多通用错误说明请参见错误码查询。
通用错误码
|
错误码 |
原因 |
解决方法 |
|
|
身份认证失败。 |
检查 Token 是否正确、是否已过期。 |
|
|
无效的消息。 |
检查发送的消息是否符合接口要求。 |
|
|
空闲超时。 |
检查是否连续 10 秒未向服务端发送数据。 |
|
|
请求数量过多。 |
检查并发连接数或每秒请求数是否超限。若并发连接数超限,可按需升级商用版,或增加商用版并发资源。 |
|
|
默认的客户端错误。 |
根据对应的状态消息排查。 |
|
|
免费试用期已结束。 |
如需继续使用,需开通商用版,操作请参见计费方式。 |
|
|
客户端超时。 |
客户端连续 10 秒及以上未发送数据,需检查音频发送是否中断。 |
|
|
采样率参数错误。 |
按输入音频要求检查采样率,应为 8000 Hz。 |
|
|
音频格式参数错误。 |
检查音频格式参数设置。 |
|
|
音频解码失败。 |
检查音频格式是否正常。 |
|
|
音频时长过长。 |
检查音频时长,需不超过 60 秒。 |
网关错误码
|
错误码 |
原因 |
解决方法 |
|
|
不支持的接口。 |
检查命名空间是否正确,以及接入地址是否提供该服务。 |
|
|
不支持的指令。 |
检查发送的指令名称是否符合接口要求。 |
|
|
无效的指令。 |
检查指令格式和参数。 |
|
|
客户端提前断开连接。 |
检查是否在任务正常完成前关闭了连接。 |
|
|
任务状态错误。 |
检查是否发送了当前任务状态无法处理的指令。 |
配置错误码
|
错误码 |
原因 |
解决方法 |
|
|
应用不存在。 |
检查项目 Appkey 是否存在。 |
|
|
Appkey 与 Token 不匹配。 |
检查 Appkey 是否正确,且与 Token 属于同一账号。 |
|
|
RAM 用户鉴权失败。 |
使用阿里云账号为调用的 RAM 用户授予 POP API 的访问权限。 |