本文由云+社区发表作者:腾讯智慧教育概述腾讯云智聆口语评测(英文版)(Smart Oral Evaluation-English,SOE-E)是腾讯云推出的语音评测产品,是基于英语口语类教育培训场景和腾讯云的语音处理技术,应用特征提取、声学模型和语音识别算法,为儿童和成人提供高准确度的英语口语发音评测。腾讯云智聆口语评测(英文版)支持单词和句子模式的评测,多维度反馈口语表现,可广泛应用于英语口语类教学应用中。本 SDK 为智聆口语测评(英文版)的 Web 版本,封装了对智聆口语测评(英文版)网络 API 的调用及本地音频文件处理,并提供简单的录音功能,使用者可以专注于从业务切入,方便简洁地进行二次开发。本文档只对 Web SDK 进行描述,详细的网络 API 说明请参见 API 文档。使用说明SDK引入只需要在您的 Web 页面中添加如下代码即可:html<script src=“https://imgcache.qq.com/open/qcloud/soe/TencentSOE-0.0.1.js"></script>创建对象new TencentSOE参数类型说明是否必填默认值InitUrlString初始化接口地址是无TransUrlString评分接口地址是无WorkModeInteger上传方式:语音输入模式,0流式分片,1非流式一次性评估否0EvalModeInteger评估模式,0:词模式, 1:句子模式否0ScoreCoeffFloat评价苛刻指数,取值为1.0 - 4.0范围内的浮点数 用于平滑不同年龄段的分数,1.0为小年龄段,4.0为最高年龄段否3.5SoeAppIdString业务应用ID,与账号应用APPID无关,是用来方便客户管理服务的参数否无StorageModeInteger音频存储模式,0:不存储,1:存储到公共对象存储, 输出结果为该会话最后一个分片TransmitOralProcess 返回结果 AudioUrl 字段。否无successfunction创建成功回调否无errorfunction创建失败回调否无用户需自行替换后台接口地址,nodejs版本可参考此SDKlet recorder = new TencentSOE({ InitUrl: ‘http://127.0.0.1:3000/cgi/init’, TransUrl: ‘http://127.0.0.1:3000/cgi/trans’, success() { // TODO }, error(err) { console.log(err); } });方法初始化/** * 调用初始化接口,设置测评文本 * @param { * success: function() {} // 成功回调 * error: function() {} // 失败回调 * } /recorder.init({ RefText: ‘about’, success() { recorder.start(); }, error(err) { console.log(err); }});开始录音/* * 开始录音 * @param { * error: function() {} // 录音过程出现错误时回调,选填 * } /recorder.start({ error(err) { console.log(err); }});停止录音/* * 停止录音,返回测评结果 * @param { * success: function() {} // 成功回调 * error: function() {} // 失败回调 * } /recorder.stop({ success(res) { // 获取blob对象,创建audio进行回放 let audio = document.createElement(‘audio’); audio.setAttribute(‘controls’, ‘’); let blobUrl = URL.createObjectURL(res.blob); document.body.appendChild(audio); // 输出测评得分 console.log(res.PronAccuracy) }, error(err) { console.log(err); }});重置参数/* * 重置参数,用于修改请求参数 * @param {Object} params */recorder.reset({ WorkMode: 1});在线Demohttps://soe.cloud.tencent.com错误码code错误说明10000参数格式错误10001当前浏览器不支持录音功能10002未开启麦克风访问权限10003未提供发音评估初始化接口10004未提供发音数据传输接口接口10005未提供测评文本10020接口错误Tip: 非本地环境必须使用https协议极简示例创建html, 引入TencentSOE SDK,代码如下<!DOCTYPE html><html lang=“en”><head> <meta charset=“UTF-8”> <title>Title</title> <script src=”//imgcache.qq.com/open/qcloud/soe/TencentSOE-0.0.1.js"></script></head><body> <input type=“text” value=“about” id=“word”> <button id=“start”>开始录音</button> <button id=“stop”>结束录音</button> <!– 显示当前状态 –> <span id=“status”></span> <!– 显示测评结果 –> <div id=“result”></div></body></html>编写录音代码:开始录音、结束录音、展示结果,代码如下let recorder = new TencentSOE({ InitUrl: ‘http://127.0.0.1:3000/cgi/init’, TransUrl: ‘http://127.0.0.1:3000/cgi/trans’, success(res) { console.log(‘创建成功’); }, error(err) { console.log(‘创建失败’); },});startBtn.onclick = function () { result.innerHTML = ‘’; status.textContent = ‘初始化中’; recorder.init({ RefText: word.value, success(res) { status.textContent = ‘录音转码中…’; recorder.start(); }, error(err) { console.log(’err’, err); } });};stopBtn.onclick = function () { recorder.stop({ success(res) { status.textContent = ‘已结束’; createAudioLinkFromBlob(res, ‘wav’); }, error(err) { console.log(’err’, err); } });};// 创建音频、下载链接function createAudioLinkFromBlob(res, type) { let audio = document.createElement(‘audio’); let alink = document.createElement(‘a’); let score = document.createElement(‘span’); let blobUrl = URL.createObjectURL(res.blob); alink.download = ‘demo.’ + type; alink.textContent = ‘demo.’ + type; alink.href = blobUrl; audio.src = blobUrl; audio.setAttribute(‘controls’, ‘’); score.textContent = ‘分数:’ + res.PronAccuracy; let container = document.createElement(‘div’); container.appendChild(audio); container.appendChild(alink); container.appendChild(score); result.appendChild(container);}此文已由腾讯云+社区在各渠道发布获取更多新鲜技术干货,可以关注我们腾讯云技术社区-云加社区官方号及知乎机构号