口语评测Android SDK接入文档
文档修订记录
| 文档版本号 | 修订日期 | 修订原因 |
|---|---|---|
| V1.0 | 2022.6.21 | 创建文档 |
| V1.1 | 2022.7.8 | 去掉“获取原始音频路径”接口; ExpandParam添加outputAudio参数,支持获取原生音频 |
| V1.2 | 2022.11.3 | 增加返回参数 |
| V1.3 | 2023.1.3 | 新增V2接口 |
| V1.4 | 2023.6.20 | 新增独立生效参数接口,新增V2外部录音接口 |
概述
口语评测提供中英文的朗读发音评测,支持中英文的字、词、句、段, 并返回准确度、流畅度、完整度、声韵调型等多维度评分。
口语评测内容类型说明:中文分为汉字、句、段;英文分为单词、短语、段。
集成步骤
1. 添加依赖库
//必须依赖库
implementation 'com.google.code.gson:gson:2.6.2'
implementation 'com.squareup.okhttp3:okhttp:3.9.0'
implementation "org.java-websocket:Java-WebSocket:1.4.0"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.aliyun.dpa:oss-android-sdk:2.9.11'//SDKV2.4.1.25 以后需加入
2. AndroidManifest配置
添加权限
<!--网络-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--文件读写-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--deviceID-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--录音机-->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 读取手机状态,获取IMEI -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<!-- android 10 在application节点添加以下适配高版本 -->
android:usesCleartextTraffic="true"
android:requestLegacyExternalStorage="true"
3. 代码混淆
代码混淆文件proguard-project.txt,添加如下内容
-keep class com.turing.**{ *;}
-dontwarn com.turing.**
-keep class org.java_websocket.**{*;}
-dontwarn org.java_websocket.**
-keep class org.slf4j.**{*;}
-dontwarn org.slf4j.**
-keep class org.eclipse.** { *; }
-dontwarn org.eclipse.**
4. SDK 初始化
使用口语评测功能前调用,请先调用SDK初始化代码。(SDK初始化详情见《接入指南说明文档》)
TuringInitializer.getInstance().initV3XXX()
5. 参数配置
需要在 turing_config.json 中添加 asr节点。 (asr 节点参数值说明见《接入指南说明文档》)
示例如下:
{
"authorization": {
"apikey": "您的apikey",
"secret": "您的secret"
},
"ability": {
"asr": {
"asrSrcFormatEnum": -1,
"asrFormatEnum": 0,
"asrLanguageEnum": 0,
"asrRateEnum": 16000,
"channel": 1,
"enableITN": true,
"enablePunctuation": false,
"enableVoiceDetection": false,
"intermediateResult": true,
"maxEndSilence": 1000,
"maxStartSilence": 5000,
"vadThreshold": 0.1,
"vadReviseTime": 1200,
"vadState": false,
"interactionTime": 20,
"enableCloudVad": false,
"enableVolume": false,
"audioSource": 1,
"saveAudioPath": ""
}
}
}
6. 开启功能集成
使用说明见下面【功能集成】描述。
实例化
var turingSpeech = TuringSpeech.getInstance(this);
功能集成
口语评测模块分为两个版本:v1 和 v2 ,V2支持更长的评测时长、支持段落类型、支持流式输出评测结果;两个版本输出结果不一样,根据业务需求选择版本 。
音频来源分为:SDK 内置录音机 和 传输音频数据。
1. 口语评测 V1 版
支持评测中英文的字、词、句。V1 接口评测音频长度最大20秒。
1.1 内置录音
方法
/**
*开始口语评测,内置录音
* @param type 评测内容类型,限定为EaRequestTyptEnum,不支持段落类型
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param isAssignAsr 是否指定ASR参数,参数配置在Turing_config.json中
* @param listener TuringOSClientAsrListener
*/
void startEAWithRecorder(@EaRequestTyptEnum int type, boolean enableTts, String word,boolean isAssignAsr, TuringOSClientAsrListener listener);
/**
*开始口语评测,内置录音
* @param type 评测内容类型,限定为EaRequestTyptEnum,不支持段落类型
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param asrRequestConfig asr请求参数,详情见AsrRequestConfig参数说明
* @param listener TuringOSClientAsrListener
*/
void startEAWithRecorder(@EaRequestTyptEnum int type, boolean enableTts, String word, AsrRequestConfig asrRequestConfig, TuringOSClientAsrListener listener);
/**
*开始口语评测,内置录音
* @param type 评测内容类型,限定为EaRequestTyptEnum,不支持段落类型
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param isAssignAsr 是否指定ASR参数,参数配置在Turing_config.json中
* @param listener TuringOSClientAsrListener
* @param expandParam 拓展参数,没有可传空
*/
void startEAWithRecorder(@EaRequestTyptEnum int type, boolean enableTts, String word, boolean isAssignAsr, ExpandParam expandParam, TuringOSClientAsrListener listener);
1.2 外置录音
方法
/**
* 初始化口语评测,外置录音使用,需要配合sendAudio接口使用
* @param type 评测内容类型,限定为EaRequestTyptEnum,不支持段落类型
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param isAssignAsr 是否指定ASR参数,参数配置在Turing_config.json中
* @param listener TuringOSClientAsrListener
* @param expandParam 拓展参数,没有可传空
*/
void initEAStream(@EaRequestTyptEnum int type, boolean enableTts, String word, boolean isAssignAsr, ExpandParam expandParam, TuringOSClientAsrListener listener);
/**
* 初始化口语评测,外置录音使用,需要配合sendAudio接口使用
* @param type 评测内容类型,限定为EaRequestTyptEnum,不支持段落类型
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param asrRequestConfig asr请求参数,详情见AsrRequestConfig参数说明
* @param listener TuringOSClientAsrListener
*/
void initEAStream(@EaRequestTyptEnum int type, boolean enableTts, String word, AsrRequestConfig asrRequestConfig, TuringOSClientAsrListener listener);
/**
* 发送音频数据流,需要配合initEAStreamXX()使用
* @param dataBuffer 音频数据,长度不得大于1280个byte,并且要求为320的整数倍
* @param length 音频数据长度
*/
public void sendAudio(byte[] dataBuffer, int length);
输入说明
- ExpandParam 说明
口语评测v1接口拓展参数,除outputAudio参数,其他参数可设置在AsrRequestConfig.Builder#requestParams中。
| 参数 | 类型 | 说明 |
|---|---|---|
| isOutputRaw | boolean | 是否保留标点符号 |
| outputAudio | boolean | 是否输出输入音频链接(有效期半小时) |
| other | Map |
扩展参数 |
其他字段说明见【输入说明】。
输出说明
返回结果TuringOSClientAsrListener接口中回调:
-
ASR识别结果会在onResult中输出,具体过程与ASR模块ASR识别一致,当ASR识别结果完整,即isLast为true时,开始输出对话的结果;
-
对话结果也在onResult中输出,具体文本内容和播放内容在BaseResp-NlpResponse-List-Results中,其他详细内容具体字段说明参考BaseResp说明;
-
请求成功的结果json字符串对应result;
-
extension:扩展输出字段,该模块暂时没有输出。
请求示例
1. 使用内置录音机口语评测
init=>start: 设置参数
record=>operation: 开始录音识别startEAWithRecorder
vad=>condition: 是否开启vad
stop=>operation: 停止录音stopRecord
deal=>operation: 处理回调
release=>end: 释放资源release(退出时)
init->record->vad
vad(yes)->deal
vad(no)->stop
stop->deal->release
方式一:使用全局配置文件turing_config.json中的asr参数。
//直接修改全局配置参数,所有使用到全局配置参数的方法都会生效
//设置单声道,16k采样率。 根据需求调整参数值。
val asr = TuringConfig.getInstance(this).configData.ability.asr
asr.asrRateEnum = AsrRequestConfig.RATE_16000
asr.channel = AsrRequestConfig.CHANNEL_IN_MONO
turingSpeech.startEAWithRecorder(speechType,
false, "苹果", true, paramV1.build(),
object : TuringOSClientAsrListener {
override fun onRecorderStart() {
TODO("Not yet implemented")
}
override fun onStop() {
TODO("Not yet implemented")
}
override fun onStreamOpen() {
TODO("Not yet implemented")
}
override fun onResult(
code: Int, result: String?,isLast: Boolean, baseResp: BaseResp?
) {
TODO("Not yet implemented")
}
override fun onTimer(second: Int) {
TODO("Not yet implemented")
}
override fun onError(code: Int, msg: String?) {
TODO("Not yet implemented")
}
override fun onVoiceVolume(i: Int) {
TODO("Not yet implemented")
}
})
方式二:使用局部生效参数,指定AsrRequestConfig。
//直接修改全局配置参数,所有使用到全局配置参数的方法都会生效
//设置单声道,16k采样率。 根据需求调整参数值。
val asrConfig =
AsrRequestConfig.Builder().channel(AsrRequestConfig.CHANNEL_IN_MONO)
.asrRateEnum(AsrRequestConfig.RATE_16000).build()
turingSpeech.startEAWithRecorder(speechType, false, "苹果", asrConfig,speechListener)
2. 外置录音机口语评测
init=>start: 设置参数并初始化initEAStream
record=>operation: 自行实现录音
sendAudio=>operation: 发送音频sendAudio
vad=>condition: 是否开启vad
stop=>operation: 停止录音stopRecord
deal=>operation: 处理回调
release=>end: 释放资源release(退出时)
init->record->sendAudio->vad
vad(yes)->deal
vad(no)->stop
stop->deal->release
方式一:使用全局配置文件turing_config.json中的asr参数。
// 1. 先初始化
turingSpeech.initEAStream(speechType,true,"苹果",true,param.build(),speechListener)
// 2. 再发送音频数据给SDK
private fun readLocalPcm(){
val inputStream = resources.assets.open("record.pcm")
var len:Int
val buffer = ByteArray(320)
while ((inputStream.read(buffer).also { len = it })!=-1){
Log.e(TAG, "length:$len")
turingSpeech.sendAudio(buffer,len);
}
}
方式二:使用局部生效参数,指定AsrRequestConfig。
// 1. 先初始化
val asrConfig =AsrRequestConfig.Builder().build()
turingSpeech.initEAStream(speechType,true,"苹果",asrConfig,speechListener)
// 2. 再发送音频数据给SDK
private fun readLocalPcm(){
val inputStream = resources.assets.open("record.pcm")
var len:Int
val buffer = ByteArray(320)
while ((inputStream.read(buffer).also { len = it })!=-1){
Log.e(TAG, "length:$len")
turingSpeech.sendAudio(buffer,len);
}
}
2. 口语评测 V2 版
支持评测中英文的字、词、句、段。V2 接口评测音频长度说明如下:
- 中文文字:最大文本长度为1个汉字,最大音频长度为20秒
- 中文句子:最大文本长度为400个汉字,最大音频长度为120秒
- 中文段落:最大文本长度为1000个汉字,最大音频长度为120秒
- 英文单词: 最大文本长度为1个单词,最大音频长度为20秒
- 英文句子: 最大文本长度为200个单词,最大音频长度为90秒
- 英文段落: 最大文本长度为1000个单词,最大音频长度为120秒
2.1 内置录音
方法
/**
*开始口语评测,内置录音,支持最大录音长度60s
* @param type 评测内容类型,限定为EaRequestTyptEnum
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param isAssignAsr 是否指定ASR参数,参数配置在Turing_config.json中
* @param listener TuringAsrProListener
* @param expandParam 拓展参数,没有可传空
*/
void startEAWithRecorderV2(@EaRequestTyptEnum int type, boolean enableTts, String word, boolean isAssignAsr, ExpandParamV2 expandParam, TuringAsrProListener<SpeechResult> listener);
/**
*开始口语评测,内置录音,支持最大录音长度60s
* @param type 评测内容类型,限定为EaRequestTyptEnum
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param asrRequestConfig asr请求参数,详情见AsrRequestConfig参数说明
* @param listener TuringAsrProListener
*/
void startEAWithRecorderV2(@EaRequestTyptEnum int type, boolean enableTts, String word, AsrRequestConfig asrRequestConfig, TuringAsrProListener<SpeechResult> listener);
2.2 外置录音
方法
/**
* 初始化口语评测V2,外置录音使用,需要配合sendAudio接口使用
* @param type 评测内容类型,限定为EaRequestTyptEnum
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param isAssignAsr 是否指定ASR参数,参数配置在Turing_config.json中
* @param listener TuringOSClientAsrListener
* @param expandParam 拓展参数,没有可传空
*/
void initEAStreamV2(@EaRequestTyptEnum int type, boolean enableTts, String word, boolean isAssignAsr, ExpandParamV2 expandParam, TuringAsrProListener<SpeechResult> listener);
/**
* 初始化口语评测V2,外置录音使用,需要配合sendAudio接口使用
* @param type 评测内容类型,限定为EaRequestTyptEnum
* @param enableTts 评测结果文字提示内容是否需要合成TTS音频连接
* @param word 评测目标内容
* @param asrRequestConfig asr请求参数,详情见AsrRequestConfig参数说明
* @param listener TuringOSClientAsrListener
*/
void initEAStreamV2(@EaRequestTyptEnum int type, boolean enableTts, String word, AsrRequestConfig asrRequestConfig, TuringAsrProListener<SpeechResult> listener);
/**
* 发送音频数据流,需要配合initEAStreamXX()使用
* @param dataBuffer 音频数据,长度不得大于1280个byte,并且要求为320的整数倍
* @param length 音频数据长度
*/
public void sendAudio(byte[] dataBuffer, int length);
输入说明
- ExpandParamV2 说明
口语评测v2接口拓展参数,除outputAudio参数,其他参数可设置在AsrRequestConfig.Builder#requestParams中。
| 参数 | 类型 | 说明 |
|---|---|---|
| outputAudio | boolean | 是否输出输入音频链接(有效期半小时) |
| refPinyin | String | 中文拼音测评 |
| realtime_feedback | int | 是否返回中间结果0:不返回[默认] 1:返回中间测评结果 |
| readtype_diagnosis | int | 默认为 0,可选值 0、1,显示重复读漏读,0:关闭,1开启 |
| paragraph_need_word_score | int | 返回结果是否含单词维度可选值:1、0 |
| other | Map |
扩展参数 |
其他字段说明见【输入说明】。
输出说明
请求示例
参考【口语评测V1版-请求示例】,将 startEAWithRecorder() 替换为 startEAWithRecorderV2()。
3. 重置VAD
如需修改vad参数,可先设置asr参数后,再调用此接口。
方法
void resetVad();
4. 停止录音
方法
void stopRecorder();
5. 资源释放
方法
void release();
输入说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| type | EaRequestConfig.EA_CN_SENTENCE, EaRequestConfig.EA_CN_WORD, EaRequestConfig.EA_CN_PARAGRAPH EaRequestConfig.EA_EN_SENTENCE, EaRequestConfig.EA_EN_WORD} EaRequestConfig.EA_EN_PARAGRAPH |
Y | 评测内容类型 EA_CN_SENTENCE:中文句子 EA_CN_WORD:中文汉字 EA_CN_PARAGRAPH:中文段落(V2) EA_EN_SENTENCE:英文句子 EA_EN_WORD:英文单词 EA_EN_PARAGRAPH:英文段落(V2) |
| enableTts | boolean | Y | 测结果文字提示内容是否需要合成TTS音频连接 |
| word | String | Y | 评测内容,长度限制: EA_CN_WORD:一个汉字 EA_CN_SENTENCE:不超过400个汉字 EA_CN_PARAGRAPH:不超过1000个汉字 EA_EN_WORD:一个单词 EA_EN_SENTENCE:不超过200个单词 EA_EN_PARAGRAPH:不超过1000个单词 |
| asrRequestConfig | AsrRequestConfig | Y | 参考ASR模块AsrRequestConfig参数说明 |
| listener | TuringOSClientAsrListener | Y | 参考ASR模块TuringOSClientAsrListener说明 |
| expandParam | ExpandParam | N | 拓展参数,没有可传空 |
- AsrRequestConfig
请查看《ASR接入文档》
- TuringOSClientAsrListener
该接口为ASR识别结果回调接口,具体如下:
public interface TuringOSClientAsrListener {
/**
* 当使用SDK录音器开启的识别,此方法会在录音开始后回调
* 一般用于UI显示开始录音,更新UI需要放到主线程,不能再此回调方法中更新
*/
void onRecorderStart();
/**
* asr识别停止,包括请求Error或者外部调用client.stopAsr都会回调
*/
void onStop();
/**
* 允许输入音频数据流,在该方法回调之后开始调用sendAudio
*/
void onStreamOpen();
/**
*
* 请求结果返回
*
* @param code 具体参考code说明
* @param result 返回的json字符串
* @param isLast Asr识别结果;last : 是否是最终结果
* @param baseResp 返回的json字符串转换的Java对象
*/
void onResult(int code, String result, boolean isLast, BaseResp baseResp);
/**
* Asr识别单论交互倒计时 最大值20s
* 单句语音识别场景下的倒计时限制,连续识别不受影响
*
* @param second
*/
void onTimer(int second);
/**
* 请求发生错误的信息
*
* @param code
* @param msg
*/
void onError(int code, String msg);
/**
* 使用内部录音时,返回声音音量变化,该方法的回调需要先设置参数enableVolume为true
*
*/
void onVoiceVolume(int i);
}
- TuringAsrProListener
public interface TuringAsrProListener<T> {
/**
* 调用startChatWithRecord之后开始录音回调
*/
void onRecorderStart();
/**
* asr识别停止,包括请求Error或者外部调用client.stopAsr都会回调
*/
void onStop();
/**
* 允许输入音频数据流,在该方法回调之后开始调用sendPcmData或者sendEncodeData
* 检测到说话,走该回调
*/
void onStreamOpen();
/**
*
* 请求结果返回
*
* @param code 具体参考Opensocket协议中的输出说明
* @param result 返回的json字符串
* @param isLast Asr识别结果;last : 是否是最终结果
* @param responseResult 返回的json字符串转换的Java对象
*/
void onResult(int code, String result, boolean isLast, ResponseResult<T> responseResult);
/**
* Asr识别单论交互倒计时 最大值30s
*
* @param second
*/
void onTimer(int second);
/**
* 请求发生错误的信息
*
* @param code
* @param msg
*/
void onError(int code, String msg);
/**
* 使用内部录音时,返回声音音量变化
*
*/
void onVoiceVolume(int i);
}
onStop特殊说明
- 表示此次识别结束,可以开启下一次识别;
- 单句识别场景中,当云端识别结果或者本地VAD(静音检测)判定为一句话完整识别后,该方法会在识别结果输出完成后回调,表示此次识别结束;
- 所有场景中,ASR通道同一时间只能开启一个,包括语音聊天、ASR识别、绘本内的录音交互;
- 所有场景中,外部调用stop或者release时,SDK内部数据处理完毕后会回调onStop,所以不要在onStop做太多操作。
其他说明
- onRecorderStart:只有当使用SDK内部录音器开启识别时,该方法才会回调;
- onStreamOpen:只有当使用音频流数据输入开启识别时,该方法才会回调;
- onTimer:该方法主要是针对单句语音识别场景下的倒计时限制,单句识别一般为聊天场景,每句话都有一个而明确的结束节点;
- onVoiceVolume:该方法回调需要先配置参数enableVolume为true,具体参数说明请参考AsrRequestConfig说明;
- onStop:表示此次识别结束,可以开启下一次识别;
- SDK中使用到ASR录音功能(语音识别、语音对话、口语评测)的所有模块都会使用该接口回调结果;
- 每一次开启Asr之后,不管是外部调用Stop还是内部识别完成,都会回调onStop方法,只有在onStop成功回调之后才正常开启下一次识别;
- BaseResp请参考ASR识别输出说明。
输出说明
1. V1 版返回数据
返回示例
中文句子
{
"code":200,
"done":true,
"globalId":"189281693891622001",
"message":"success",
"nlpResponse":{
"intent":{
"code":1000047,
"operateState":1021,
"parameters":{
"result":{
"duration":"1.760",
"integrity":100,
"pronunciation":69,
"tone":65,
"words":[
{
"charType":0,
"pinyin":"ni",
"tone":"tone2",
"scores":{
"pronunciation":99,
"tone":65,
"overall":99,
"prominence":0
},
"word":"你",
"phonemes":[
{
"pronunciation":95,
"phoneme":"N",
"span":{
"start":21,
"end":38
}
},
{
"pronunciation":100,
"phoneme":"I",
"span":{
"start":38,
"end":52
}
}
],
"span":{
"start":21,
"end":52
}
},
{
"charType":0,
"pinyin":"hao",
"tone":"tone3",
"scores":{
"pronunciation":39,
"tone":64,
"overall":39,
"prominence":0
},
"word":"好",
"phonemes":[
{
"pronunciation":64,
"phoneme":"H",
"span":{
"start":52,
"end":56
}
},
{
"pronunciation":1,
"phoneme":"AO",
"span":{
"start":56,
"end":59
}
}
],
"span":{
"start":52,
"end":59
}
}
],
"fluency":100,
"overall":68,
"rear_tone":"rise",
"rhythm":73,
"speed":315
},
"code":0,
"refText":"你好",
"originalAudio":"http://book-iot-cdn.turingos.cn/202211031328/5879aaffc3ee4e0644a75c1787d0c881/dict/oralEnglishTest/9d721700890f4bcf874cb1b5404c02ff_437824911_189281693891622001_87d5b97c694643f9af359696e34c17c9.pcm"
}
},
"results":[
{
"groupType":0,
"resultType":"text",
"values":{
"ttsUrl":[
"http://turing-iot-tts-oss.turingapi.com/tts/tts-977f2d5b195b4cde91b4be3aa89b77ce-33e01677ba424687aa0fa89328e093b4.mp3"
],
"text":"评测完成,你的得分为:68"
}
}
]
}
}
中文单词
{
"code":200,
"done":true,
"globalId":"189281896658622001",
"message":"success",
"nlpResponse":{
"intent":{
"code":1000047,
"operateState":1020,
"parameters":{
"result":{
"duration":"1.280",
"pronunciation":76,
"tone":41,
"words":[
{
"charType":0,
"pinyin":"ni",
"tone":"tone3",
"scores":{
"pronunciation":76,
"tone":41,
"overall":71
},
"word":"你",
"phonemes":[
{
"pronunciation":77,
"phoneme":"N",
"span":{
"start":32,
"end":46
}
},
{
"pronunciation":56,
"phoneme":"I",
"span":{
"start":46,
"end":84
}
}
],
"span":{
"start":32,
"end":84
}
}
],
"overall":71
},
"code":0,
"refText":"你",
"originalAudio":"http://book-iot-cdn.turingos.cn/202211031332/411180d318f51bf760e3177eab7e0f8d/dict/oralEnglishTest/9d721700890f4bcf874cb1b5404c02ff_437824911_189281896658622001_7d30d3ff353846ce9af645d7ff419fcd.pcm"
}
},
"results":[
{
"groupType":0,
"resultType":"text",
"values":{
"ttsUrl":[
"http://turing-iot-tts-oss.turingapi.com/tts/tts-977f2d5b195b4cde91b4be3aa89b77ce-b2261d381b1742d3995449008fc9264f.mp3"
],
"text":"评测完成,你的得分为:71"
}
}
]
}
}
英文单词
{
"code":200,
"done":true,
"globalId":"189281981996622001",
"message":"success",
"nlpResponse":{
"intent":{
"code":1000047,
"operateState":1010,
"parameters":{
"result":{
"pron":68,
"overall":68,
"details":[
{
"score":68,
"phone":[
{
"score":97,
"char":"h"
},
{
"score":81,
"char":"ə"
},
{
"score":62,
"char":"l"
},
{
"score":26,
"char":"o"
}
],
"char":"hello",
"start":260,
"end":830
}
]
},
"code":0,
"refText":"hello",
"originalAudio":"http://book-iot-cdn.turingos.cn/202211031333/c96d1cb1e670ee94f138a6aad7ba25bf/dict/oralEnglishTest/9d721700890f4bcf874cb1b5404c02ff_437824911_189281981996622001_b325c042e4834608a0b29e2f4826e486.pcm"
}
},
"results":[
{
"groupType":0,
"resultType":"text",
"values":{
"ttsUrl":[
"http://turing-iot-tts-oss.turingapi.com/tts/tts-977f2d5b195b4cde91b4be3aa89b77ce-33e01677ba424687aa0fa89328e093b4.mp3"
],
"text":"评测完成,你的得分为:68"
}
}
]
}
}
英文句子
{
"code":200,
"done":true,
"globalId":"189282052730622001",
"message":"success",
"nlpResponse":{
"intent":{
"code":1000047,
"operateState":1011,
"parameters":{
"result":{
"integrity":100,
"pron":75,
"fluency":100,
"overall":80,
"details":[
{
"score":91,
"phone":[
{
"score":93,
"char":"h"
},
{
"score":87,
"char":"aʊ"
}
],
"char":"how",
"start":210,
"end":410
},
{
"score":41,
"phone":[
{
"score":31,
"char":"ɑ"
}
],
"char":"are",
"start":410,
"end":610
},
{
"score":94,
"phone":[
{
"score":89,
"char":"j"
},
{
"score":98,
"char":"u"
}
],
"char":"you",
"start":610,
"end":970
}
],
"rhythm":92,
"wavetime":1640
},
"code":0,
"refText":"how are you",
"originalAudio":"http://book-iot-cdn.turingos.cn/202211031334/3545469d28ad7c6ec202887132872274/dict/oralEnglishTest/9d721700890f4bcf874cb1b5404c02ff_437824911_189282052730622001_aec7bdb0b21f46dabaa78c5ae6a59b0d.pcm"
}
},
"results":[
{
"groupType":0,
"resultType":"text",
"values":{
"ttsUrl":[
"http://turing-iot-tts-oss.turingapi.com/tts/tts-458b0e5c828a4343ae337477813d8186-8a434469350c4c7eb0628dbc7b372678.mp3"
],
"text":"评测完成,你的得分为:80"
}
}
]
}
}
返回参数说明
- 中文和英文评测返回结果详情会有区别;
- 可以根据测评是中文还是英文使用不同的实体类进行解析;
基础字段说明
| 标签 | 类型 | 是否必须 | 含义 |
|---|---|---|---|
| code | int | Y | 返回码 |
| globalId | String | Y | 评测结果ID,用于排查问题 |
| localAudioFile | String | N | 本地音频文件路径 |
| nlpResponse | Json | Y | nlp相关回复信息 |
| message | String | Y | 返回状态 |
NlpResponse
| 参数 | 类型 | 说明 |
|---|---|---|
| intent | Intent | 识别结果实体内容 |
| results | List | 结果列表 |
NlpResponse-Intent字段说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| code | int | Y | 输出应用code |
| operateState | int | Y | 1010:英文单词 1011:英文句子 1020:中文汉字 1021:中文句子 |
| parameters | Json | Y | 评测结果 |
NlpResponse-Intent-parameters字段说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| result | Object | Y | 评测结果说明 |
| code | int | Y | 输出识别code |
| refText | String | Y | 评测文本 |
NlpResponse-results字段说明
| 参数 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| groupType | int | Y | 组类型(普通接入可忽略该参数) 0为独立输出; 大于0时可能包含同组相关内容 |
| resultType | String | Y | 输出类型 文本(text); 链接(url); 音频(voice); 动作表情(action); 视频(video); 图片(image); 图文(news); |
| values | Map | Y | 输出内容 |
英文评测结果说明
NlpResponse-Intent-parameters-Result字段说明
| 字段 | 类型 | 必选 | 说明 |
|---|---|---|---|
| pron | Int | Y | 发音得分 |
| overall | Int | Y | 总得分 |
| integrity | Int | N | 完成度评分: 单词测评时无该字段 |
| fluency | Int | N | 流利度得分: 单词测评时无该字段 |
| rhythm | Int | N | 韵律性评分: 单词测评时无该字段 |
| wavetime | Int | N | 音频长度: 单词测评时无该字段 |
| details | Array[json] | Y | 详细的测评信息,具体见details字段说明 |
details字段说明
| 字段 | 类型 | 必选 | 说明 |
|---|---|---|---|
| score | Int | Y | 得分 |
| char | String | Y | 评测的单词 |
| start | Int | Y | 音频文件处理的开始地址;无需关注 |
| end | Int | Y | 音频文件处理的结束地址;无需关注 |
| phone | Array[json] | Y | 单个字母评测信息,具体见phone字段说明 |
phone字段说明
| 字段 | 类型 | 必选 | 说明 |
|---|---|---|---|
| score | Int | Y | 得分 |
| char | String | Y | 评测的字母 |
中文评测结果说明
NlpResponse-Intent-Parameters-Result
| 字段 | 类型 | 说明 |
|---|---|---|
| duration | String | 音频时长 |
| pronunciation | int | 发音得分 |
| tone | int | 声调得分 |
| overall | int | 总得分 |
| words | Words(Object) | 详细的测评信息,具体见word字段说明 |
| integrity | int | 完成度评分 汉字测评时无该字段 |
| fluency | int | 流利度得分 汉字测评时无该字段 |
| rear_tone | String | 句末语调: rise:升调 fall:降调 汉字测评时无该字段 |
| rhythm | int | 韵律性评分 汉字测评时无该字段 |
| speed | int | 语速 汉字测评时无该字段 |
NlpResponse-Intent-Parameters-Result-Words
| 字段 | 类型 | 说明 |
|---|---|---|
| charType | int | 是中文还是符号: 0:中文 1:标点符号 |
| pinyin | String | 拼音 |
| tone | String | 发音声调: tone1:第一声 tone2:第二 声 tone3:第三声 tone4:第四声 tone5:轻声 |
| word | String | 单字 |
| scores | Scores(Object) | 得分详情,参考score字段说明 |
| phonemes | Phonemes(Object) | 音素,参考phoneme字段说明 |
| span | Span(Object) | 汉字在音轨上的时间范围,参考span字段说明 |
NlpResponse-Intent-Parameters-Result-Words-Scores
| 字段 | 类型 | 说明 |
|---|---|---|
| pronunciation | int | 发音得分 |
| tone | int | 声调得分 |
| overall | int | 总得分 |
| prominence | int | 句子中单词是否重读: 0:非重读 1:重读 |
NlpResponse-Intent-Parameters-Result-Words-Phonemes
| 字段 | 类型 | 说明 |
|---|---|---|
| pronunciation | int | 发音得分 |
| phoneme | String | 音素 |
| span | Span(Object) | 汉字在音轨上的时间范围,详细见span字段说明 |
Span
| 字段 | 类型 | 说明 |
|---|---|---|
| start | Int | 单位毫秒,无需关注 |
| end | Int | 单位毫秒,无需关注 |
2. V2 版返回数据
返回示例
{
"code": 280,
"done": true,
"globalId": "194229632562417001",
"message": "测评最终结果",
"result": {
"duration": "7.344",
"fluency": 100,
"integrity": 10,
"overall": 8,
"pronunciation": 85,
"rear_tone": "fall",
"rhythm": 0,
"speed": 11,
"tone": 52,
"words": [
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 85,
"span": {
"end": 608,
"start": 82
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 0,
"scores": {
"overall": 85,
"prominence": 1,
"pronunciation": 85,
"tone": 52
},
"span": {
"end": 608,
"start": 82
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
},
{
"charType": 0,
"phonemes": [
{
"phone": "a",
"phoneme": "A",
"pronunciation": 0,
"span": {
"end": -1,
"start": -1
},
"tone_index": "1"
}
],
"pinyin": "a",
"readType": 2,
"scores": {
"overall": 0,
"prominence": 0,
"pronunciation": 0,
"tone": 0
},
"span": {
"end": -1,
"start": -1
},
"tone": "tone5",
"word": "啊"
}
]
}
}
返回参数说明
英文单词
SpeechResult
| 属性 | 类型 | 含义 |
|---|---|---|
| SpeechWord | 对象数组 | 单词 |
| duration | 字符串 | 音频时长 |
| stress | 整型 | 重音节发音是否正确 100 表示重读音节正确 0 表示重读音节错误 |
| kernel_version | 字符串 | 内核版本 |
| resource_version | 字符串 | 资源版本 |
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| warning | 对象数组 | 音频检测提示 注:不是必现字段,业务层使用前需先判断该字段是否存在 |
| outputAudio | 字符串 | 原生音频路径,本地路径,配置请求参数后,所有模式都可返回此字段 |
result->words
| 属性 | 类型 | 含义 |
|---|---|---|
| scores | 对象 | 单词拆分成音标得分详情 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| word | 字符串 | 单词 |
| span | 对象 | 单词在音轨上的时间范围 |
| phonemes | 对象数组 | 音素信息, 需要开启 phoneme_output |
| word_parts | 对象数组 | 单词文本信息 |
| pause | 对象 | 停顿检测 |
| readType | 整型 | 值为0表示正常读, 值为4表示重复读, 值为5表示乱读(单词音节发生典型错误时出现,例:bomb 读成/bɒmb/) |
| repetition | 对象数组 | 重复读单词打分 |
result->words- -> word_parts
| 属性 | 类型 | 含义 |
|---|---|---|
| part | 字符串 | 文本 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
result->words->pause
| 属性 | 类型 | 含义 |
|---|---|---|
| type | 整型 | 停顿显示1,未停顿显示0 |
| duration | 整型 | 停顿时间,单位毫秒 |
result->words- ->repetition
| 属性 | 类型 | 含义 |
|---|---|---|
| start | 整型 | 单词在音轨上的开始时间,10ms 为单位 |
| end | 整型 | 单词在音轨上的结束时间,10ms 为单位 |
| overall | 整型 | 重复单词的分数 |
result->words->scores
| 属性 | 类型 | 含义 |
|---|---|---|
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| stress | 对象数组 | 重读音节信息 |
result- - >words- - >scores- -> stress
注:数组为1时表示单音节音标,不建议显示重音符号
| 属性 | 类型 | 含义 |
|---|---|---|
| phonetic | 字符串 | 本音节对应音标 |
| spell | 字符串 | 本音节对应的拼写 |
| stress | 整型 | 本音节的实际重音(1 表示重读音节 2 表示次重音节 0 表示非重读) |
| ref_stress | 整型 | 本音节的参考重音(1 表示重读音节 2 表示次重音节 0 表示非重读) |
| phoneme_offset | 整型 | 音节在整个音标的起始位置 |
| overall | 整型或浮点型 | 音节总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
result->words->phonics
| 属性 | 类型 | 含义 |
|---|---|---|
| overall | 整型或浮点型 | 每个发音字母总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| phoneme | 字符串数组 | 字母音素 |
| spell | 字符串 | 字母拼写 |
result->words->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 单词在音轨上的结束时间,10ms 为单位 |
| start | 整型 | 单词在音轨上的开始时间,10ms 为单位 |
result->words-> phonemes
| 属性 | 类型 | 含义 |
|---|---|---|
| span | 整型 | 音素在音轨上的时间 |
| phoneme | 字符串 | 音素的发音 |
| pronunciation | 整型或浮点型 | 音素发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
result->words-> phonemes->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 音素在音轨上的结束时间,10ms 为单位 |
| start | 整型 | 音素在音轨上的开始时间,10ms 为单位 |
英文句子
中间结果字段说明(中间结果 realtime_feedback 设置开启后返回)
result
| 属性 | 类型 | 含义 |
|---|---|---|
| words | 对象数组 | 单词评分结果 |
| kernel_version | 字符串 | 内核版本 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| resource_version | 字符串 | 资源版本 |
result- > words
| 属性 | 类型 | 含义 |
|---|---|---|
| charType | 整型 | 0:英文或中文或法语 1:标点符号 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| scores | 对象数组 | 单词分数 |
| word | 字符串 | 单词 |
| word_parts | 对象数组 | 单词文本信息 |
result- > words- - >scores
| 属性 | 类型 | 含义 |
|---|---|---|
| pronunciation | 整型或浮点型 | 单词发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
result- > words- - >word_parts
| 属性 | 类型 | 含义 |
|---|---|---|
| charType | 整型 | 0:英文或中文或法语,1:标点符号 |
| part | 字符串 | 文本 |
最终结果字段说明
result
| 属性 | 类型 | 含义 |
|---|---|---|
| fluency | 整型或浮点型 | 流利度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| words | 对象数组 | 各单词得分 |
| duration | 字符串 | 音频时长 |
| kernel_version | 字符串 | 内核版本 |
| rear_tone | 字符串 | 句末语调;rise:升调,fall:降调 |
| speed | 整型 | 语速 |
| integrity | 整型或浮点型 | 完整度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型) 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| resource_version | 字符串 | 资源版本 |
| liaison | 对象数组 | 连读检测,支持连读且实际发连读音,则出现该维度 |
| plosion | 对象数组 | 爆破音检测,支持爆破且实际发爆破音,则出现该维度 |
| rhythm | 整型或浮点型 | 韵律度得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| warning | 对象数组 | 音频检测的提示 注:非必现字段,使用前需先判断该字段是否存在 |
| pause_count | 整型 | 停顿次数 |
result->warning
| 属性 | 类型 | 含义 |
|---|---|---|
| code | 整型 | 错误码 |
| message | 字符串 | 音频检测的提示信息,请参考服务端错误码 |
result->words
注:开启readtype_diagnosis参数的时候,words数组数据显示为实际发音返回的结果
| 属性 | 类型 | 含义 |
|---|---|---|
| scores | 对象 | 句子中的单词得分情况 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| span | 对象 | 单词在音轨上的时间范围 |
| word | 字符串 | 单词文本 |
| charType | 整型 | 0:英文或中文或法语,1:标点符号 |
| phonics | 对象数组 | 发音字母组合 |
| phonemes | 对象数组 | 音素信息, 需要开启 phoneme_output |
| word_parts | 对象数组 | 单词文本信息 |
| readType | 整型 | 0为正常,3为漏读,4为重复读 注:需开启readtype_diagnosis |
| pause | 对象数组 | 停顿 |
result- >words- > word_parts
| 属性 | 类型 | 含义 |
|---|---|---|
| charType | 整型 | 0:英文或中文或法语,1:标点符号 |
| part | 字符串 | 文本 |
result->words->scores
| 属性 | 类型 | 含义 |
|---|---|---|
| prominence | 整型 | 单词重读, 0 表示非重读 1 表示重读 |
| overall | 整型或浮点型 | 句子中的单词总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| pronunciation | 整型或浮点型 | 句子中的单词发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
result->words->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 单词在音轨上的结束时间,10ms 为单位 |
| start | 整型 | 单词在音轨上的开始时间,10ms 为单位 |
result->words->phonemes
| 属性 | 类型 | 含义 |
|---|---|---|
| span | 整型 | 音素在音轨上的时间 |
| phoneme | 字符串 | 音素的发音 |
| pronunciation | 整型或浮点型 | 音素发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
result->words→pause
| 属性 | 类型 | 含义 |
|---|---|---|
| duration | 整型 | 停顿的时长 |
| type | 整型 | duration>100毫秒是1,其他是0 |
result->words-> phonemes->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 音素在音轨上的结束时间,10ms 为单位 |
| start | 整型 | 音素在音轨上的开始时间,10ms 为单位 |
result->words->phonics
| 属性 | 类型 | 含义 |
|---|---|---|
| overall | 整型或浮点型 | 音素总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| phoneme | 字符串数组 | 音素 |
| spell | 字符串 | 单词拼写 |
result->liaison
| 属性 | 类型 | 含义 |
|---|---|---|
| first | 对象 | 第一个连读 |
| second | 对象 | 第二个连读 |
result- > liaison ->first
| 属性 | 类型 | 含义 |
|---|---|---|
| Index | 整型 | 本单词的位置信息 |
| word | 字符串 | 本单词文本 |
result- > liaison- > second
| 属性 | 类型 | 含义 |
|---|---|---|
| Index | 整型 | 本单词的位置信息 |
| word | 字符串 | 本单词文本 |
result->plosion
| 属性 | 类型 | 含义 |
|---|---|---|
| first | 对象 | 爆破音的第一个单词 |
| second | 对象 | 爆破音的第二个单词 |
result- >plosion ->first
| 属性 | 类型 | 含义 |
|---|---|---|
| Index | 整型 | 本单词的位置信息 |
| word | 字符串 | 本单词文本 |
result- >plosion ->second
| 属性 | 类型 | 含义 |
|---|---|---|
| Index | 整型 | 本单词的位置信息 |
| word | 字符串 | 本单词文本 |
英文段落
result
| 属性 | 类型 | 含义 |
|---|---|---|
| fluency | 整型或浮点型 | 流利度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| duration | 字符串 | 音频时长 |
| kernel_version | 字符串 | 内核版本 |
| speed | 整型 | 语速 |
| integrity | 整型或浮点型 | 完整度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| sentences | 对象数组 | 段落信息 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| resource_version | 字符串 | 资源版本 |
| rhythm | 整型或浮点型 | 韵律度得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| warning | 对象数组 | 音频检测的提示 注:非必现字段,使用前需先判断该字段是否存在,详情请参考服务端错误码 |
result->warning
| 属性 | 类型 | 含义 |
|---|---|---|
| code | 数字 | 错误码 |
| message | 字符串 | 音频检测的提示信息,具体错误提示请参考 |
result->sentences
| 属性 | 类型 | 含义 |
|---|---|---|
| overall | 整型或浮点型 | 句子总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| end | 整型 | 句子结束在音轨上的时间 |
| details | 对象数组 | 句子中单词的详细信息,需要开启 paragraph_need_word_score |
| sentence | 字符串 | 句子内容 |
| start | 整型 | 句子开始在音轨上的时间 |
result->sentences->details
| 属性 | 类型 | 含义 |
|---|---|---|
| prominence | 整型 | 句子中单词重读,0 表示非重读 1 表示重读 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| overall | 整型或浮点型 | 句子单词的总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数 点后为 0,则显示成整型), 若 scale(分 制)设置为(0,1), 该值显示为浮点型, 否则为整型。 |
| word | 字符串 | 句子中的单词 |
| start | 整型 | 句子中单词开始在音轨上的时间 |
| end | 整型 | 句子中单词结束在音轨上的时间 |
| word_parts | 对象数组 | 单词信息 |
| skipped | 整型 | 是否已读,0表示已读,1表示未读 |
result->sentences->details->word_parts
| 属性 | 类型 | 含义 |
|---|---|---|
| beginIndex | 整型 | 单词在文本中开始的位置 |
| endIndex | 整型 | 单词在文本中结束的位置 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| part | 字符串 | 单词 |
中文汉字
result
| 属性 | 类型 | 含义 |
|---|---|---|
| words | 对象数组 | 汉字 |
| duration | 字符串 | 音频时长 |
| kernel_version | 字符串 | 内核版本 |
| resource_version | 字符串 | 资源版本 |
| overall | 整型或者浮点型 | 总分 |
| pronunciation | 整型或者浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| warning | 对象数组 | 音频检测的提示, 注:不是必现字段,业务层使用前需先判断该字段是否存在 |
| tone | 整型或者浮点型 | 声调得分 |
result->words
| 属性 | 类型 | 含义 |
|---|---|---|
| scores | 对象 | 汉字拆分成音标得分详情 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| word | 字符串 | 汉字 |
| tone | 字符串 | 发音声调 tone1:第一声; tone2:第二声; tone3:第三声; tone4:第四声; tone5:轻声 |
| span | 对象 | 汉字在音轨上的时间范围 |
| phonemes | 对象数组 | 音素信息 注: 需要开启 phoneme_output |
| pinyin | 字符串 | 拼音 |
| readType | 整型 | 值为0表示正常读, 值为1表示当前字前面有插入, 值为3是重复读,值为4表示错读 |
| mispron | 对象数组 | 错误发音信息 注:需要开启参数phoneme_diagnosis |
result->words->scores
| 属性 | 类型 | 含义 |
|---|---|---|
| overall | 整型或浮点型 | 汉字总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| tone | 整型或浮点型 | 声调得分 |
result->words->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 汉字在音轨上的结束时间,单位10ms |
| start | 整型 | 汉字在音轨上的开始时间,单位10ms |
result->words-> phonemes
| 属性 | 类型 | 含义 |
|---|---|---|
| span | 整型 | 音素在音轨上的时间 |
| phoneme | 字符串 | 音素的发音 |
| pronunciation | 整型或浮点型 | 音素发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| tone_index | 字符串 | 用于标注声调的位置,0位无声音,起始位置为1 |
| phone | 字符串 | 用于对应原始音标的中文音标 |
result->words-> phonemes->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 音素在音轨上的结束时间,单位10ms |
| start | 整型 | 音素在音轨上的开始时间,单位10ms |
result->words->mispron
| 属性 | 类型 | 含义 |
|---|---|---|
| standard | 字符串 | 标准发音 |
| confidence | 整型 | 置信度,表示识别的准确性,分数越高代表识别越准确 |
| mistaken | 字符串 | 错误发音 |
中文句子
中间结果字段说明
result
| 属性 | 类型 | 含义 |
|---|---|---|
| kernel_version | 字符串 | 内核版本 |
| resource_version | 字符串 | 资源版本 |
| words | 对象数组 | 单词评分结果 |
result-> words
| 属性 | 类型 | 含义 |
|---|---|---|
| charType | 整型 | 0:非标点符号,1:标点符号 |
| scores | 对象数组 | 单词分数 |
| word | 字符串 | 单词 |
result-> words->scores
| 属性 | 类型 | 含义 |
|---|---|---|
| pronunciation | 整型或浮点型 | 单词发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| tone | 整型或浮点型 | 音调打分 |
最终结果字段说明
result
| 属性 | 类型 | 含义 |
|---|---|---|
| fluency | 整型或浮点型 | 流利度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| words | 对象数组 | 各汉字得分 |
| duration | 字符串 | 音频时长 |
| kernel_version | 字符串 | 内核版本 |
| rear_tone | 字符串 | 句末语调 rise:升调,fall:降调 |
| speed | 整型 | 语速 |
| integrity | 整型或浮点型 | 完整度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| resource_version | 字符串 | 资源版本 |
| rhythm | 整型或浮点型 | 韵律度得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| warning | 对象数组 | 音频检测的提示, 注:不是必现字段,业务层使用前需先判断该字段是否存在 |
| tone | 整型或浮点型 | 声调得分 |
result->words
| 属性 | 类型 | 含义 |
|---|---|---|
| scores | 对象 | 句子中的汉字得分情况 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| span | 对象 | 汉字在音轨上的时间范围 |
| word | 字符串 | 汉字或者标点符号(output_rawtext 开启的时候会显示标点符号) |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| phonemes | 对象数组 | 音素信息, 需要开启 phoneme_output |
| tone | 字符串 | 发音声调,tone1:第一声;tone2:第二声;tone3:第三声;tone4:第四声;tone5:轻声 |
| readType | 整型 | 关闭readtype_diagnosis: 值为0表示正常读, 值为1表示当前字前面有插入情况, 值为2漏读 开启readtype_diagnosis : 值为0表示正常读, 值为2漏读 , 值为3表示重复读 注:开启readtype_diagnosis参数时 ,words数组数据显示为实际发音返回的结果 |
| pinyin | 字符串 | 拼音 |
| pause | 对象 | 停顿检测 |
result->words->pause
| 属性 | 类型 | 含义 |
|---|---|---|
| type | 整型 | 停顿显示1,未停顿显示0 |
| duration | 整型 | 停顿时间,单位10ms |
result->words->scores
| 属性 | 类型 | 含义 |
|---|---|---|
| prominence | 整型 | 汉字重读,0 :非重读 ,1:重读 |
| overall | 整型或浮点型 | 句子中的汉字无调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| pronunciation | 整型或浮点型 | 句子中的汉字发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| tone | 整型或浮点型 | 句子中汉字的声调得分 |
| overall_pron | 整型或浮点型 | 句子中汉字有调得分 |
result->words-> phonemes
| 属性 | 类型 | 含义 |
|---|---|---|
| span | 整型 | 音素在音轨上的时间 |
| phoneme | 字符串 | 音素的发音 |
| pronunciation | 整型或浮点型 | 音素发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| tone_index | 字符串 | 用于标注声调的位置,0位无声音,起始位置为1 |
| phone | 字符串 | 用于对应原始音标的中文音标 |
result->words->span
| 属性 | 类型 | 含义 |
|---|---|---|
| span | 整型 | 音素在音轨上的时间 |
| phoneme | 字符串 | 音素在音轨上的时间 |
| pronunciation | 整型或浮点型 | 音素发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
result->words-> phonemes->span
| 属性 | 类型 | 含义 |
|---|---|---|
| end | 整型 | 音素在音轨上的结束时间,单位10ms |
| start | 整型 | 音素在音轨上的开始时间,单位10ms |
中文段落
result
| 属性 | 类型 | 含义 |
|---|---|---|
| fluency | 整型或浮点型 | 流利度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| duration | 字符串 | 音频时长 |
| kernel_version | 字符串 | 内核版本 |
| speed | 整型 | 语速 |
| integrity | 整型或浮点型 | 完整度 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| sentences | 对象数组 | 段落信息 |
| pronunciation | 整型或浮点型 | 发音得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| overall | 整型或浮点型 | 总分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| resource_version | 字符串 | 资源版本 |
| rhythm | 整型或浮点型 | 韵律度得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| warning | 对象数组 | 音频检测的提示,具体的请参考“[服务端返回错误码]” 注:不是必现字段,业务层使用前需先判断该字段是否存在 |
| tone | 整型或浮点型 | 声调得分 |
result->sentences
| 属性 | 类型 | 含义 |
|---|---|---|
| overall | 整型或浮点型 | 句子无调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| end | 整型 | 句子结束在音轨上的时间 |
| details | 对象数组 | 句子中单词的详细信息 注: 需要开启 paragraph_need_word_score |
| sentence | 字符串 | 句子内容 |
| start | 整型 | 句子开始在音轨上的时间 |
| tone | 整型或浮点型 | 声调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| overall_pron | 整型或浮点型 | 句子有调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| beginIndex | 整型 | 句子在文本中开始的位置 |
| endIndex | 整型 | 句子在文本中结束的位置 |
result->sentences->details
注:需开启paragraph_need_word_score
| 属性 | 类型 | 含义 |
|---|---|---|
| prominence | 整型 | 句子中单词重读,0 表示非重读 ,1 表示重读 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| overall | 整型或浮点型 | 句子中汉字无调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| word | 字符串 | 句子中的汉字 |
| start | 整型 | 句子中汉字开始在音轨上的时间 |
| end | 整型 | 句子中汉字结束在音轨上的时间 |
| tone | 整型或浮点型 | 声调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| readType | 整型 | 值为0表示正常读,值为1表示当前字前面有插入情况,值为2漏读 |
| pinyin | 字符串 | 句子汉字的拼音 |
| overall_pron | 整型或浮点型 | 汉字有调得分 若 precision(精度)设置为浮点型时,该值显示为浮点型(若该值小数点后为 0,则显示成整型), 若scale(分制)设置为(0,1),该值显示为浮点型,否则为整型 |
| word_parts | 对象数组 | 句子中汉字文本信息 |
result->words- -> word_parts
| 属性 | 类型 | 含义 |
|---|---|---|
| part | 字符串 | 文本 |
| charType | 整型 | 0:非标点符号,1:标点符号 |
| beginIndex | 整型 | 汉字在文本中开始的位置 |
| endIndex | 整型 | 汉字在文本中结束的位置 |