Android SDK接入(旧)
该技术服务已迁移至思必驰开放平台,本文档于2020年8月25日停止更新。最新版请查看:https://cloud.aispeech.com/docs/lfasr_Android
一 功能介绍
录音文件转写,是将已经录制好的音频文件, 通过识别服务,将长段音频数据(5小时以内)转写成文本数据,可用于采访录音转写、音频数据录入、会议记录总结等场景,支持:
- 可用于基于协议开发的:轻量级嵌入式设备;
- 支持pcm,wav, ogg(speex), ogg_opus, mp3格式的音频文件转写;
- 有效任务12个小时内出转写结果;
- 对于大音频文件可以进行分片上传;
- 支持自定义热词和敏感词配置、语言模型自训练功能,请联系商务或项目经理进行定制。
整个识别过程是非实时的,音频文件上传成功后进入等待队列,转写成功后用户可以获取转写结果。返回转写结果时间受排队队列、音频时长因素影响,如转写耗时比平时长,耐心等待即可。
二、调用限制
集成实时长语音转写SDK时,需要注意以下内容:
内容
|
说明
|
---|---|
字符编码 | UTF-8 |
语言种类 | 中文普通话 |
服务鉴权 | 长语音服务使用需要进行授权,详见:服务授权 |
开发语言 | java |
响应格式 | 接口异步回调,详见demo |
音频属性 | 采样率16k、位长16bits、单声道 |
数据发送 |
post形式上传本地文件或提供http形式可下载的链接 |
音频时长/大小 | 5小时以内,且不超过500M |
音频格式 | pcm,wav, ogg(speex), ogg_opus, mp3 |
并发路数 | 默认5路并发,即可以同时转写5个音频文件 |
转写结果保存时长 | 7天 |
服务开通 | 调用长语音服务需要先购买时长, 您可以领取免费时长资源或购买付费资源包 |
三、集成流程
1、 产品创建与授权
1.1 产品创建
控制台里的基础技术标签下可以创建长语音相关产品
2、SDK集成准备
下载SDK
可以共用 在线语音识别 的sdk,请前往:基础技术SDK 下载最新版本的SDK。
SDK准备
集成SDK前,需要有:
jar:DUI-lite-SDK-for-Android-xxx.jar
资源:具体使用到的资源请参考 demo,可以放在assets目录中,也可以自己手动放在磁盘中,比如/sdcard/
3、集成SDK
SDK集成和授权 请参照文档 https://www.duiopen.com/docs/ct_overview_Android
长语音运行流程
流程如下图:
四、 SDK参数说明
创建转写任务的参数说明,其它请参见sdk 的 java doc:
参数 |
类型 |
必须 |
说明 |
---|---|---|---|
productId | string | 是 | 客户编号,唯一。 QUERY STRING |
audio_id | string | 和file_path二选一 | 分片上传完成后的audio_id。(72小时内有效) |
file_path | string | 和audio_id二选一 |
音频文件的HTTP下载地址。 可选值:可以为一个可以下载的HTTP地址(http地址格式不正确或不能正常下载都会报错), 或者空字符串。 如果下载的地址里包含中文,需要把中文的文件名和路径名进行urlencode。 |
file_len | int | 否(有file_path时必选) | 音频文件长度。单位:byte |
check_length | double | 否(有file_path时必选) | 音频的时长(单位:秒), 用户校验剩余时长是否充足 |
audio_type | string | 否(有file_path时必选) |
音频文件的格式。 可选值: wav ogg_speex mp3 opus |
res | string | 否 |
资源场景支持。 可选值: aitransoff 当客户端没有传res参数时,等同于res=aitransoff。 当前因为只有aitransoff的场景,客户端无需指定。 |
lang | string | 否 |
语种支持。 可选值: cn(默认值, 中文), en(英文), ce(中英文混合),sichuantone-mix(四川话+普通话), cantonese-mix(粤语+普通话) 当客户端没有传lang参数时,等同于lang=cn。 |
sample_rate | int | 否 |
音频文件的采样率。 可选值: 16000(默认值), 8000 客户端没有传递sample_rate参数时,等同于sample_rate=16000。 转写服务会在音频检查时,重新检测音频本身的采样率,并以检测后的结果为准。 |
speaker_rate | int | 否 |
说话人聚类使用的采样率。 可选值: 16000(默认值同sample_rate) 客户端没有传递speaker_rate参数时,等同于sample_rate。 |
channel | int | 否 |
音频文件的通道数。 |
task_type | int | 否 | 1:机器转写任务 |
use_txt_smooth | int | 否 | 口语顺滑开关。0:不使用,1:使用(默认)。 |
use_inverse_txt | int | 否 | 逆文本转换开关。0:不使用,1:使用(默认)。 |
phrase_file_id | string | 否 |
用户的热词文件ID。 绝对路径为: <PHRASE_FILES_ROOT>/<phrase_file_id>/v1.txt (注意):和hotwords参数只会有一个生效。 |
hotwords | string | 否 |
自定义的热词列表。每个词用英文逗号分割,中文必须使用utf-8编码,单个词必须在2 ~10个汉字之间,热词列表不能超过1000个词。 phrase_file参数只会有一个生效。 (注意):和 |
lmid | string | 否 | 自训练模型文件LMID。对应的二路模型文件在:<CUSTOME_LM_FILES_ROOT>/<productId>/<lmid>/latest/lm.pat |
sensitive_file_id | string | 否 | 用户的敏感词文件ID。绝对路径为: <SENSITIVE_FILES_ROOT>/<sensitive_file_id>/v1.txt |
callback | string | 否 | 识别完成时的回调HTTP(s)地址。当设置了callback地址,当识别融合后,会把最终结果以POST方式回传(也可以通过/lasr/task/result的方式来主动获取)。 |
speaker_number | int | 否 |
发音人个数,可选值:-1-8。0:表示跳过说话人聚类 。>0:音频里发音人个数。默认值:-1:盲分。 备注:
|
查询转写结果的返回内容:
{
errno: 0,
error: "",
data: {
"metrics": {},
"request": {},
"result": [
{
bg: 0,
ed: 4950,
onebest: "思必驰信息科技有限公司。",
speaker:0
},
...
]
}
}
字段说明:
bg:开始时间(ms)
ed:结束时间(ms)
onebest:识别文本
speaker:说话人序号
五、 SDK集成示例
1 初始化引擎
2 上传音频文件
创建转写任务并上传音频文件,音频文件支持本地文件和以http可访问形式的文件,且文件最大不超过500M,音频时长不超过5H。
3 恢复继续上传
针对上传失败的本地文件,可以恢复继续上传。
4 创建转写任务
5 查询转写进度
查询进度,0-100,达到100说明文件识别完成。服务器需要的识别时间从几分钟到几十分钟不等,视音频文件时间长度而定。
6 获取转写结果
当转写进度为100时,识别完成,此时可以查询结果
7 销毁引擎
8 回调接口
所有方法调用都通过回调接口返回,回调方法与调用方法一一对应
六、错误码
请看 通用错误码 和 长语音错误码
https://www.duiopen.com/docs/ct_errorcode_Android
七、接口文档
接口文档见:https://www.duiopen.com/duilite-doc/android/
八、常见问题
1、 如何试用服务和购买服务
可以联系商务购买或体验
2、 对硬件的要求有什么
Android 4.0 及以上系统的设备,能联网即可。
3、 转写结果存储多久
音频上传后得到 audioId ,保留1天。
转写结果保留7天
5、 支持的音频格式和语言
普通话,wav, ogg_speex, mp3,opus 16k 16bit 单声道