单词
该文档是开发者在产品功能集成阶段 使用的单词跟读题型的语音评测技术文档
对英文单词、词组进行打分,可精确到每个音素的得分。
支持自定义发音进行评分;支持音节重音检测;支持英美式发音区分;
反馈维度包含单词总分,重音判断,音素得分。
评测请求参数
字段 | 类型 | 可选 | 说明 |
coreType | string | 必选 | en.word.score表示英文单词评测 |
refText | string | 必选 | 评分参考文本,支持单词、词组 |
attachAudioUrl | int | 可选 | 评测结果中是否返回音频url |
rank | int | 可选 | 评分分制,这个值可以任意设置,最终会根据与100的比例重新计算 |
symbol | int | 可选 | 是否显示标点符号。 |
precision | double | 可选 | 设置打分精度,只支持0.1、0.5或者1,默认值为1(如果设置的值不是0.1或0.5则按1处理) |
typeThres | int | 可选 | 打分松紧度(分数越高影响越小):1表示严格,2表示宽松,3表示非常严格,4非常宽松,0为默认值(不启用此功能) |
phdet | int | 可选 | 音素检错,1表示使用此功能,默认为0,不启动; |
syldet | int | 可选 | 音节检错,1表示使用此功能,默认为0,不启动 |
feedback | int | 可选 | 1:表示开启实时反馈功能(实时反馈当前读的音频对应的文本位置信息) |
accent | string | 可选 | "accent":"en" 表示指定英式发音评测 |
参数示例
{
"coreType":"en.word.score",
"refText":"classical",
"attachAudioUrl": 1,
"rank":100,
"precision":0.5
}返回结果示例
{
"applicationId":"axxx",
"audioUrl": "http:\/\/xxx.xxx.ssapi.cn:8080\/axxx\/11ebeeb24003be329ce2a1xxxxxxxx", //用户音频下载地址
"recordId":"5af5686d28c338cdad00606b", //数据在云端的唯一标识,请保存到产品数据库,方便排查问题
"dtLastResponse":"2018-05-11 17:54:56:309", //返回数据时间
"result":{
"forceout":0,
"pron":77,
"version":"0.0.80.2018.5.9.10:53:11",
"rank":100, //分制,100表示百分制,10表示10分制。。。
"pretime":143, //云端调用Start接口本身耗时,单位ms
"delaytime":58, //云端从feed音频结束到获取结果的耗时,单位ms
"overall":77, //发音综合得分
"info":{
"volume":81,
"clip":0,
"snr":20.770369,
"tipId":0 //音频质量代码
},
"wavetime":2990, //音频文件时长
"systime":3243, //云端评测计算的时长
"details":[
{
"dur":930, //单词发音时间,单位ms
"phone":[ //单词的音素组合
{
"char":"k", //这里返回的是音素,不是国际音素,如果产品需要使用,需要转换成国际音素
"pherr":0, //检测音素是否有错(0、1),请求时设置phdet才输出此字段
"phid":"1", //音素在音标中的下标
"score":79 //音素得分
},
{
"char":"l",
"pherr":0,
"phid":"2",
"score":77
},
{
"char":"ae",
"pherr":0,
"phid":"3",
"score":75
},
{
"char":"s",
"pherr":0,
"phid":"4_5",
"score":77
},
{
"char":"ih",
"pherr":0,
"phid":"6",
"score":75
},
{
"char":"k",
"pherr":0,
"phid":"7",
"score":79
},
{
"char":"l",
"pherr":0,
"phid":"9",
"score":80
}
],
"end":1770, //单词在音频中的结束时间,单位ms
"char":"classical",
"stress":[ //重音发音
{
"char":"k_l_ae", //音节
"ref":1, //标识当前音节是否需要重读, 1表示需要重读,0不需要重读
"score":0
},
{
"char":"s_ih",
"ref":0,
"score":1
},
{
"char":"k_l",
"ref":0,
"score":0
}
],
"start":840, //单词在音频中的开始时间,单位ms
"score":77 //单个单词发音得分,
}
],
"precision":0.5,
"res":"eng.wrd.online.0.2"
},
"eof":1,
"params":{
"app":{
"timestamp":"1526032357",
"sig":"6cc2b777cf134afa191de8932826eabce58db24b",
"applicationId":"aXXX", //产品的appkey
"clientId":"",
"userId":"ssound_text", //产品自定义字符串, 建议每个用户的userid不同,方便定位问题
"connect_id":"5af567cb000df30000060004"
},
"request":{ //请求评分的参数节点
"coreType":"en.word.score", //题型类型
"phdet":1, //音素检错,1表示使用此功能,默认为0,不启动;只能设置0和1
"refText":"classical", //文本内容
"precision":0.5, //评分精度
"request_id":"5af567e5000df30000120001",
"syldet":1,
"attachAudioUrl":1, //评测结果中是否返回音频url ; 0: 不返回 ; 1: 返回
"rank":100 //分制,默认是100表示百分制,这个值可以任意设置,最终会根据与100的比例重新计算
},
"audio":{ //请求评分的音频格式参数
"sampleRate":16000, //采样率
"channel":1, //声道,1是单声道,2是双声道。评测仅支持单声道
"sampleBytes":2,
"audioType":"ogg" //音频类型
}
},
"refText":"classical"
}返回结果说明
键 | 类型 | 说明 | 使用建议 |
recordId | string | 音频文件的唯一标识 | 可供参考 |
tokenId | string | 用户请求的唯一标识 | 可供参考 |
audioUrl | string | 用户音频下载地址: | 可供参考 |
applicationId | string | 授权账号,提供的评测Appkey | 内部参数 |
dtLastResponse | string | 云端响应的时间点 | 内部参数 |
eof | int | 实时反馈标识:0表示返回未结束,后续还有其它的返回结果 | 内部参数 |
refText | string | 评测文本 | 可供参考 |
params | object | 回显客户端传入的评测请求参数 | |
- app | object | ||
- - applicationId | string | 授权账号,提供的评测Appkey | |
- - userId | string | 用户标识 | |
- - timestamp | string | start时间 | |
- - sig | string | 校验码 | |
- request | object | 请求评分的参数设置节点 | |
- audio | object | 请求评分的音频参数设置节点 | |
result | object | 评测结果 | |
- version | string | 引擎的版本,包含发布时间 | 内部参数 |
- rank | int | 评分分制 | 内部参数 |
- precision | float | 评分精度 | 内部参数 |
- res | string | 评测本题型时,使用的资源名称 | 内部参数 |
- forceout | int | 内部参数 | |
- pretime | int | 云端调用Start接口本身耗时,单位ms | 内部参数 |
- systime | int | 评测整个过程的总耗时,单位ms | 内部参数 |
- delaytime | int | 云端从feed音频结束到获取结果的耗时,单位ms | 内部参数 |
- wavetime | int | 音频时长,单位ms | 可供参考 |
- overall | float | 总分 | 建议字段 |
- pron | float | 发音分 | 内部参数 |
- details | array | ||
- - start | int | 单词在音频中的起始时间,单位ms | 可供参考 |
- - end | int | 单词在音频中的结束时间,单位ms | 可供参考 |
- - dur | int | 单词发音时间,单位ms | 可供参考 |
- - char | string | 单词文本 | 可供参考 |
- - score | int | 单词得分 | 可供参考 |
- - fake_pron | int | 单词不在词典(集外词),才会输出此字段。如果需要对集外词进行评测,可以通过refText传音标的方式进行评测。 | |
- - accent | string | 英、美式反馈,请求参数中配置accent时不返回此字段,否则返回此字段"accent":"ea" | |
- - dp_type | int | 单词正常朗读(不输出dp type字段)、漏读(1)、重复读(2) | |
- - syllable | array | 音节检错 | |
- - - char | string | 音节发音 | 可供参考 |
- - - score | int | 音节发音分(0-100) | 可供参考 |
- - - start | int | 音节在单词中的起始时间,单位ms | 可供参考 |
- - - end | int | 音节在单词中的结束时间,单位ms | 可供参考 |
- - stress | array | 重音发音 | |
- - - char | string | 音素 | 可供参考 |
- - - ref | int | 标识当前音节是否需要重读 1表示需要重读,0不需要重读 | |
- - - score | int | 重音得分(0、1) | |
- - phone | array | 音素级评分结果 | |
- - - char | string | 音素 (当请求参数中设置accent时此字段为标准的英美式音素,否则为内部映射音素) | 可供参考 |
- - - score | int | 音素得分(0-100) | 可供参考 |
- - - phid | int | 音素在单词音标中的位置 只有设置phdet才输出此字段 | |
- - - pherr | int | 检测音素是否有错(0、1) | |
- - - ph2alpha | string | 当前音素对应的单词中的字母(客户无须通过phid自己计算) | |
- realtime_details | object | 实时反馈信息 | |
-- char | string | 单词 | 可供参考 |
-- dp_type | int | 0:表示正常读 | 可供参考 |
- info | object | ||
- - snr | float | 信噪比,值越高越清晰,范围(0~40dB) | 可供参考 |
- - clip | float | 音频声音太高,出现截幅,范围(0~1)。 | 内部参数 |
- - volume | int | 录音音量,范围(0~180dB) | 可供参考 |
- - tipId | int | 音频质量 | 建议字段 |
评测结果建议展现维度
维度 | 说明 | 详细 |
overall | 单词总分 | 对单词的整体评价 |
score | 发音得分 | 单词准确度得分 |
details.stress.score | 单词重读得分 | 对单词中具体某个重读发音的评价。获取之前要进行非空判断 |
details.phone.score | 音素得分 | 对单词中具体某个音素发音的评价。获取之前要进行非空判断 |
details.dp_type | 单词的增漏读 | 表示单词是否重读/漏读(参考对应题型的返回说明) |
details.fake_pron | 伪造发音 | 表示单词是否在词典中,如果不在词典中,会为单词预测发音 |
评测失败时的返回结果
如果返回的评测结果中result结构为空,说明评测失败。
通过返回结果可以获取 errId 和 error,产品端可以根据相应错误码做续判断和处理。
错误码
错误码参考:评测错误码