本文由雲+社群發表
作者:騰訊智慧教育
概述
騰訊雲智聆口語評測(英文版)(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
引數 | 型別 | 說明 | 是否必填 | 預設值 |
---|---|---|---|---|
InitUrl | String | 初始化介面地址 | 是 | 無 |
TransUrl | String | 評分介面地址 | 是 | 無 |
WorkMode | Integer | 上傳方式:語音輸入模式,0流式分片,1非流式一次性評估 | 否 | 0 |
EvalMode | Integer | 評估模式,0:詞模式, 1:句子模式 | 否 | 0 |
ScoreCoeff | Float | 評價苛刻指數,取值為1.0 – 4.0範圍內的浮點數 用於平滑不同年齡段的分數,1.0為小年齡段,4.0為最高年齡段 | 否 | 3.5 |
SoeAppId | String | 業務應用ID,與賬號應用APPID無關,是用來方便客戶管理服務的引數 | 否 | 無 |
StorageMode | Integer | 音訊儲存模式,0:不儲存,1:儲存到公共物件儲存, 輸出結果為該會話最後一個分片TransmitOralProcess 返回結果 AudioUrl 欄位。 | 否 | 無 |
success | function | 建立成功回撥 | 否 | 無 |
error | function | 建立失敗回撥 | 否 | 無 |
使用者需自行替換後臺介面地址,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
});
複製程式碼
線上Demo
錯誤碼
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);
}複製程式碼
此文已由騰訊雲+社群在各渠道釋出
獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社群-雲加社群官方號及知乎機構號