跳转至

口语评测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 扩展参数

其他字段说明见【输入说明】

输出说明

见【V1版返回数据】

返回结果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 扩展参数

其他字段说明见【输入说明】

输出说明

见【V2版返回数据】

请求示例

参考【口语评测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 整型 汉字在文本中结束的位置