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

提供录音功能,对音频数据进行格式转换,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 = "";param.timeout = 30;param.retyrTimes = 0;

设置分片和静音检测

初始化 TAIRecorderParam 对象,并配置相关参数:
请在开始调用 startRecordAndEvaluation() 函数前设置 TAIRecorderParam 参数,静音检测您可以通过 vadEnable 参数打开,并通过 vadInterval 参数设置静音检测时间间隔。

//在开始调用`startRecordAndEvaluation`前设置录制参数recordParam = new TAIRecorderParam(); recordParam.fragSize =1024; recordParam.fragEnable =true; recordParam.vadEnable =true; recordParam.vadInterval =5000; recordParam.db = 20;this.oral.setRecorderParam(recordParam);

上层通知
当检测到静音或者录音分贝变化时,通过 TAIOralEvaluationListenner 通知上层。

//检测到静音@Overridepublic void onEndOfSpeech(boolean isSpeak) {    isSpeak参数(true:录音开始到此刻有检测到声音 ,false:未检测到声音)}  //音量发生变化this.oral.setListener(new TAIOralEvaluationListener() {    //检测到静音    @Override    public void onEndOfSpeech(boolean isSpeak) {        //isSpeak参数(true:录音开始到此刻有检测到声音 ,false:未检测到声音)    }             //音量发生变化    @Override    public void onVolumeChanged(final int volume) {       // 回调录音分贝大小[0-120] ,默认20    }});
public void onVolumeChanged(finalint volume) { //回调录音分贝大小[0-120] ,默认20}

开始录制

调用 startRecordAndEvaluation() 方法传入 TAIOralEvaluationParam 的 param 参数,并设置回调函数,即可开始录制。SDK 内部会根据评测参数进行评测

this.oral.startRecordAndEvaluation(param);

停止录制

调用 stopRecordAndEvaluation() 方法停止录制。推荐调用 startRecordAndEvaluation() 方法2s后才停止录制,否则可能正常获取到评测结果。

this.oral.stopRecordAndEvaluation();

获取本地音频文件

通过设置 audioPath 参数,根据设置路径获取音频文件。Demo 默认为当前路径。

param.audioPath = this.getFilesDir() + "/" + param.sessionId + ".mp3";

如果无权限获取当前路径下的文件,可以使用根目录。

String filename = "/";  String audio_path = new String(Environment.getExternalStorageDirectory().getPath() + File.separator + filename);param.audioPath = audio_path + param.sessionId + ".mp3";

参数说明

请求参数说明

TAIOralEvaluationParam 参数说明

参数 类型 必填 说明
fileType TAIOralEvaluationFileType 语音文件类型。TAIOralEvaluationFileType.MP3: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 用于设置是否开启单词映射
audioPath String Android 本地音频保存路径
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秒
retryTimes int 超时重试次数
secretId String 您在控制台获取的密钥 ID,临时授权凭证的 TmpSecretId
secretKey String 您在控制台获取的密钥 Key,临时授权凭证的 TmpSecretKey
token String 临时授权凭证的 Token,仅在使用临时授权凭证时需要设置此参数

TAIRecorderParam 参数说明

参数 类型 必填 说明
fragEnable Boolean 是否开启分片,默认 YES
fragSize Int 语音分片大小,默认1024,建议为1024的整数倍,范围[1k,10k]
vadEnable Boolean 是否开启静音检测,默认 NO
vadInterval Int 静音检测时间间隔,单位为ms
db Int 静音检测分贝阈值,默认为20dB

返回结果参数

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

发表评论