# 中英文语音评测
iFLYOS 语音评测通过智能语音技术自动对发音水平进行评价,支持:中文普通话发音水平自动评测、美式英语发音水平自动评测。
注意
- 不支持自由说模式,评测请求时指定试题文本和题型。
- 该能力为付费能力,若需使用,请联系商务。
# 请求说明
# 请求示例
{
"iflyos_header": {...},
"iflyos_context": {...},
"iflyos_request": {
"header": {
"name": "recognizer.audio_in",
"request_id": "xxxxxxxx"
},
"payload": {
"enable_vad": true,
"vad_eos": 500,
"profile": "EVALUATE",
"format": "AUDIO_L16_RATE_16000_CHANNELS_1",
"evaluate": {
"language": "en_us",
"category": "read_word",
"text": "[word]\nwelcome"
}
}
}
}
# 请求参数说明
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
iflyos_header | Object | 构建的通用 iflyos_header | 是 |
iflyos_context | Object | 构建的通用 iflyos_context | 是 |
enable_vad | Bool | 是否使用云端VAD来自动结束录音,默认为true; 当该参数为true时,设备会收到 recognizer.stop_capture 指令。若不使用云端VAD,设备可通过设备端VAD或按钮来结束录音。评测类型为read_chapter 时,不建议开启云端VAD。 | 否 |
vad_eos | Int | vad后端点时长,单位为毫秒。若该字段不出现,则视为使用默认eos。若要使用该字段,语音评测业务时,read_syllable ,read_word ,read_sentence 建议使用300ms。read_chapter 建议使用1000ms。 | 否 |
profile | String | 取值为EVALUATE | 是 |
format | String | 音频编码类型,取值见下表 | 是 |
evaluate | Object | 语音评测信息。当profile 取值为EVALUATE 时,该项才需要出现。若该项出现,以下信息均必填 | 否 |
evaluate.language | String | 评测语言,取值:en_us(美式英文),zh_cn(中文) | 是 |
evaluate.category | String | 评测题型,取值见下表。 | 是 |
evaluate.text | String | 评测题目文本,写法样例请点击 | 是 |
format
取值iFLYOS 支持识别 16-bit 位深度、16000Hz 采样率、单声道的音频。具体支持的编码如下:
format 说明 建议帧大小 AUDIO_L16_RATE_16000_CHANNELS_1 PCM,Little-Endian 640字节 OPUS OPUS 压缩,32000bps 固定比特率 (CBR),VOIP 模式 96字节 SPEEX_WB_QUALITY_9 SPEEX 压缩,宽带 (wideband),Quality 9 86字节 evaluate.category
取值category
取值含义 备注 内容支持 read_chapter 篇章朗读 仅英文可用 300个英文字符以内 read_sentence 句子朗读 中英文可用 一句话,英文建议100个字符以内,中文建议30个字符以内 read_word 词语朗读 中英文可用 词语,不支持标点符号 read_syllable 单字朗读 仅中文可用 单字,不支持标点符号 read_choice 口语练习 仅英文可用 一句话,英文建议100个字符以内
# 试题text格式
# 朗读试题text格式
# 试题填写要求
- 中文试题支持两种格式:
- 拼音标注的试卷。
- 用拼音后加数字1-5代表声调,5代表轻声。如:讯<xun4>,怎么<me5>。
- ü除了lü和nü用lv和nv表示,其他用u表示。如:女<nv3>,局<ju2>。
- üe用ue表示,如:略(lue4)。
- 纯文本试卷
- 拼音标注的试卷。
read_word
试题需要在开头加上[word]\n
标记。- 若有多组试题,用
\n
分隔。 - 中文试题最多支持180个字符,英文试题最多支持300个字符。
- text字段支持以下英文半角符号。
序号 | 英文半角字符 | 含义 | 序号 | 英文半角字符 | 含义 |
---|---|---|---|---|---|
1 | 英文字母 | 26个英文字母 | 10 | \x0D | 回车 |
2 | 数字 | 0-9数字 | 11 | \r | 回车 |
3 | " | 双引号 | 12 | ; | 分号 |
4 | ' | 单引号 | 13 | - | 减号(连字符) |
5 | , | 逗号 | 14 | ¦ | 竖线(停顿标记) |
6 | . | 句号 | 15 | : | 冒号 |
7 | ! | 感叹号 | 16 | \x0A | 换行 |
8 | ? | 问号 | 17 | \n | 换行 |
9 | 空格 | 空格 | 18 | \t | TAB |
# 中文句子示例
{
"text": "南京市长<zhang3>江大桥在重阳节拜访了市敬老院,为老人们送去节日的问候和礼品。",
}
# 中文词语示例
{
"text": "[word]\n欢迎\n讯飞"
}
# 中文单字示例
{
"text": "讯\n飞"
}
注意
若使用<zhang3>
的方式进行标记,有标记的字数不得超过所有内容的三分之一
如:
- 南京市长<zhang3>,可以评测。
- 副市长<zhang3>,评测会报错。
- 市长<zhang3>,评测会报错。
# 英文篇章示例
{
"text": "When I read the news, I am always inspired by the famous great persons, such as Bill Gates and Steve Jobs. Their stories guide the young people how to get successful. They tell us to do what we like and the most important thing is to keep moving on, no matter what kind of difficulty we meet.",
}
# 英文句子示例
{
"text": "what's the weather today?",
}
# 英文单词示例
{
"text": "[word]\nwelcome\niflytek",
}
# 口语试题text格式
# 试题填写要求
- 必要节点:[choice]、[keywords],注意使用换行符进行分隔。
- 采用英文半角字符,.!?;五个进行分句。
- 各选项序号要连续,且序号和内容之间以“序号+点号+空格+内容”方式书写。
- 任一选项需一行显示,倘若某一选项内容手动换行(系统自动换行除外),导致第二行无序号,则报错。
- 每个choice选项文本前面,中间不要出现( ) [ 这三个字符,会报错。
- 每个choice选项文本末尾 可以 出现一个(或者),不能出现多个( 或者 )。
- 如果要在每个choice选项内容中加入全角字符, 确保其占每个choice节点内容字节数的大小不能超过10%。
- 如果要在每个choice选项中输入不支持字符,确保其占每个choice节点内容字节数的大小不能超过10%,常见不支持字符有:@ , # , $ , % , ^, & , * , + , = , { , }。
- 每个choice选项除符号外单词数量不可以超过100。
- 若无特殊需求,禁止在每个choice选项内容中加入任何与内容无关的字符,包括序号,数字,任意字符等,上述操作会对标注及评分产生影响。
{
"text": "[choice]\n1. blue.\n2. It is blue.\n3. Blue is the color.\n4. The color is blue.\n5. My ruler is blue.\n6. It is a blue one.\n[keywords]\nblue",
}
注意
试题格式的是否标准对引擎效果影响非常大,请严格按照试题格式填写试题,否则会出现乱说、乱读得高分的情况。
# 获取试题text
# 题目难度
接口地址:
GET https://api.iflyos.cn/external/ocr/evaluate/levels
请求headers:
Authorization: Bearer {token}
返回示例:
{
"levels": [
{
"level_id": "1",
"title": "初级"
},
{
"level_id": "2",
"title": "中级"
},
{
"level_id": "3",
"title": "高级"
}
]
}
参数 | 类型 | 说明 |
---|---|---|
level_id | String | 难度ID |
title | String | 英文单词类型固定为【en_word】 |
# 获取随机题目
接口地址:
GET https://api.iflyos.cn/external/ocr/evaluate/get_question
请求headers:
Authorization: Bearer {token}
请求参数:
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
level_id | String | 难度ID | 是 |
返回示例:
{
"question": {
"keyword": "blue.",
"answers": [
"blue.",
"It is blue.",
"Blue is the color.",
"The color is blue.",
"My ruler is blue.",
"It is a blue one."
],
"audio_url": "https://etbox.oss-accelerate.aliyuncs.com/sourceaudio/se/102243ques1askaudio.wav",
"id": 865,
"text": ""
}
}
参数 | 类型 | 说明 |
---|---|---|
keyword | String | 题目答案关键字,需作为试题格式中keword字段。 |
answers | String | 题目相关答案,需作为试题格式中choice字段。 |
audio_url | String | 题目音频url |
text | String | 问题文本,可能为空 |
# 返回说明
# 返回示例
{
"iflyos_responses": [
...,
{
"header": {br
"name": "recognizer.evaluate_result"
},
"payload": {
"code": 0,
"description": "xxxx",
"sid": "xxxxxxx",
"data": {...}
}
}
]
}
# 返回参数说明
参数 | 类型 | 说明 | 必有 |
---|---|---|---|
code | Int | 请求结果代码,0代表成功。错误码查询 (opens new window) | 是 |
description | String | 失败原因说明,如果code 取值为0,该项为null。 | 是 |
sid | String | 语音评测请求的唯一标识 | 是 |
data | Object | 语音评测请求的结果 | 是 |
# 评测data
说明
# 通用字段取值
dp_message
取值说明
取值 | 含义 | 说明 |
---|---|---|
0 | 正常 | 引擎认为该单元读了,但不一定朗读正确 |
16 | 漏读 | 该单元没有读 |
32 | 增读 | 该单元是多读的文本内的内容 |
64 | 回读 | 该单元是重复读的相邻文本的内容 |
128 | 替换 | 该单元读成文本内其他的内容 |
except_info
取值说明
取值 | 说明 |
---|---|
0 | 无异常 |
28673 | 无语音输入或音量太小 |
28676 | 检测到语音为乱说类型 |
28680 | 音频数据信噪比太低,音噪比在1.7以下 |
28709 | 音频数据信噪比太低,音噪比在0.7以下 |
28690 | 音频数据出现截幅 |
评分维度说明
题型 | 中文默认 | 中文全维度 | 英文默认 | 英文全维度 |
---|---|---|---|---|
read_syllabel | 综合得分total_score | 综合得分total_score 声韵分phone_score 调型分tone_score | - | - |
read_word | 综合得分total_score | 综合得分total_score 声韵分phone_score 调型分tone_score | 综合得分total_score 音节得分syll_score | 综合得分total_score 音节得分syll_score 准确度分accuracy_score |
read_sentence | 综合得分total_score | 综合得分total_score 完整度分integrity_score 流畅度分fluency_score 声韵分phone_score 调型分tone_score | 综合得分total_score 音节得分syll_score | 综合得分total_score 音节得分syll_score 完整度分integrity_score 流畅度分fluency_score 准确度分accuracy_score |
read_chapter | - | - | 综合得分total_score 音节得分syll_score | 综合得分total_score 音节得分syll_score 完整度分integrity_score 流畅度分fluency_score 准确度分accuracy_score |
# 中文句子示例
{
"data": {
"version": "6,5,0,1036",
"type": "study",
"language": "zh_cn",
"read_sentence": {
"content": "打开三十六氪快讯。",
"phone_score": 84.45,
"integrity_score": 84.45,
"fluency_score": 84.45,
"tone_score": 84.45,
"total_score": 84.45,
"sentences": [
{
"content": "打开三十六氪快讯",
"phone_score": 84.45,
"fluency_score": 84.45,
"tone_score": 84.45,
"total_score": 84.45,
"words": [
{
"symbol": "da3kai1",
"content": "打开",
"syllables": [
{
"symbol": "da3",
"dp_message": "0",
"content": "打"
},
{...}
]
},
{...}
],
},
{...}
]
}
}
}
参数 | 类型 | 说明 |
---|---|---|
version | String | 评测引擎版本 |
type | String | 评测类型,固定取值为study |
language | String | 评测语言,取值:zh_cn (中文),en_us (英文) |
read_sentence | Object | 本次评测的各项得分 |
read_sentence
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
phone_score | Int | 中文声韵得分,百分制 |
integrity_score | Int | 中文完整度得分,百分制 |
fluency_score | Int | 中文流畅度得分,百分制 |
tone_score | Int | 中文声调得分,百分制 |
total_score | Int | 中文评测总分,百分制 |
sentences | List | 评测引擎分析出的句子信息 |
sentences
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
phone_score | Int | 中文声韵得分,百分制 |
fluency_score | Int | 中文流畅度得分,百分制 |
tone_score | Int | 中文声调得分,百分制 |
total_score | Int | 中文评测总分,百分制 |
words | List | 评测引擎分析出的词语信息 |
words
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbol | String | 拼音,数字代表声调,5和5以上表示轻声 |
content | String | 评测的实体内容 |
syllables | List | 评测引擎分析出的单字信息 |
syllables
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbol | String | 拼音,数字代表声调,5和5以上表示轻声 |
content | String | 评测的实体内容 |
dp_message | String | 增漏读信息,取值见通用字段取值 |
# 中文词语示例
{
"data": {
"version": "6,5,0,1036",
"type": "study",
"language": "zh_cn",
"read_word": {
"content": "打开。三十六。氪。快讯。",
"phone_score": 84.45,
"tone_score": 84.45,
"total_score": 50,
"sentences": [
{
"content": "打开",
"word": {
"symbol": "da3kai1",
"content": "打开",
"syllables": [
{
"symbol": "da3",
"dp_message": "0",
"content": "打"
},
{...}
]
}
},
{...}
]
}
}
}
参数 | 类型 | 说明 |
---|---|---|
version | String | 评测引擎版本 |
type | String | 评测类型,固定取值为study |
language | String | 评测语言,取值:zh_cn (中文),en_us (英文) |
read_word | Object | 本次评测的各项得分 |
read_word
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
phone_score | Int | 中文声韵得分,百分制 |
tone_score | Int | 中文声调得分,百分制 |
total_score | Int | 中文评测总分,百分制 |
sentences | List | 评测引擎分析出的句子信息 |
sentences
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word | Object | 评测引擎分析出的词语信息 |
word
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbol | String | 拼音,数字代表声调,5和5以上表示轻声 |
content | String | 评测的实体内容 |
syllables | List | 评测引擎分析出的单字信息 |
syllables
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbol | String | 拼音,数字代表声调,5和5以上表示轻声 |
content | String | 评测的实体内容 |
dp_message | String | 增漏读信息,取值见通用字段取值 |
# 中文单字示例
{
"data": {
"version": "6,5,0,1036",
"type": "study",
"language": "zh_cn",
"read_syllable": {
"phone_score": 84.45,
"tone_score": 84.45,
"content": "打开",
"sentences": [
{
"content": "打开",
"word": {
"symbol": "da3kai1",
"content": "打开",
"syllables": [
{
"symbol": "da3",
"dp_message": "16",
"content": "打"
},
{...}
],
},
},
{...}
],
},
},
}
参数 | 类型 | 说明 |
---|---|---|
version | String | 评测引擎版本 |
type | String | 评测类型,固定取值为study |
language | String | 评测语言,取值:zh_cn (中文),en_us (英文) |
read_syllable | Object | 本次评测的各项得分 |
read_word
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
phone_score | Int | 中文声韵得分,百分制 |
tone_score | Int | 中文声调得分,百分制 |
sentences | List | 评测引擎分析出的句子信息 |
sentences
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word | Object | 评测引擎分析出的词语信息 |
word
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbol | String | 拼音,数字代表声调,5和5以上表示轻声 |
content | String | 评测的实体内容 |
syllables | List | 评测引擎分析出的单字信息 |
syllables
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbol | String | 拼音,数字代表声调,5和5以上表示轻声 |
content | String | 评测的实体内容 |
dp_message | String | 增漏读信息,取值见通用字段取值 |
# 英文篇章示例
{
"data": {
"version": "7.0.0.1008",
"type": "study",
"language": "en_us",
"read_chapter": {
"content": "dark sans nuke crashing",
"word_count": 4,
"is_rejected": false,
"reject_type": "0",
"except_info": "0",
"total_score": 0,
"integrity_score": 100,
"fluency_score": 0,
"accuracy_score": 0,
"syll_score": 0,
"sentences": [
{
"content": "dark sans nuke crashing",
"word_count": 4,
"index": 0,
"total_score": 0,
"standard_score": 0,
"fluency_score": 0,
"accuracy_score": 0,
"words": [
{
"content": "dark",
"index": 0,
"total_score": 0,
"global_index": 0,
"dp_message": "0",
},
{...}
]
},
{...}
]
}
}
}
参数 | 类型 | 说明 |
---|---|---|
version | String | 评测引擎版本 |
type | String | 评测类型,固定取值为study |
language | String | 评测语言,取值:zh_cn (中文),en_us (英文) |
read_chapter | Object | 本次评测的各项得分 |
read_chapter
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word_count | Int | 单词数量 |
is_rejected | Boolean | 请求是否被拒绝,true代表被拒绝,表明评测引擎检测到乱读 |
reject_type | String | 被拒绝类型 |
except_info | String | 异常信息,取值见通用字段取值 |
total_score | Int | 中文评测总分,百分制 |
syll_score | Int | 音节得分,百分制。 |
integrity_score | Int | 完整度得分,百分制。 |
fluency_score | Int | 流畅度得分,百分制。 |
accuracy_score | Int | 准确度得分,百分制 |
sentences | List | 评测引擎分析出的句子信息 |
sentences
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word_count | Int | 单词数量 |
index | Int | 句子在全篇中的位置索引 |
fluency_score | Int | 中文流畅度得分,百分制 |
total_score | Int | 中文评测总分,百分制 |
standard_score | Int | 标准度得分,评测发音是否地道,百分制。 |
fluency_score | Int | 流畅度得分,百分制。 |
accuracy_score | Int | 准确度得分,百分制 |
words | List | 评测引擎分析出的词语信息 |
words
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
index | Int | 单词在整句中的位置索引 |
global_index | Int | 单词在整句中的位置索引 |
total_score | Int | 中文评测总分,百分制 |
dp_message | String | 增漏读信息,取值见通用字段取值 |
# 英文句子示例
{
"data": {
"version": "7.0.0.1008",
"type": "study",
"language": "en_us",
"read_chapter": {
"content": "dark sans nuke crashing",
"word_count": 4,
"is_rejected": false,
"except_info": "0",
"total_score": 82.18,
"integrity_score": 100,
"fluency_score": 0,
"accuracy_score": 0,
"syll_score": 0,
"sentences": [
{
"content": "dark sans nuke crashing",
"word_count": 4,
"total_score": 82.18,
"index": 0,
"words": [
{
"total_score": 86.43,
"index": 0,
"global_index": 0,
"dp_message": "0",
"content": "dark"
},
{...}
]
},
{...}
]
}
}
}
参数 | 类型 | 说明 |
---|---|---|
version | String | 评测引擎版本 |
type | String | 评测类型,固定取值为study |
language | String | 评测语言,取值:zh_cn (中文),en_us (英文) |
read_chapter | Object | 本次评测的各项得分 |
read_chapter
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word_count | Int | 单词数量 |
is_rejected | Boolean | 请求是否被拒绝,true代表被拒绝,表明评测引擎检测到乱读 |
reject_type | String | 被拒绝类型 |
except_info | String | 异常信息,取值见通用字段取值 |
total_score | Int | 中文评测总分,百分制 |
syll_score | Int | 音节得分,百分制。 |
integrity_score | Int | 完整度得分,百分制。 |
fluency_score | Int | 流畅度得分,百分制。 |
accuracy_score | Int | 准确度得分,百分制 |
sentences | List | 评测引擎分析出的句子信息 |
sentences
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word_count | Int | 单词数量 |
index | Int | 句子在全篇中的位置索引 |
total_score | Int | 中文评测总分,百分制 |
words | List | 评测引擎分析出的词语信息 |
words
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
index | Int | 单词在整句中的位置索引 |
global_index | Int | 单词在整句中的位置索引 |
total_score | Int | 中文评测总分,百分制 |
dp_message | String | 增漏读信息,取值见通用字段取值 |
# 英文词语示例
{
"data": {
"version": "7.0.0.1008",
"type": "study",
"language": "en_us",
"read_word": {
"content": "dark sans nuke crashing",
"is_rejected": false,
"except_info": "28676",
"total_score": 53.14,
"accuracy_score": 0,
"syll_score": 0,
"sentences": [
{
"index": 0,
"content": "dark",
"word": {
"total_score": 42.3,
"index": 0,
"global_index": 0,
"dp_message": "0",
"content": "dark"
},
},
{...}
]
}
}
}
参数 | 类型 | 说明 |
---|---|---|
version | String | 评测引擎版本 |
type | String | 评测类型,固定取值为study |
language | String | 评测语言,取值:zh_cn (中文),en_us (英文) |
read_word | Object | 本次评测的各项得分 |
read_chapter
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
word_count | Int | 单词数量 |
is_rejected | Boolean | 请求是否被拒绝,true代表被拒绝,表明评测引擎检测到乱读 |
reject_type | String | 被拒绝类型 |
except_info | String | 异常信息,取值见通用字段取值 |
total_score | Int | 中文评测总分,百分制 |
syll_score | Int | 音节得分,百分制。 |
accuracy_score | Int | 准确度得分,百分制 |
sentences | List | 评测引擎分析出的句子信息 |
sentences
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
index | Int | 句子在全篇中的位置索引 |
word | List | 评测引擎分析出的词语信息 |
word
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 评测的实体内容 |
index | Int | 单词在整句中的位置索引 |
global_index | Int | 单词在整句中的位置索引 |
total_score | Int | 中文评测总分,百分制 |
dp_message | String | 增漏读信息,取值见通用字段取值 |
# 口语练习示例
{
"iflyos_meta": {
"is_last": true,
"trace_id": "19919627a9ac3ba1f14f6a1e22c5d584",
"request_id": "manual-a5a51e7a-76d0-45e1-bcde-656e038a593b"
},
"iflyos_responses": [
{
"header": {
"name": "recognizer.evaluate_result"
},
"payload": {
"sid": "ise000ed023@dx17fcf22af047612812",
"description": null,
"data": {
"version": "7.0.0.1008",
"type": "study",
"simple_expression": {
"total_score": 83.75,
"sentence": {
"word": [
{
"end_pos": "19",
"content": "do",
"beg_pos": "2"
},
{
"end_pos": "34",
"content": "her",
"beg_pos": "19"
},
{
"end_pos": "85",
"content": "homework",
"beg_pos": "34"
}
],
"index": "0",
"content": "do her homework"
},
"reject_type": "0",
"phone_score": "5.000000",
"is_rejected": "false",
"except_info": "0",
"end_pos": "118",
"content": "rec_paper",
"beg_pos": "0"
},
"read_choice": { //兼容旧设备字段,新设备接入无需关注。
"total_score": 83.75,
"sentence": {
"word": [
{
"end_pos": "19",
"content": "do",
"beg_pos": "2"
},
{
"end_pos": "34",
"content": "her",
"beg_pos": "19"
},
{
"end_pos": "85",
"content": "homework",
"beg_pos": "34"
}
],
"index": "0",
"content": "do her homework"
},
"reject_type": "0",
"phone_score": "5.000000",
"is_rejected": "false",
"except_info": "0",
"end_pos": "118",
"content": "rec_paper",
"beg_pos": "0"
},
"language": "en_us"
},
"code": 0
}
}
]
}
说明
read_choice
为兼容旧设备字段,新设备接入只需关注simple_expression
字段内参数即可。
参数 | 说明 |
---|---|
version | 评测引擎版本 |
type | 评测类型,固定取值为study |
total_score | 评测总分,0~100分区间 |
phone_score | 发音准确度评分 |
content | 朗读识别内容 |
beg_pos | 朗读开始时间 |
end_pos | 朗读结束时间 |
is_rejected(部分评测题型无此字段返回) | true:被拒,表明引擎检测到乱读,分值不能作为参考 false:正常 |
except_info | except_info=28673时,16进制为0x7001,表示引擎判断该语音为无语音或音量小类型 except_info=28676时,16进制为0x7004,表示引擎判断该语音为乱说类型 except_info=28680时,16进制为0x7008,表示引擎判断该语音为信噪比低类型 except_info=28690时,16进制为0x7012,表示引擎判断该语音为截幅类型 except_info=28689时,16进制为0x7011,表示引擎判断没有音频输入,请检测音频或录音设备是否正常 |
index | 句子索引 |
word.beg_pos | 单词开始边界时间 |
word.content | 单词内容 |
word.end_pos | 单词结束边界时间 |
# 错误码
错误码 | 错误码描述 |
---|---|
10163 | 参数校验失败,由客户端参数校验失败引起,客户端需要依据返回的 |
10313 | 请求参数 第一帧没有传app_id 或者传 的app_id 与api_key 不匹配。 |
40007 | 音频解码失败,请检查所传的音频是否与encoding字段描述的编码格式对应。 |
11201 | 接口使用量超出了购买的最大限制,请购买后继续使用。 |
10114 | 请求超时,会话时间超过了300s,请控制会话时间,保持不超过300s |
10043 | 音频解码失败,请确保所传音频编码格式与请求参数保持一致。 |
10161 | base64解码失败,检查发送的数据是否使用base64编码了 |
10200 | 读取数据超时,检查是否累计10s未发送数据并且未关闭连接 |
10160 | 请求数据格式非法,检查请求数据是否是合法的json |
11200 | 功能未授权 |
60114 | 评测音频长度过长 |
10139 | 参数错误 |
48196 | 实例禁止重复调用该接口 |
40006 | 无效参数 |
40010 | 无响应 |
40016 | 初始化失败 |
40017 | 没有初始化 |
40023 | 无效配置 |
40034 | 参数未设置 |
40037 | 无评测文本 |
40038 | 无评测语音 |
40040 | 非法数据 |
42306 | 授权数不够 |
68676 | 乱说 |
30002 | ssb没有cmd参数 |
48195 | 实例评测试卷未设置,试题格式错误,请检查评测文本是否与试题匹配,特别是英文题型需要在试题中加特殊标记、未设置ent、category等参数等 |
30011 | sid为空,如上传音频未设置aus |
68675 | 不正常的语音数据,请检查是否为16k、16bit、单声道音频,并且检查aue参数值指定是否与音频类型匹配 |
48205 | 实例未评测,如没有获取到录音、上传音频为空导致的报错 |
# 常见问题
- 语音评测的评分标准是什么?
维度 成人占比 小学生占比 A(9-10分) 准确度 50% 60% 单词发音准确清晰 流畅度 30% 30% 朗读流利,语速正常,基本不出现停顿、重复、自我更正等表现 标准度(包含情感) 20% 10% 发音习惯符合英语母语标准(无中式口音),能灵活地运用连读、重读、失音、爆破等发音技巧,节奏良好,感情充沛
- 语音评测最多支持多长时间的语音输入?
答:对于所有评测题型,都只支持最长3分钟的语音输入。
- 语音评测支持的音频有什么要求?
答:音频采样率要是 16k、采样精度16 位、单声道音频。样例音频请参照java demo中提供的音频
- 乱说、乱读得高分的问题怎么解决?
答:
- 若出现乱说、乱读得高分的情况,请先检查是否按照文档试题标准请求服务,试题格式的是否标准对引擎效果影响非常大。
- 评测结果中会给出 is_rejected 字段,当字段值为 true 时,说明此时是用户乱说导致的拒识,开发者可根据这个字段判断此次用户是否为乱说。 如果引擎报出乱说,那么就可以认为评分已经不可信。可根据except_info属性值初步判断乱读的原因.
- 相似音的效果不准为已知问题(如答案fish,回答english,服务存在一定概率返回高分)。