Java SDK 文档
1、简介
使用方法详见 动态修正
#2、SDK集成指南
#2.1 Demo运行步骤
#2.2 项目集成步骤
#2.2.1 SDK包说明
#2.2.2 SDK导入
1.
2.

1.

1.

1.
#2.2.3 初始化方式
#2.3 参数与说明
#2.3.1 使用麦克风录音听写示例
#2.3.2 使用音频文件听写示例
#2.3.3 上传用户词表
#2.3.4 动态修正
参数 | 类型 | 描述 |
---|---|---|
pgs | string | 开启wpgs会有此字段 取值为 "apd"时表示该片结果是追加到前面的最终结果;取值为"rpl" 时表示替换前面的部分结果,替换范围为rg字段 |
rg | array | 替换范围,开启wpgs会有此字段 假设值为[2,5],则代表要替换的是第2次到第5次返回的结果 |
#2.3.5 代理服务器设置方法
net_type=custom, proxy_ip=<host>, proxy_port=<port>
其中,<host>,<port>替换为实际的代理服务器地址和端口。
例如:SpeechUtility.createUtility(SpeechConstant.APPID + “=12345678” + “,” + “net_type=custom, proxy_ip=192.168.1.2, proxy_port=8080”); 注意:各参数间,以英文逗号分隔。
接口原型: public static SpeechUtility createUtility(java.lang.String params)
注意: 若在设置代理参数后,使用语音服务过程中,报错10204/10205/10212等网络异常错误时,请查阅以下内容,做出相关操作: 讯飞语音SDK的通信协议使用的是标准HTTP1.1协议,其代理协议使用的是标准HTTP代理协议。 代理服务器需要支持全双工多问多答方式,即 pipeline 模式。 代理服务器不能对80端口做限制,不能对如下域名做拦截: hdns.openspeech.cn scs.openspeech.cn open.xf-yun.com dev.voicecloud.cn 需要确保代理服务器只负责转发数据包,不能改变数据包的完整性和时序性。 代理服务器在转发数据包时,不能在HTTP协议头部添加 IE6 标识头。
#2.3.6 常用参数说明
参数名称 | 名称 | 说明 |
---|---|---|
domain | 应用领域 | 应用领域 iat:日常用语 medical:医疗 注:医疗领域若未授权无法使用,可到控制台-语音听写(流式版)-高级功能处添加试用或购买;若未授权无法使用会报错11200。 |
language | 语言区域 | 选择要使用的语言区域,目前sdk支持中文:zh_cn,英文:en_us。 |
accent | 方言 | 当前仅在LANGUAGE为简体中文时,支持方言选择,其他语言区域时, 请把此参数值设为null。默认值:中文普通话(mandarin),其他方言参数可在控制台方言一栏查看。 |
vad_bos | 前端点超时 | 开始录入音频后,音频前面部分最长静音时长 听写默认值5000ms,取值范围[1000ms,10000ms]。 |
vad_eos | 后端点超时 | 开始录入音频后,音频后面部分最长静音时长,听写默认值1800ms,取值范围[0,10000ms]。 |
sample_rate | 采样率 | 音频的采样率是音频属性的其中一个,一般来说,采样率越高音频的质量越好,识别的匹配率越高,但上传带宽消耗也越大。听写:支持采样率{8KHZ,16KHZ}。 |
nbest | 句子多侯选 | 通过设置此参数,获取在发音相似时的句子多侯选结果。设置多候选会影响性能,响应时间延迟200ms左右。取值范围:听写[1,5]。 注:该扩展功能若未授权无法使用,可到控制台-语音听写(流式版)-高级功能处免费开通;若未授权状态下设置该参数并不会报错,但不会生效。 |
wbest | 词语多侯选 | 通过设置此参数,获取在发音相似时的词语多侯选结 果。设置多候选会影响性能,响应时间延迟200ms左右。取值范围:听写[1,5]。 注:该扩展功能若未授权无法使用,可到控制台-语音听写(流式版)-高级功能处免费开通;若未授权状态下设置该参数并不会报错,但不会生效。 |
result_type | 结果类型 | 结果类型包括:xml, json, plain。xml和json即对应的结构化文本结构,plain即自然语言的文本。 |
ptt | 标点 | (仅中文支持)是否开启标点符号添加1:开启(默认值)0:关闭 ;示例:this.mParamMap.put( SpeechConstant.ASR_PTT, DefaultValue.PTT ); |
备注:以上均为SDK常用参数说明,更多详细参数请参考:MSC Java API 文档 .
#2.3.7 识别结果说明
JSON字段 | 英文全称 | 类型 | 说明 |
---|---|---|---|
sn | sentence | number | 第几句 |
ls | last sentence | boolean | 是否最后一句 |
bg | begin | number | 保留字段,无需关注 |
ed | end | number | 保留字段,无需关注 |
ws | words | array | 词 |
cw | chinese word | array | 中文分词 |
w | word | string | 单字 |
sc | score | number | 分数 |
{
"sn": 1,
"ls": true,
"bg": 0,
"ed": 0,
"ws": [
{
"bg": 0,
"cw": [
{
"w": "今天",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "的",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "天气",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "怎么样",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "。",
"sc": 0
}
]
}
]
}
{
"sn": 1,
"ls": false,
"bg": 0,
"ed": 0,
"ws": [
{
"bg": 0,
"cw": [
{
"w": "我想听",
"sc": 0
}
]
},
{
"bg": 0,
"cw": [
{
"w": "拉德斯基进行曲",
"sc": 0
},
{
"w": "拉得斯进行曲",
"sc": 0
}
]
}
]
}
#3、常见问题
#集成语音识别功能时,程序启动后没反应
答:请检查是否忘记使用SpeechUtility初始化。 也可以在听写监听器的onError函数中打印错误信息,根据信息提示,查找错误源。
#SDK是否支持本地语音能力?
答:Java平台暂时不支持本地能力。
#java SDK是否支持macOS系统?
答:不支持。
#如何设置语音云服务URL?
答:在createUtility接口中添加:server_url = http://YourDomainName/msp.do (YourDomainName是指语音云服务域名,请开发者自行替换) 例如:SpeechUtility.createUtility(SpeechConstant.APPID + "=12345678" + "," + "server_url = http://sdk.openspeech.cn/msp.do"); 注意:各参数间,以英文逗号分隔。 接口原型: public static SpeechUtility createUtility(java.lang.String params)
#SDK形式是否支持多路并发?
答:sdk:客户端解决方案,支持Android、ios、windows、linux、Java平台,不支持并发; webapi:服务端解决方案,不限制平台、不限制语言,支持并发。
#如何设置识别业务所需的额外参数(其它业务类似)?
答:如要设置参数,各类参数设置参考《MSC Reference Manual》 SpeechConstant类
#获取到语音听写结果为空或错误内容或者内容不全的原因是什么?
答:原因可能是:
1、音频格式不正确,客户端支持的音频编解码算法只支持16位Intel PCM格式的音频,请使用Cool Edit Pro工具(网页搜索下载即可)查看音频格式,sdk目前支持的格式是 pcm 和 wav 格式、音频采样率要是 16k 或者 8k、采样精度16 位、单声道音频。请使用cool edit软件(网页搜索下载此软件即可)查看音频格式是否满足相应的识别引擎类型
2、引擎的参数设置不正确,如没有设置好正确的引擎类型和采样率等。
3、音频中间有静音或者杂音音频超过了后端点(默认为2000ms)的设置,此时请使用Cool Edit Pro工具查看音频内容,并且设置后端点(vad_eos)为最大值10000ms
包含超过后端点最大值的静音或者杂音音频识别不完整是正常的。
#语音听写支持识别多长时间的音频,支持的音频格式是什么?
答:语音听写的功能是可以识别60S以内的短音频,将音频转化成文本信息。
听写sdk目前支持的格式是 pcm 和 wav 格式、音频采样率要是 16k 或者 8k、采样精度16 位、单声道音频。请使用cool edit软件(网页搜索下载此软件即可)查看音频格式是否满足相应的识别引擎类型,否则识别为空或者识别为错误文本,格式必须正确,除上述格式均不识别,音频格式一定要满足要求。现语音听写WebAPI接口的中文普通话和英文支持mp3格式,如有需要,请参考语音听写(流式版)WebAPI
具体可以参考:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=7051
另外我们识别的音频长度最大为 60S,在使用音频是要注意你的本地音频的参数要和代码里的读取音频参数保持一致
#Java听写sdk如何下载?
答:文档中心---快速指引 有介绍步骤---根据步骤下载Java在线听写sdk
#更多Java问题,请见论坛帖子
SDK常见问题:Java SDK 常见问题解答