音声モデルトレーニングのベスト プラクティス
Note
発音トレーニングを含む音声モデルのカスタマイズは、Video Indexer Azure 試用版アカウントと Resource Manager アカウントでのみサポートされます。 クラシック アカウントではサポートされていません。 アカウントの種類を無償で更新する方法のガイダンスについては、「 Azure AI Video Indexer アカウントの更新を参照してください。 カスタム言語エクスペリエンスの使用に関するガイダンスについては、「 言語モデルをカスタマイズするを参照してください。
Azure AI Video Indexer と Azure AI Speech サービスの統合により、ユニバーサル言語モデルは、Microsoft が所有するデータでトレーニングされ、一般的に使用される音声言語を反映する基本モデルとして利用されます。 基本モデルは、さまざまな一般的なドメインを表す方言と発音で事前トレーニングされています。 この基本モデルは、ほとんどの音声認識シナリオで適切に動作します。
ただし、ベース モデルの文字起こしで一部のコンテンツが正確に処理されない場合があります。 このような状況で、カスタマイズされた音声モデルを使用して、モデルをトレーニングするためのテキスト データを提供することで、コンテンツに固有のドメイン固有のボキャブラリや発音の認識を向上させることができます。 音声カスタマイズ モデルを作成して適応させるプロセスを通じて、コンテンツを適切に文字起こしできます。 Video Indexers の音声カスタマイズの使用に追加料金はかかりません。
カスタマイズされた音声モデルを使用するタイミング
コンテンツに業界固有の用語が含まれている場合や Video Indexer の文字起こしの結果を確認時に不正確であることに気付いた場合は、カスタム音声モデルを作成してトレーニングし、用語を認識し、文字起こしの品質を向上させることができます。 インデックスを作成する予定のコンテンツに関連する単語と名前が繰り返し表示されることが予想される場合にのみ、カスタム モデルを作成する価値があります。 モデルのトレーニングは反復的なプロセスである場合があり、最初のトレーニングの後も結果は改善を使用する可能性があり、追加のトレーニングの恩恵を受ける可能性があります。ガイダンスについては、「 カスタム モデルを準備する 」セクションを参照してください。
ただし、トランスクリプトでいくつかの単語または名前が誤って文字起こしされている場合は、カスタム音声モデルは必要ない可能性があります。特に、今後インデックス作成を予定しているコンテンツで単語または名前が一般的に使用されることが想定されていない場合です。 Video Indexer Web サイトでトランスクリプトを編集および修正するだけで (「Azure AI Video Indexer Web サイト での文字起こしの表示と更新」を参照)、カスタム音声モデルを使用して対処する必要はありません。
カスタム モデルと発音をサポートする言語の一覧については、「Azure AI Video Indexer の言語サポート」の言語サポート表のカスタマイズと発音の列を参照してください。
データセットのトレーニング
ビデオのインデックス作成時に、カスタマイズされた音声モデルを使用して文字起こしを改善できます。 モデルは、プレーン テキスト データと発音データを含めることができるデータセットを読み込むことでトレーニングされます。
カスタム モデルのテストとトレーニングに使用されるテキストには、モデルで認識するさまざまなコンテンツとシナリオのサンプルが含まれている必要があります。 データセットを作成およびトレーニングするときは、次の要因を考慮してください:
- ユーザーがモデルと対話するときに行う音声ステートメントの種類を説明するテキストを含めます。 たとえば、主にスポーツに関連しているコンテンツの場合、スポーツに関連する用語や主題を含むコンテンツを使用してモデルをトレーニングします。
- データには、モデルに認識させる必要があるすべての音声の差異を含めます。 アクセント、方言、言語混合など、多くの要因によって音声が異なる場合があります。
- 文字起こしを計画しているコンテンツに関連するデータのみを含めます。 他のデータを含めると、認識の品質が全体的に低下する可能性があります。
データセットの種類
カスタマイズに使用できるデータセットの種類は 2 つあります。 問題に対処するためにどのデータセットを使用するかを決めるには、次の表を参考にしてください。
使用事例 | データ型 |
---|---|
医療用語や IT 用語などの業界固有の語彙や文法に対する認識精度を向上させる。 | プレーンテキスト |
製品名や頭字語など、発音が標準ではない単語または用語の表音および表示形式を定義する。 | 発音データ |
トレーニング用のプレーンテキスト データ
関連するテキストのプレーンテキスト文を含むデータセットを使用して、ドメイン固有の単語やフレーズの認識を向上させることができます。 関連テキスト文を使用すると、一般的な単語やドメイン固有の単語をコンテキストに表示することによって、その単語の誤認識に関連する置換エラーを減らすことができます。 ドメイン固有の単語は、一般的でない単語や造語である可能性がありますが、認識できるように明快に発音する必要があります。
プレーンテキスト データセットのベスト プラクティス
- ドメイン関連の文は、1 つのテキスト ファイルで指定してください。 完全な文を使用する代わりに、単語のリストをアップロードできます。 ただし、これはボキャブラリに追加されますが、単語が通常どのように使用されるかはシステムに教えられません。 すべての発話または発話の一部 (ユーザーが言いそうな文や語句) を指定すると、言語モデルはその新しい単語とその使用方法を学習します。 カスタム言語モデルは、システムに新しい単語を追加するだけでなく、新しいアプリケーションに対して既知の単語の確度を調整するのに便利です。 すべての発話を指定すると、システムがより学習できるようになります。
- 予想される発話に近いテキスト データを使用します。 発話は、完全または文法的に正しい必要はありませんが、モデルで認識されることが予想される音声入力を正確に反映している必要があります。
- 各文またはキーワードを別々の行に配置してみてください。
- 製品名などの用語の重みを増やすには、その用語を含む複数の文を追加します。
- コンテンツでよく使われるフレーズについては、多くの例を提示することが有効です。それによりシステムにこれらの用語を聞き取るように指示するからです。
- 一般的でないシンボル (~、# @ % > は破棄されます) を含めないでください。 それらが出現する文も破棄されます。
- 何十万もの文など、入力を大きくしすぎるのは避けてください。それによりブーストの効果が薄くなるためです。
この表を使用して、プレーンテキスト データセット ファイルが確実に正しく書式設定されるようにします。
プロパティ | 値 |
---|---|
テキストのエンコード | UTF-8 BOM |
1 行あたりの発話の数 | 1 |
ファイルの最大サイズ | 200 MB |
プレーンテキスト ファイルで次のガイドラインに従ってみてください:
- 文字、単語、または単語のグループを 3 回以上繰り返さないようにします。たとえば、繰り返しが多すぎる ("はいはいはいはい" など) 行はサービスがドロップする可能性があるためです。
- 特殊文字または U+00A1 より上の UTF-8 文字は使用できません。
- URI は拒否されます。
- 一部の言語 (日本語や韓国語など) では、大量のテキスト データをインポートする際に時間がかかったり、タイム アウトしたりすることがあります。データセットは、それぞれ最大 20,000 行のテキスト ファイルに分割することを検討してください。
トレーニング用の発音データ
カスタム音声モデルにカスタム発音データセットを追加して、誤って発音された単語、フレーズ、または名前の認識を向上させることができます。
発音データセットには、単語または語句の音声形式と、認識された表示フォームを含める必要があります。 読み上げられた形式は、“トリプル A” などの音声シーケンスです。 文字、単語、音節、または 3 つすべての組み合わせで構成できます。 認識された表示形式は、文字起こしに単語または語句を表示する方法です。 こちらの表には、次の例が含まれています。
認識され、表示されるフォーム | 音声フォーム |
---|---|
3CPO | three c p o |
CNTK | c n t k |
AAA | トリプル A |
発音データセットは、1 つのテキスト ファイルで提供します。 音声発話と、それぞれのカスタム発音を含めます。 ファイル内の各行は、認識された形式で始まり、タブ文字、スペース区切りの発音シーケンスの順に続く必要があります。
3CPO three c p o
CNTK c n t k
IEEE i triple e
発音データセットを作成してトレーニングする場合は、次の点を考慮してください:
カスタムの発音ファイルを使用して、一波天気な単語の発音を変更することはお勧めしません。
単語や人名が誤って文字起こしされるバリエーションがいくつかある場合、発音データセットをトレーニングする際に、その一部または全部を使用することを検討してください。 たとえば、ビデオで Robert が 5 回言及され、Robort、Ropert、robbers として文字起こしされた場合です。 次の例のように、ファイル内のすべてのバリエーションを含めてみてください。しかし、robbers のような実際の単語を使ったトレーニングでは、ビデオの中で robbers (強盗) が言及されると、Robert として文字起こしされてしまうので注意が必要です。
Robert Roport
Robert Ropert
Robert Robbers
発音モデルは頭字語に対処するためのものではありません。 たとえば、Doctor を Dr.として文字起こしする場合、これは発音モデルでは実現できません。
発音データセット ファイルが有効で正しい形式であることを確認するには、次の表を参照してください。
プロパティ | 値 |
---|---|
テキストのエンコード | UTF-8 BOM (英語では ANSI もサポートされています) |
1 行のあたりの発音数 | 1 |
ファイルの最大サイズ | 1 MB (Free レベルに 1 KB) |
カスタム モデルを改善する
発音モデルのトレーニングは反復的なプロセスになる可能性があります。これは、モデルの結果の最初のトレーニングと評価の後に、対象の発音に関するより多くの知識を得られる場合があるからです。 既存のモデルは編集または変更できないため、モデルのトレーニングには、追加情報を含むデータセットの作成とアップロード、および新しいデータセットに基づく新しいカスタム モデルのトレーニングが繰り返し必要になります。 その後、新しいカスタム音声モデルでメディア ファイルのインデックスを再作成します。
例:
たとえば、スポーツ コンテンツのインデックス作成を計画し、特定のスポーツ用語や選手やコーチの名前でトランスクリプトの精度の問題を予測するとします。 インデックスを作成する前に、関連するスポーツ用語を含むコンテンツを含むプレーンテキスト データセットと、プレイヤーとコーチの名前の一部を含む発音データセットを含む音声モデルを作成しました。 カスタム音声モデルを使用していくつかのビデオのインデックスを作成し、生成されたトランスクリプトを確認するときに、用語が正しく文字起こしされている間、多くの名前が表示されていないことがわかります。 次の手順を実行して、将来のパフォーマンスを向上させることができます:
トランスクリプトを確認し、間違って文字起こしされたすべての名前をメモします。 次の 2 つのグループに分類できます:
- 発音ファイルに含まれていない名前。
- 発音ファイル内の名前だが、まだ正しく文字起こしできない名前。
新しいデータセットを作成します。 発音データセット ファイルをダウンロードするか、ローカルに保存した元のファイルを変更します。 グループ A の場合、新しい名前がどのように誤って文字起こしされたか (Michael Mikel) を添えてファイルに追加します。 グループ B の場合、それぞれの行に正しい名前と、どのように間違って文字起こしされたかを示す一意の例を追加します。 次に例を示します。
Stephen Steven
Stephen Steafan
Stephen Steevan
このファイルを新しいデータセット ファイルとしてアップロードします。
新しい音声モデルを作成し、元のプレーンテキスト データセットと新しい発音データセット ファイルを追加します。
新しい音声モデルでビデオのインデックスを再作成します。
必要に応じて、結果に満足がいくまで手順 1 ~ 5 を繰り返します。