音声評価のPC端のデモコードを例にし、スピーチ評価の実現方法について説明します。

この記事は約10分で読めます。

概要

テーngxunクラウドのスマートオーラル評価(英語版)(Smart Oral Evaluation-English、SOE-E)は、テーngxunクラウドが提供する音声評価製品です。英語でのスピーチトレーニングの教育シーンに基づいて、テーngxunクラウドの音声処理技術を応用し、特徴量抽出、音声モデル、音声認識アルゴリズムを活用して、子供から大人までの英語の発音評価を高精度で提供しています。テーngxunクラウドのスマートオーラル評価(英語版)は、単語モードと文章モードの評価をサポートし、発話の多面的なフィードバックを提供し、英語でのスピーチトレーニングアプリケーションで広く応用できます。

本SDKは、スマートオーラル評価(英語版)のWebバージョンで、スマートオーラル評価(英語版)のネットワークAPIを呼び出してローカルオーディオファイルを処理し、シンプルな録音機能を提供しています。利用者はビジネスに焦点を当て、簡単に二次開発を行うことができます。

本文書ではWeb SDKについて説明し、詳細なネットワークAPIについてはAPIドキュメントを参照してください。

使用説明

SDK導入

Webページに以下のコードを追加するだけで済みます。

<script src="https://imgcache.qq.com/open/qcloud/soe/TencentSOE-0.0.1.js"></script>

オブジェクトの作成

new TencentSOE

項目 説明 必須 デフォルト
InitUrl 文字列 初期化インターフェースのアドレス はい なし
TransUrl 文字列 スコアリングインターフェースのアドレス はい なし
WorkMode 整数 アップロードモード:音声入力モード、0はストリーム式チャンク、1は1回性の評価 いいえ 0
EvalMode 整数 評価モード、0:単語モード、1:文章モード いいえ 0
ScoreCoeff 浮動小数点数 評価の厳しさ指数、1.0 - 4.0の範囲の浮動小数点数
異なる年齢グループのスコアをスムーズにするために使用、1.0は若い年齢グループ、4.0は最高の年齢グループ
いいえ 3.5
SoeAppId 文字列 ビジネスアプリケーションID、アカウントアプリケーションAPPIDとは関係なく、顧客がサービスを管理しやすいようにするパラメータ いいえ なし
StorageMode 整数 オーディオストレージモード、0:ストレージしない、1:コモンオブジェクトストレージに保存、
結果出力はセッションの最後のチャンクTransmitOralProcess返却結果AudioUrlフィールド。
いいえ なし
success 関数 作成成功コールバック いいえ なし
error 関数 作成失敗コールバック いいえ なし

ユーザーはバックエンドインターフェースアドレスを自行置き換え、Node.jsバージョンはこのSDKを参考に let 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

https://soe.cloud.tencent.com

エラーコード

10000 パラメータ形式が間違っている
10001 現在のブラウザは録音機能をサポートしていない
10002 マイク로フォンへのアクセス許可がされていない
10003 発音評価の初期化インターフェースを提供していない
10004 発音データの送信インターフェースを提供していない
10005 評価テキストを提供していない
10020 インターフェースエラー

ヒント: 非ローカル環境では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);
}

aiスピーキング

ドルフィンAIは言語学習アプリケーションのためのプロフェッショナルな発音評価API(pronunciation assessment api)ソリューションを提供します。音素、単語、文章、チャプター、発音矯正、単語矯正、クイズ、フリーダイアログ、多肢選択問題など幅広く提供しています。当社の発音評価製品(pronunciation assessment)は、英語と中国語、クラウドAPI、オンプレミス、オフラインデバイスの展開をサポートしています。当社の発音評価API(pronunciation assessment api)は、正確性、流暢性、完全性、リズムの次元をカバーする豊富な評価指標を提供し、音素、単語、文の異なるレベルの評価スコアも提供します。また、音素、単語、文の異なるレベルでの評価スコアも提供します。数千万人のユーザーに安定した効率的で安全なサービスを提供しています。ドルフィンAIの発音評価製品(pronunciation assessment)を試してみませんか?

タイトルとURLをコピーしました