主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

外部APIを使用したオーディオ信号の発声された単語のラベル付け

この例では,信号ラベラーで発声された単語にラベル付けする方法を示します。この例では,IBM® Watson Speech to Text API と Audio Toolbox™ ソフトウェアを使用します。以下の手順については、“语音转录(音频工具箱)を参照してください。

  1. MATLAB®中央から入手可能な音频工具箱のspeech2text拡張機能をダウンロードします。

  2. IBM Cloudサービスから提供されているIBM Watson演讲APIを設定します。IBM Cloudアカウントと演讲文本サービスインスタンスを作成し,サービスダッシュボードに移動して,資格情報(APIキーとURLの値)をコピーしなければなりません。詳細については,IBMドキュメンテーションの入門チュートリアルを参照してください。

音声データの読み込み

男性の声で話された“橡树强,和也给阴影”という文を含むオーディオデータファイルを読み込みます。信号は44.1 kHzでサンプリングされています。

(y, fs) = audioread (“oak.m4a”);%听到,键入soundsc(y,fs)
  1. 信号ラベラーを開きます。[ラベラー]タブで,[インポート]▼をクリックし,[メンバー]リストの从工作空间を選択します。ダイアログボックスで,信号yを選択します。

  2. 時間情報を追加します。ドロップダウンリストから时间を選択し,サンプルレートとしてfs(kHz単位)を指定します。

  3. ダイアログボックスを閉じます。[ラベル付き信号セットブラウザー]に信号が表示されます。

ラベルの定義

信号に付加するラベルを定義します。[ラベラー]タブの(定義の追加)▼をクリックします。[ラベル名)单词を指定して,[ラベルタイプ]ROIを選択し,[データ型)として字符串と入力します。

カスタム自動ラベル付け関数の作成

オーディオファイルの発声された単語にラベル付けするカスタム関数を作成します。(関数sttのコードは,後ほどこの例で示します)。詳細については,カスタムラベル付け関数を参照してください。

  1. speech2textPコードファイルとIBM Cloudの資格情報が格納されているJSONファイルを保存したディレクトリに移動します。

  2. 関数を作成するために,[ラベラー]タブの[値の自動処理)▼をクリックして,[カスタム関数の追加)を選択します。信号ラベラーにより,追加する関数の名前,説明,およびラベルタイプの入力を求めるダイアログボックスが表示されます。名前フィールドにsttと入力し,[ラベルタイプ]としてROIを選択します。説明フィールドは空のままにすることも,独自の説明を入力することもできます。

  3. 関数コードをコピーして,表示される空のテンプレートに貼り付けます。ファイルを保存します。関数がギャラリーに表示されます。

発声された単語の検索と特定

入力信号の発声された単語を検索して特定します。

  1. [ラベル付き信号セットブラウザー]で,yの横にあるチェックボックスをオンにします。

  2. [ラベルの定義]ブラウザーで单词を選択します。

  3. [値の自動処理)ギャラリーで,sttを選択します。

  4. (自動ラベル付け]▼をクリックし,Auto-Label信号を選択します。表示されるダイアログボックスで(好的)をクリックします。

信号ラベラーが発声された単語を検索してラベル付けします。

ラベル付き信号のエクスポート

ラベル付き信号をエクスポートします。[ラベラー]タブで,[エクスポート]▼をクリックし,标记信号设置为文件を選択します。表示されるダイアログボックスで,ラベル付き信号セットにTranscription.matという名前を付け,オプションで簡単な説明を追加します。[エクスポート]をクリックします。

MATLAB®コマンドウィンドウに戻ります。ラベル付き信号セットを読み込みます。このセットのメンバーは1つのみです。ラベルの名前を取得し,その名前を使用して,文字に起こされた単語を取得して表示します。

负载转录ln = getLabelNames (transcribedAudio);v = getLabelValues (transcribedAudio 1 ln)
v =7×2表ROILimits价值  ____________ ________ 0.59 - 0.97 0.09 - 0.56“橡树””是“1 1.78“强有力”的1.94 - 2.19”和“2.22 - 2.67”也“2.67 - 3.22”给“3.25 - 3.91“阴影”

ラベル値を文字列からカテゴリに変更します。signalMaskオブジェクトを使用して,単語ごとに異なる色を使用して信号をプロットします。

v.Value =分类(v.Value v.Value);msk = signalMask (v,“SampleRate”fs);s = getSignal (transcribedAudio, 1);s.y plotsigroi (msk)

関数stt:発声された単語の検索と特定

この関数は,IBM APIと音频工具箱の沃森演讲speech2text拡張機能を使用して,オーディオファイルから発声された単語を抽出します。

函数[labelVals,labelLocs] = stt(x,t, parentLabelLoc,varargin) aspeechObjectIBM = speechClient(“IBM”“时间戳”,真正的);fs = 1 / (t (2) - t (1));tixt = speech2text (aspeechObjectIBM x, fs);numLabels =元素个数(tixt.TimeStamps {:});labelVals =字符串(numLabels, 1);labelLocs = 0 (numLabels, 2);idx = 1:numLabels labelVals(idx) = tix. timestamps {:}{idx}{1};labelLocs (idx 1) = tixt.TimeStamps {:} {idx} {2};labelLocs (idx 2) = tixt.TimeStamps {:} {idx} {3};结束结束

参考

アプリ

オブジェクト

関連する例

詳細