以語音評測的PC端demo程式碼為例,講解口語評測如何實現

騰訊雲加社群發表於2019-01-22

本文由雲+社群發表

作者:騰訊智慧教育

img

概述

騰訊雲智聆口語評測(英文版)(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

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);

}複製程式碼

此文已由騰訊雲+社群在各渠道釋出

獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社群-雲加社群官方號及知乎機構號

來源:https://juejin.im/post/5c4696e7f265da616a47f3f3

相關文章