腾讯云智聆口语评测录音评测说明-教育服务解决方案
提供录音功能,对音频数据进行格式转换,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 接口说明
publicinterfaceTAIOralEvaluationListener{voidonEvaluationData(TAIOralEvaluationDatadata,TAIOralEvaluationRetresult);voidonEvaluationError(TAIOralEvaluationDatadata,TAIErrorerror);voidonFinalEvaluationData(TAIOralEvaluationDatadata,TAIOralEvaluationRetresult);voidonEndOfSpeech(booleanisSpeak);voidonVolumeChanged(intvolume);}
初始化参数
初始化 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折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
              
发表评论