- ···
- 产品服务
- ···
- 解决方案
- ···
- 文档中心
- ···
# 一、接口说明
基于语音识别和评价技术对发音做客观打分,反馈发音正误和定位问题,有助于语音教学,发音练习,也可测试考生的口语水平。
# 二、接口Demo
Java示例demo (opens new window)
python3示例demo (opens new window)
js示例demo (opens new window)
# 三、接口要求
集成API时,需按照以下要求:
内容 | 说明 |
---|---|
请求协议 | ws[s](为提高安全性,强烈推荐wss) |
请求地址 | 英文:ws://ws-edu.hivoice.cn:8081/ws/eval/或wss://wss-edu.hivoice.cn:443/ws/eval/ 中文:ws://wscn-edu.hivoice.cn:18081/ws/eval/或wss://wsscn-edu.hivoice.cn/ws/eval/ |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向服务发起Websocket请求的均可 |
操作系统 | 任意 |
音频属性 | 采样率16K,比特率16bit、单声道 |
音频格式 | mp3,wxspeex 或pcm,推荐使用mp3格式 |
评测语言 | 中文/英文 |
# 四、接口调用流程
时序图
# 1.请求地址
英文
主域名:ws-edu.hivoice.cn
端口:8081
请求地址:ws://ws-edu.hivoice.cn:8081/ws/eval/或wss://wss-edu.hivoice.cn:443/ws/eval/
中文
主域名:wscn-edu.hivoice.cn
端口:18081
请求地址:ws://wscn-edu.hivoice.cn:18081/ws/eval/或wss://wsscn-edu.hivoice.cn/ws/eval/
# 2.英文API
# 普通评测
{
"mode": "word",
"displayText": "hello world",
"appkey": "联系商务同学获取",
"scoreCoefficient": "1",
"userID": "",
"audioFormat": "opus",
"eof": "gnh-test-end"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# jsgf接口
{
"mode": "qa",
"Version": "1",
"DisplayText": "Jsgf Grammar Tool Generated",
"GrammarWeight": "{\"weight_struct\":[[{\"weight\":0.5,\"key\":\"good morning\"}]]}",
"Grammar": "#JSGF V1.0 utf-8 cn;\ngrammar main;\npublic <main> = \"<s>\"(<a>|<a> to you)\"</s>\";\n<a> = (good morning);\n",
"Appkey": "",
"scoreCoefficient": "1",
"UserID": "",
"eof": "test-end",
"audioFormat": "pcm"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 枚举接口
{
"mode": "qa",
"version": "1",
"displayText": "Enumerate Grammar Tool Generated",
"grammarWeight": "{\"weight_struct\":[[{\"weight\":0.5,\"key\":\"teacher\"}]]}",
"grammar": "#enumerate \nmy mother is a teacher\na teacher\n",
"appkey": "",
"scoreCoefficient": "1",
"userID": "",
"eof": "test-end",
"audioFormat": "pcm"
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# retell接口
{
"mode": "retell",
"Version": 1,
"EvalType": "en.exam.retell",
"DisplayText": "OralComposition Grammar Tool Generated",
"Language": "en",
"Grammar": "",
"GrammarWeight": "{\"weight_struct\":[[{\"weight\":0.5,\"key\":\"bookstore\"}]]}",
"Reference": {
"ID": "",
"answers": [
{
"type": 1,
"text": "bookstore"
},
{
"type": 1,
"text": "she is going to bookstore"
}
]
},
"Appkey": "",
"scoreCoefficient": "1",
"UserID": "",
"eof": "test-end"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
英文评测请求接口字段说明(关键字不区别大小写)
字段 | 是否必选 | 含义 | 备注 |
---|---|---|---|
mode | 必填 | 可选值为word,sent,para,qa,retell | |
displayText | 必填 | 评测文本 | |
appkey | 必填 | 秘钥信息 | AppKey@AppSecret形式,AppKey和AppSecret 请在应用详情获取 |
userID | 可选 | 用户id信息 | 建议传入,排查问题方便 |
audioFormat | 必填 | 可选值:mp3,speex 音频格式,音频16K单声道 | |
eof | 必填 | 设置eof消息包内容 | 客户端需要保证该内容的唯一性,可选用uuid |
scoreCoefficient | 可选 | 值范围:0.6-1.9 | 打分系数,调整打分的松紧度,值越大打分越宽松,默认值1.5 |
repeat | 可选 | 该字段设定多读是否扣分,默认值为0 | 值为: 0:基础得分60分以上则多读不扣分,低于60分多读扣分; 1:不论基础得分多少,多读均不扣分; 2:无论基础分是多少,多读扣分,直到扣为0分 |
# 3.中文API
# 中文评测
{
"EvalType": "sentence",
"Language":"cn",
"displayText": "你好",
"appkey": "联系商务同学获取,或是从AI开放平台创建应用获取",
"scoreCoefficient": "1",
"userID": "",
"audioFormat": "mp3",
"eof": "gnh-test-end"
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
中文评测请求接口字段说明(关键字不区别大小写)
字段 | 是否必选 | 含义 | 备注 |
---|---|---|---|
EvalType | 必填 | 可选值为word,sentence,paragraph | |
Language | 必填 | 语种,可选值为cn | |
displayText | 必填 | 评测文本 | |
appkey | 必填 | 秘钥信息 | AppKey@AppSecret形式,AppKey和AppSecret 请在应用详情获取 |
userID | 可选 | 用户id信息 | 建议传入,排查问题方便 |
audioFormat | 必填 | 可选值:mp3,speex 音频格式,音频16K单声道 | |
eof | 必填 | 设置eof消息包内容 | 客户端需要保证该内容的唯一性,可选用uuid |
scoreCoefficient | 可选 | 值范围:0.6-1.9 | 打分系数,调整打分的松紧度,值越大打分越宽松 |
# 响应接口
{
"result": {},
"area": "sh",
"time": "1551409712576231666",
"sid": "f4376e83-7ad0-4635-9812-bec949a2fa27",
"errcode": 0,
"errmsg": "ok"
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
响应接口字段说明
字段 | 含义 | 备注 |
---|---|---|
result | 评测结果 | Json字段说明 |
area | 返回实际评测的的机房区域 | |
time | 时间戳 | |
sid sessionID | 服务端返回的唯一标识 | |
errorcode | 错误码 | |
errmsg | 错误消息 |
评测返回结果中Json字段说明
名称 | 类型 | 说明 |
---|---|---|
version | string | 结果格式版本及版本号 |
lines | array | 每行输入文本的评测结果 |
EvalType | string | 评测类型:general(朗读评测)、askandanswer(情景问答)、composition(作文) |
sample | string | 输入的标准文本 |
usertext | string | 用户实际朗读的文本(语音识别结果) |
subwords | array | 包含单词的音标、开始时间、结束时间、分数、音量信息 |
begin | double | 开始时间,单位为秒 |
end | double | 开始时间,单位为秒 |
volume | double | 音量 |
score | string | 分值 |
subtext | string | 音标或重音符号信息 |
integrity | double | 录入语音的完整度 |
pronunciation | double | 录入语音的标准度 |
fluency | double | 录入语音的流利度 |
words | array | 每个词的评测结果 |
text | string | 单词或音素文本 |
type | int | 类型,共有6种类型,分别是: 0 多词:仅B,C,G模式出现,当朗读内容大于文本内容时,多余的单词type值为0;eg:文本:nice to meet you,音频:nice nice to meet you,第二个nice的type值为0; 1 漏词:所有模式都有,当朗读内容小于文本内容时,未读的单词type值为1;eg:文本:nice to meet you,音频:nice meet you,结果中to的type值为1; 2 正常词:所有模式都有,识别正常的词; 3 错误词:仅B,C,G模式出现,当朗读的文本某个单词识别成文本中其他单词时,该单词type值为3。 eg:文本:nice to meet you,音频:nice you meet you,结果中第一个you的type值为3; 4 静音:所有模式; 5 重复词:预留接口,未实现; 7 空格or标点:仅E模式,空格和标点的结构type值为7; 8 生词:所有模式 |
sentSample | array | 句式标准文本 |
sentScore | array | 句式总分 |
sentPronunciation | array | 句式标准度得分 |
sentFluency | array | 句式流利度得分 |
sentIntegrity | array | 句式完整度得分 |
keySample | array | 关键词sample(包括关键词和每个关键词的得分 |
keysScore | array | 关键词总分 |
keysPronunciation | array | 关键词标准度得分 |
keysIntegrity | array | 关键词完整度得分 |
keysFluency | array | 关键词流利度 |
standardScore | string | 客户定制,输出的分制,当前含有4分制和8分制 |
StressOfSent | string | 句子重读,每个单词都输出,0:该单词没有被重读;1:该单词被重读 |
StressOfWord | string | 单词重音,将用户发音和词典的重音位置做比较,0:该单词重音朗读错误;1:该单词重音朗读正确 |
tone | array | 输出全部信息,数据可以用于画用户的发音曲线,目前只有内部在使用 |
audiocheck | array | 音质检测结果。 volume:音量过小的置信度; clipping:截幅的置信度; noise:噪音过大的置信度; cut:截断的置信度; too short:是否音频过短; emptyAudio:是否是空音频。 备注:置信度的值为0和10,10代表可能存在该项音质问题,0代表该项检测正常 |
# 拼接评测audio url
想要获取用户录音结果,则可以根据响应接口数据拼接音频url,获取音频
"area": "sh",
"time": "1551409712576231666",
"sid": "f4376e83-7ad0-4635-9812-bec949a2fa27",
其中,sh是代表地域名称area,1551409712576231666是代表createtime; f4376e83-7ad0-4635-9812-bec949a2fa27是代表请求中传入的session-id
最后可以根据以上三个信息拼接url,固定字段http://edu.hivoice.cn:9088/WebAudio-1.0-SNAPSHOT/audio/play/{session-id}/{createtime}/{area}
以上示例,最后拼接的url是http://edu.hivoice.cn:9088/WebAudio-1.0-SNAPSHOT/audio/play/ 02055555-f4cd-4fef-8ed8-1a2089056acf/1542272221203805792/sh
如果是https协议,拼接按照 https://edu.hivoice.cn/WebAudio-1.0-SNAPSHOT/audio/play/{session-id}/{createtime}/{area}