Google Cloud Speech コンソールでカスタム Speech-to-Text モデルをファインチューニングするために音声データとテキストデータを準備する方法について説明します。トレーニング データの品質は、作成するモデルの有効性に影響します。ノイズや異常な語彙など、本番環境での推論時にモデルが応答する内容に直接関連し、代表的な音声とテキストのコンテキストを含む多様なデータセットを構成する必要があります。
カスタム Speech-to-Text モデルを効果的にトレーニングするには、次のものが必要です。
- 100 音声時間以上のトレーニング データ(音声のみの場合もあれば、音声とグラウンド トゥルースとして対応するテキスト文字起こしを使用する場合もあります)。このデータは初期のトレーニング フェーズで重要です。このため、モデルは音声パターンと語彙のニュアンスを学習します。詳細については、グラウンド トゥルース データセットを作成するをご覧ください。
- 少なくとも 10 音声時間の検証データを含む別個のデータセット(グラウンド トゥルースとして対応するテキストの文字起こしを含む)。
始める前に
Google Cloud アカウントを登録して Google Cloud プロジェクトを作成し、Speech-to-Text API を有効にします。
- Cloud Storage に移動します。
- バケットをまだ作成していない場合は作成します。
データセットを作成する
データセットを作成するには、Cloud Storage バケットに任意のサブディレクトリを 2 つ作成する必要があります。次のようなシンプルな命名規則に従います。
- すべてのトレーニング ファイルを格納する training_dataset サブディレクトリを作成します。
- すべてのトレーニング ファイルを格納する validation_dataset サブディレクトリを作成します。
- グラウンド トゥルースのアノテーション ガイドラインに従って、音声ファイルとテキスト ファイルをディレクトリにアップロードします。
データセットのガイドライン
- LINEAR16 エンコードの音声ファイルの場合、トレーニングと検証の両方でサポートされているファイル形式は
.wav
で、テキスト ファイルの場合は.txt
になります(使用可能な場合)。ファイル名に ASCII 以外の文字は使用しないでください。 - 同じディレクトリ内にある音声ファイルは、個別の TXT ファイルで提供する必要があります。各ファイルは対応する WAV ファイルと同じ名前(例: my_file_1.wav、my_file_1.txt)にします。音声文字変換ファイルは、音声ファイルごとに 1 つだけ含める必要があります。
トレーニング データ
- トレーニング用のファイルはすべて、ネストされたフォルダではなく、同じディレクトリに配置する必要があります。
- 省略可: 可能な場合は、音声ファイルに音声文字変換を提供します。タイムスタンプは不要です。
- 音声ファイルの音声の累積再生時間が 100 時間を超えるようにしてください。そうでないと、トレーニング ジョブが失敗します。
次に、ファイルがトレーニング データセットとしてアップロードされた後のディレクトリ構造の例を示します。
├── training_dataset │ ├── example_1.wav │ ├── example_1.txt │ ├── example_2.wav │ ├── example_2.txt │ ├── example_3.wav (Note: Audio only instance, without corresponding text) │ └── example_4.wav (Note: Audio only instance, without corresponding text)
検証データ
- 検証対象のファイルはすべて、ネストされたフォルダのない validation_dataset という同じディレクトリに配置されます。
- 検証用の音声はそれぞれ 30 秒以下である必要があります。
- 同じディレクトリ内の音声ファイルごとに、グラウンド トゥルースの音声文字変換を個別の TXT ファイルで提供します。
次に、ファイルが検証データセットとしてアップロードされた後のディレクトリ構造の例を示します。
├── validation_dataset │ ├── example_1.wav │ ├── example_1.txt │ ├── example_2.wav │ └── example_2.txt
グラウンド トゥルースのアノテーション ガイドライン
次のフォーマットに関する指示をご確認ください。
数字
基数と序数は数字でのみ文字起こしされます。
- 音声: 「1 組みのトランプには、52 枚のカード、13 のランクが 4 組み、ダイヤモンド、ハート、スペードがあります。」
- グラウンド トゥルース テキスト: 「1 組みのトランプには、52 枚のカード、13 のランクが 4 組み、ダイヤモンド、ハート、スペードがあります」
通貨と単位
音声文字変換のロケールで一般的に表記されるため、音声文字変換します。数値の後に続く単位はすべて短縮します。前後関係から、数字または数字の並びが通貨や時間を指していることが明白な場合は、そのように形式を整えます。
日時
音声文字変換の言語で使用される日時を一般的な形式で音声文字変換します。可能であれば、時刻は hh:mm
形式で記述します。
住所
たとえば、場所、道路、州のフルネームを使用して音声文字変換します。明示的に発話されている場合は略語を使用します。エンティティとロケーションはカンマで区切ります。
適切な名前とアクセント
正式なスペルと句読点を使用して音声文字変換します。個人名に複数のスペルがあり、コンテキストが役に立たない場合は、最も頻度の高いスペルを使用します。
ブランド、商品名、メディア タイトル
これらは正式なフォーマットで、最もよく書かれているため、文字起こしを行います。
間投詞
笑い声や音声以外の発話は、最大 3 つの音節で文字起こしする必要があります。会話に含まれる笑いは完全に無視する必要があります。例:
- 音声: 「ha ha ha ha」
- 正解テキスト: 「hahaha」
複数の話者
通常、ダイアライゼーションはサポートされていないため、話者タグで区切らないでください。
次のステップ
アプリケーションでカスタム音声モデルを活用するには、次のリソースをご覧ください。