.https://console.cloud.tencent.com/api/explorer?Product=asr&Version=2019-06-14&Action=DescribeTaskStatus&SignVersion=
1. 接口描述
接口请求域名: asr.tencentcloudapi.com 。
本接口服务对时长5小时以内的录音文件进行识别,异步返回识别全部结果, HTTP RESTful 形式。
• 支持中文普通话、英语、粤语和日语
• 支持通用、音视频领域
• 支持wav、mp3、m4a的音频格式
• 支持语音 URL 和本地语音文件两种请求方式
• 语音 URL 的音频时长不能长于5小时,文件大小不超过512MB
• 本地语音文件不能大于5MB(因为请求时长受限制)
• 支持回调或轮询的方式获取结果,结果获取请参考 录音文件识别结果查询。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:CreateRecTask。 |
Version | 是 | String | 公共参数,本接口取值:2019-06-14。 |
Region | 否 | String | 公共参数,本接口不需要传递此参数。 |
EngineModelType | 是 | String | 引擎模型类型。电话场景:• 8k_zh:电话 8k 中文普通话通用(可用于双声道音频);• 8k_zh_s:电话 8k 中文普通话话者分离(仅适用于单声道音频);非电话场景:• 16k_zh:16k 中文普通话通用;• 16k_zh_video:16k 音视频领域;• 16k_en:16k 英语;• 16k_ca:16k 粤语;• 16k_ja:16k 日语; |
ChannelNum | 是 | Integer | 语音声道数。1:单声道;2:双声道(仅支持 8k_zh 引擎模型)。 |
ResTextFormat | 是 | Integer | 识别结果返回形式。0: 识别结果文本(含分段时间戳); 1:仅支持16k中文引擎,含识别结果详情(词时间戳列表,一般用于生成字幕场景)。 |
SourceType | 是 | Integer | 语音数据来源。0:语音 URL;1:语音数据(post body)。 |
CallbackUrl | 否 | String | 回调 URL,用户自行搭建的用于接收识别结果的服务器地址, 长度小于2048字节。如果用户使用回调方式获取识别结果,需提交该参数;如果用户使用轮询方式获取识别结果,则无需提交该参数。 |
Url | 否 | String | 语音的URL地址,需要公网可下载。长度小于2048字节,当 SourceType 值为 0 时须填写该字段,为 1 时不需要填写。注意:请确保录音文件时长在5个小时之内,否则可能识别失败。请保证文件的下载速度,否则可能下载失败。 |
Data | 否 | String | 语音数据,当SourceType 值为1时必须填写,为0可不写。要base64编码(采用python语言时注意读取文件应该为string而不是byte,以byte格式读取后要decode()。编码后的数据不可带有回车换行符)。音频数据要小于5MB。 |
DataLen | 否 | Integer | 数据长度,非必填(此数据长度为数据未进行base64编码时的数据长度)。 |
HotwordId | 否 | String | 热词id。用于调用对应的热词表,如果在调用语音识别服务时,不进行单独的热词id设置,自动生效默认热词;如果进行了单独的热词id设置,那么将生效单独设置的热词id。 |
FilterDirty | 否 | Integer | 是否过滤脏词(目前支持中文普通话引擎)。0:不过滤脏词;1:过滤脏词;2:将脏词替换为 * 。默认值为 0。 |
FilterModal | 否 | Integer | 是否过语气词(目前支持中文普通话引擎)。0:不过滤语气词;1:部分过滤;2:严格过滤 。默认值为 0。 |
ConvertNumMode | 否 | Integer | 是否进行阿拉伯数字智能转换(目前支持中文普通话引擎)。0:不转换,直接输出中文数字,1:根据场景智能转换为阿拉伯数字。默认值为 1。 |
Extra | 否 | String | 附加参数 |
SpeakerDiarization | 否 | Integer | 是否开启话者分离,0:不开启,1:开启(仅支持8k_zh/16k_zh引擎模型,单声道音频) |
SpeakerNumber | 否 | Integer | 话者分离人数(需配合开启话者分离使用),支持2-10(8k_zh仅支持2, 16k_zh支持2-10)注:话者分离目前是beta版本,请根据您的需要谨慎使用 |
FilterPunc | 否 | Integer | 是否过滤标点符号(目前支持中文普通话引擎)。 0:不过滤,1:过滤句末标点,2:过滤所有标点。默认为0。 |
这里列出一下单声道与双声道的区别,这种尤其适用于电话的场景
其实,我很想知道过滤脏词和不过滤脏词有什么区别?这在算法上是怎么处理的呢?
我感觉过滤语气词没什么用吧,或者是我还没有理解到是否有用。
实际的参数输入:这个是在官网上没有的。你需要存储图片在cos上
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
Data | Task | 录音文件识别的请求返回结果,包含结果查询需要的TaskId |
RequestId | String | 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 |
这里的返回结果只是返回一个taskid,所以在这里通过taskid去查询结果。
Java-SDK测试使用
第一步,打开我的编辑器
新增一个Java类
输入你拷贝过来的类名
代码语言:javascript复制
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.asr.v20190614.AsrClient;
import com.tencentcloudapi.asr.v20190614.models.DescribeTaskStatusRequest;
import com.tencentcloudapi.asr.v20190614.models.DescribeTaskStatusResponse;
public class DescribeTaskStatus
{
public static void main(String [] args) {
try{
Credential cred = new Credential(" ", " ");
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("asr.tencentcloudapi.com");
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
AsrClient client = new AsrClient(cred, "", clientProfile);
String params = "{"TaskId":859181183}";
DescribeTaskStatusRequest req = DescribeTaskStatusRequest.fromJsonString(params, DescribeTaskStatusRequest.class);
DescribeTaskStatusResponse resp = client.DescribeTaskStatus(req);
System.out.println(DescribeTaskStatusResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
}
}
代码我也放在这里了。
运行,然后会报错,报错原因是因为在公司内网需要设置代理。
代码语言:javascript复制[TencentCloudSDKException]message:java.net.ConnectException-Connection timed out: no further information requestId:
设置了代理之后就有结果返回了。
代码语言:javascript复制"C:Program FilesJavajdk-13.0.1binjava.exe" "-javaagent:D:Program FilesJetBrainsIntelliJ IDEA 2019.3libidea_rt.jar=54168:D:Program FilesJetBrainsIntelliJ IDEA 2019.3bin" -Dfile.encoding=UTF-8 -classpath E:SDKasr-java-sdktargetclasses;D:softwareinstallapache-maven-3.6.3repocomtencentcloudapitencentcloud-sdk-java3.0.93tencentcloud-sdk-java-3.0.93.jar;D:softwareinstallapache-maven-3.6.3repocomsquareupokhttpokhttp2.5.0okhttp-2.5.0.jar;D:softwareinstallapache-maven-3.6.3repocomsquareupokiookio1.6.0okio-1.6.0.jar;D:softwareinstallapache-maven-3.6.3repocomgooglecodegsongson2.2.4gson-2.2.4.jar;D:softwareinstallapache-maven-3.6.3repojavaxxmlbindjaxb-api2.3.0jaxb-api-2.3.0.jar DescribeTaskStatus
{"Data":{"TaskId":859181183,"Status":2,"StatusStr":"success","Result":"[0:0.420,0:1.120,0] 啊。n[0:1.420,0:15.460,0] 喂,你好,这边腾讯云之前我看你在五月份的提时候提了一个文字识别的一个工,单是需要一个社会保障卡识别和那个社保卡识别的一个功能嘛,然后这边产品这边在。n[0:1.560,0:2.400,1] 喂,你好。n[0:3.460,0:4.020,1] 嗯。n[0:4.460,0:5.040,1] 嗯。n[0:15.380,0:22.740,0] 看你的需求需要一些资料,所以说这边回访的话,需要你提交一些资料,方便他们去。n[0:22.940,0:25.220,0] 做这个功能的一个开发。n[0:28.420,0:29.500,1] 上门开发。n[0:30.260,0:34.580,1] 我记得其他事,你们有时候识别错误,你那儿都能开发,什么意思?n[0:30.460,0:31.080,0] 嗯。n[0:34.800,0:38.700,0] 呃,不,这边接到的一个需求好像是。n[0:39.020,0:45.900,0] 一个社保卡的就是你这边,最后他们接单了,就是增加一个单独的一个医保卡识别的一个需求单。n[0:49.300,0:54.380,1] 啊,嗯,算是吧,因为你们那叫什么通用的那个。n[0:51.940,0:52.860,0] 呃,呃。n[0:54.240,0:56.120,1] 但是没有单独的,社保没有。n[0:56.420,0:59.400,0] 对对,对就是说,现在是没有预保卡。n[0:57.820,1:0.940,1] 有时候我们设法会识别错误,嗯。n[1:0.760,1:14.560,0] 嗯,对对就就是说,现在人呃文字识别这边是暂时是没有那个医保卡的吗?也就是识别那个医保卡的一个接口,然后这边他们提了个需求单,就是增加一个医保卡识别的一个接口吗?n[1:8.640,1:9.280,1] 嗯。n[1:10.680,1:11.320,1] 嗯。n[1:14.760,1:16.920,0] 然后产品那边看到了就是。n[1:15.080,1:17.380,1] 嗯,那下个提供什么?n[1:17.760,1:26.680,0] 呃,我看一下这这边你,你这边手机是这个可以加微信吗?就是说这个手机号可以加到微信吗?到时候我们微信沟通一下好了。n[1:26.580,1:28.920,0] 就是一些应用场景的一些东西。n[1:30.520,1:34.600,1] 手机号应该可以吧,你加一下。n[1:33.120,1:34.380,0] 嗯,好的。n[1:34.600,1:35.580,1] 我也忘了。n[1:34.820,1:40.320,0] 嗯,好的,那我是用这个先加一下你微信,到时候我们微信沟通沟通好了。n[1:40.300,1:42.360,1] 嗯嗯嗯,好好好。n[1:41.220,1:43.260,0] 嗯嗯,好,拜拜。n[1:43.840,1:44.520,1] 嗯。n[1:45.280,1:46.640,0] 嗯,好,拜拜。n[1:47.800,1:49.240,1] 用户已挂机。n","ErrorMsg":""},"RequestId":"c946c3d7-8813-4f9a-9995-a31b7f3223a3"}
Process finished with exit code 0