腾讯云智聆口语评测音频数据评测说明-教育服务解决方案

对音频数据进行 base64 转换,进行评测。

声明并定义对象

private TAIOralEvaluation oral = new TAIOralEvaluation();

设置数据回调

this.oral.setListener(new TAIOralEvaluationListener() {    @Override    public void onEvaluationData(final TAIOralEvaluationData data, final TAIOralEvaluationRet result) {        //数据和结果回调    }
@Override public void onFinalEvaluationData(final TAIOralEvaluationData data, final TAIOralEvaluationRet result) { //最终结果回调 }
@Override public void onEvaluationError(TAIOralEvaluationData data, TAIError error) { //错误回调。1.2.3.69版本前在onEvaluationData中 } });

TAIOralEvaluationListener 接口说明

public interface TAIOralEvaluationListener {    void onEvaluationData(TAIOralEvaluationData data, TAIOralEvaluationRet result);    void onEvaluationError(TAIOralEvaluationData data, TAIError error);    void onFinalEvaluationData(TAIOralEvaluationData data, TAIOralEvaluationRet result);    void onEndOfSpeech(boolean isSpeak);    void onVolumeChanged(int volume);}

初始化参数

初始化 TAIOraEvaluation 对象,并通过实例化对象 param 设置评测文本、客户 ID、密码等信息,详细参数信息请查看下文参数说明。注意建议用户使用子账号密钥 + 环境变量的方式调用 SDK,提高 SDK 使用的安全性。为子账号授权时,请遵循 最小权限指引原则,防止泄漏其他资源。如果您一定要使用永久密钥,建议遵循 最小权限指引原则 对永久密钥的权限范围进行限制。

//三、初始化参数TAIOralEvaluationParam param = new TAIOralEvaluationParam();param.context = this;param.appId = PrivateInfo.appId; // 获取PrivateInfo里面的appIdparam.soeAppId = PrivateInfo.soeAppId;param.secretId = PrivateInfo.secretId; // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140param.secretKey = PrivateInfo.secretKey; // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140param.token = PrivateInfo.token;param.sessionId = UUID.randomUUID().toString();param.workMode = TAIOralEvaluationWorkMode.ONCE;param.evalMode = TAIOralEvaluationEvalMode.SENTENCE;param.serverType = TAIOralEvaluationServerType.ENGLISH;param.fileType = TAIOralEvaluationFileType.MP3; param.scoreCoeff = 1.0;param.refText = "";param.keyword = "";

传输数据

本地音频数据

获取本地音频数据,由用户控制分片逻辑,对本地音频文件进行评测。

// 读取音频文件,音频文件存放在app/assets目录下try {    InputStream is = getAssets().open("hello_guagua.mp3");    byte[] buffer = new byte[is.available()];    is.read(buffer);    is.close();    TAIOralEvaluationData data = new TAIOralEvaluationData();    data.seqId = 1;    data.bEnd = true;    data.audio = buffer;    this.oral.oralEvaluation(param, data);} catch (Exception e) {
}

本地音频文件路径

获取本地音频文件路径,由 SDK 内部控制分片逻辑,对本地音频文件进行评测。

try {    String path = getResourcePath(this, "test5.mp3");    this.Oral.oralEvaluation(param, path);} catch (Exception e) {
}

获取本地音频文件路径的方法参考如下:

private String getResourcePath(Context context, String fileName) {    File file = new File(context.getFilesDir(), fileName);    if (file.exists()) {        return file.getAbsolutePath();    }
try { InputStream inputStream = context.getAssets().open(fileName); FileOutputStream outputStream = new FileOutputStream(file); byte[] buffer = new byte[10240]; int length; while ((length = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, length); } outputStream.close(); inputStream.close(); return file.getAbsolutePath(); } catch (IOException e) { e.printStackTrace(); } return null;}

参数说明

请求参数说明

TAIOralEvaluationParam 参数说明

参数 类型 必填 说明
fileType TAIOralEvaluationFileType 语音文件类型。TAIOralEvaluationFileType.RAW: rawTAIOralEvaluationFileType.WAV: wavTAIOralEvaluationFileType.MP3:mp3
sessionId String 语音段唯一标识
refText String 被评估语音对应的文本。参考评估文本介绍
workMode TAIOralEvaluationWorkMode 语音输入模式
TAIOralEvaluationWorkMode.STREAM:流式分片
TAIOralEvaluationWorkMode.ONCE:非流式一次性评估
参考语音输入模式介绍
evalMode TAIOralEvaluationEvalMode 评测模式。
TAIOralEvaluationEvalMode.WORD :单词模式
TAIOralEvaluationEvalMode.SENTENCE:句子模式
TAIOralEvaluationEvalMode.PARAGRAPH:段落模式
TAIOralEvaluationEvalMode.FREE:自由说模式
TAIOralEvaluationEvalMode.WORD_FIX:单词音素纠错模式
TAIOralEvaluationEvalMode.SCENE:情景评测模式
TAIOralEvaluationEvalMode.MULTI_BRANCH:句子多分支评测模式
TAIOralEvaluationEvalMode.WORD_REALTIME:单词实时评测模式
TAIOralEvaluationEvalMode.SPELLING:拼音评测模式参考评测模式介绍
scoreCoeff Double 评价苛刻指数,取值为[1.0 – 4.0]范围内的浮点数,用于平滑不同年龄段的分数。参考苛刻指数介绍
soeAppId String 业务应用 ID,与账号应用 AppID 无关,是用来方便客户管理服务的参数。具体参考业务应用 ID 介绍
serverType TAIOralEvaluationServerType 评估语言
TAIOralEvaluationServerType.ENGLISH:英文(默认)
TAIOralEvaluationServerType.CHINESE:中文
参考评测模式介绍
sentenceInfoEnable Boolean 输出断句中间结果标识。
Keyword String 参考主题词和关键词
textMode Int 输入文本模式。TAIOralEvaluationTextMode.NORMAL:普通文本,TAIOralEvaluationTextMode.PHONEME:音素结构文本,参考音素标注
isFixOn Boolean 用于设置是否开启单词映射
isQuery boolean 查询标识。true:查询请求
isAsync boolean 异步模式标识。false:同步模式;true:异步模式
serviceTimeoutTryTimes int 重试次数。使用查询标识的查询次数
serviceTimeoutWaitInterval int 重试时间间隔。使用查询标识的重试时间间隔
cosBuketUrl String 音频存储路径,将音频存储到 COS 桶中(1.2.3.117及以上版本支持)。使用参考音频存储路径

TAICommonParam(TAIOralEvaluationParam)参数说明

参数 类型 必填 说明
context Context 上下文
AppID String 账号应用 ID,参考账号信息
timeout Int 超时时间,默认30秒
secretId String 您在控制台获取的密钥 ID,临时授权凭证的 TmpSecretId
secretKey String 您在控制台获取的密钥 Key,临时授权凭证的 TmpSecretKey
token String 临时授权凭证的 Token,仅在使用授权凭证时需要设置此参数

TAIOralEvaluationData 参数说明

参数 类型 必填 说明
seqId Int 流式数据包的序号。取值范围[1,3000]。
bEnd Boolean 是否传输完毕标志
audio byte[] 音频数据
length Long 音频数据长度

返回结果参数

TAIOralEvaluationRet 参数说明

参数 类型 说明
sessionId String 语音段唯一标识
requestId String 唯一请求 ID,每次请求都会返回
pronAccuracy Double 发音精准度,取值范围[-1, 100],当取-1时指完全不匹配
pronFluency Double 发音流利度,取值范围[0, 1],当为词模式时,取值无意义
pronCompletion Double 发音完整度,取值范围[0, 1],当为词模式时,取值无意义
words List 单词详细发音评估结果
SuggestedScore Double 建议评分,取值范围[0,100]
sentenceInfoSet List 断句中间结果,待用户发音完全结束后,系统会给出一个综合所有句子的整体结果
refTextId Int 匹配候选文本的序号,在句子多分支、情景对 话、段落模式下表示匹配到的文本序号
注意:此字段可能返回 null,表示取不到有效值。
KeyWordHits List 主题词命中标志,0表示没命中,1表示命中注意:此字段可能返回 null,表示取不到有效值。
UnKeyWordHits List 负向主题词命中标志,0表示没命中,1表示命中注意:此字段可能返回 null,表示取不到有效值。

TAIOralEvaluationWord 参数说明

参数 类型 说明
beginTime Int 当前单词语音起始时间点,单位为ms
endTime Int 当前单词语音终止时间点,单位为ms
pronAccuracy Double 单词发音精准度,取值范围[-1, 100],当取-1时指完全不匹配
pronFluency Double 单词发音流利度,取值范围[0, 1]
word String 当前词
matchTag Int 当前词与输入语句的匹配情况,0:匹配单词、1:新增单词、2:缺少单词、3:错读的词、4:未录入单词。
phoneInfos List 音素评估详情注意:在 EvalMode 为2、3、5时,此参数为空。
referenceWord String 读音评估对应的单词
KeywordTag Int 主题词命中标志,0表示没命中,1表示命中注意:此字段可能返回 null,表示取不到有效值。

SentenceInfoSet 参数说明

参数 类型 说明
sentenceId Int 句子序号
words List 单词粒度详细发音评估结果
pronAccuracy Double 音素发音精准度,取值范围[-1, 100],当取-1时指完全不匹配
pronFluency Double 单词发音流利度,取值范围[0, 1]
pronCompletion Boolean 发音完整度,取值范围[0, 1],当为词模式时,取值无意义
suggestScore Double 建议评分,取值范围[0,100]
refTextId Int 匹配候选文本的序号,在句子多分支、情景对 话、段落模式下表示匹配到的文本序号注意:此字段可能返回 null,表示取不到有效值。
KeyWordHits List 主题词命中标志,0表示没命中,1表示命中注意:此字段可能返回 null,表示取不到有效值。
UnKeyWordHits List 负向主题词命中标志,0表示没命中,1表示命中注意:此字段可能返回 null,表示取不到有效值。

TAIOralEvaluationPhoneInfo 参数说明

参数 类型 说明
beginTime Int 当前音素语音起始时间点,单位为ms
endTime Int 当前音素语音终止时间点,单位为ms
pronAccuracy Double 音素发音精准度,取值范围[-1, 100],当取-1时指完全不匹配
detectedStress Boolean 当前音素是否检测为重音
phone String 用户实际发音音素
stress Boolean 用户实际发音音素是否应为重音
rLetter String 音素对应的字母
referencePhone String 参考音素,在单词诊断模式下,代表标准音素

TAIError 参数说明

参数 类型 说明
Code Int 返回错误码0:成功1:参数错误2:json 解析错误3:http 请求错误4:服务器错误详细错误信息请查看 desc 参数
desc String 详细错误描述
requestId String 请求 ID,用于订单唯一标识

TAIOralEvaluationListener 参数说明

参数 类型 说明
data TAIOralEvaluationData 音频数据
result TAIOralEvaluationRet 结果
error TAIError 错误信息
isSpeak boolean 是否检测到声音 (从开始录音到检测时) 必须在 setRecorderParam 中开启 vad。检测到静音内部不会停止录制,业务层可以根据此回调主动停止录制或提示用户
volume boolean 分贝大小,必须在 setRecorderParam 中开启 vad。volume 范围[0-120]



腾讯云官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

发表评论