Amazon Web Services ブログ
カスタム語彙を構築して、Amazon Transcribe による speech-to-text 文字起こしの精度を高める
Amazon Transcribe は、開発者が speech-to-text 機能をアプリケーションに追加することを容易にする完全マネージド型の自動音声認識サービス (ASR) です。ユースケースによっては、正しく文字起こしされていない分野固有の用語がある可能性があります (例、「EBITDA」や「myocardial infarction (心筋梗塞)」)。この記事では、カスタム語彙機能 (カスタム発音とカスタム表示フォーム) を活用して、ユースケースに関連する分野固有の単語や語句の文字起こし精度を向上させる方法を紹介します。
カスタム語彙は、他の方法では一般的な ASR サービスの一部にはならない用語を文字起こしするのを助ける強力な機能です。たとえば、ユースケースによって、「Hogwarts」のように、通常は言語モデルの一般的な辞書の一部ではないブランド名や固有名詞が含まれることがあります。この場合、カスタムテキストを追加できるだけでなく、発音に関して ASR サービスに指示し、システムが不慣れな用語をよりよく認識できるようにすることもできます。関連した話では、おそらく車のブランド名として「ロータス」と言う用語があるでしょう。当然のことながら、私たちはすでに「蓮 (ロータス)」を花として認識しています。しかし、ユースケースによっては、認識する状況の中で適切に大文字化することで、その用語を車両の製造元またはモデルとして文字起こしさせたいと望むでしょう。最近追加されたカスタム表示フォームを使用すると、これを実現することができます。
それでは、カスタム発音とカスタム表示フォームの両方を使用している例をいくつか見てみましょう。
まず、サンプルオーディオを録音して S3 バケットに保存しました (これは前提条件であり、次のドキュメントに従って実現できます)。参考までに、オーディオファイルの正確さや整合性をチェックするためのテキストは次の通りです。
「Hi, my name is Paul.And I’m calling in about my order of two separate LEGO toys.The first one is the Harry Potter Hogwarts Castle that has a cool Grindelwald mini-fig. The second set is a model of the Lotus Elise car.I placed the orders on the same day.Can you tell me when they will be arriving please?」
ご覧のとおり、非常に具体的なブランド名やカスタム用語がいくつかあります。それでは、Amazon Transcribe にオーディオサンプルをそのまま渡すとどうなるかを見てみましょう。まず、AWS コンソールにサインインし、新しい文字起こしジョブを作成します。
そして、次の画面で文字起こしジョブに名前を付け、サンプルオーディオが保存されている S3 バケットを参照します。言語モデルを「アメリカ英語」、ファイル形式を「WAV」と選択しました。オプションであるため、サンプルレートは空白のままにしておきます。また、この機能を使用しないで基本的な文字起こしジョブを実行して正確なパフォーマンスを確認したいため、カスタム語彙フィールドを意図的に空白のままにしていることにも注意してください。残りのすべてのフィールドはデフォルトのままにしています。この基本的なテストでは使用したくない機能であるからです。そして、「Create Job」をクリックして、文字起こしを開始します。
次の画面では、文字起こしジョブが完了し、プレビューウィンドウに出力テキストが表示されます。「Hi.My name is Paul, and I’m calling in about my order of two separate Lego toys.The first one is the Harry Potter Hogwarts Castle that has a cool, Grendel walled many fig.The second set is a model of the lotus, At least car.I placed the orders on the same day.Can you tell me when they will be arriving, please? Thanks.」
「Grindelwald」、「mini-fig」、「Lotus Elise」を間違えたことを除けば、文字起こしの出力は全体的にかなりうまくいったように見えます。さらに、適切に「LEGO」をすべて大文字で捉えてはいませんでした。これらはかなりコンテンツ固有のカスタム用語であるため、驚くことではありません。
それでは、カスタム語彙機能のカスタム発音を使用して文字起こしの出力を向上させる方法を見てみましょう。まず、カスタム用語 (Phrase) だけでなく、対応する発音も示す語彙ファイルを用意する必要があります。
簡単なテキストエディタを使用して、新しいカスタム語彙ファイルを作成します。次に、用語 (Phrase)、対応する発音 (IPA、International Phonetic Alphabet のガイドラインまたは SoundsLike を使用した綴り法)、そして好みの出力形式 (DisplayAs) を入力します。テキストエディタで、入力が不要な空白のタブを入力すると、白いバーが表示されるように設定しました。下の画像が、テキストエディタでの語彙テキストファイルの様子です。基本的な文字起こしで見逃されていた単語を補強していることに注意してください。このファイルを「paul-sample-vocab」という名前で保存します。
これで、今、私がしなければならないのは、Amazon Transcribe コンソールを通じてこのテキストファイル、つまり語彙ファイルをアップロードし、[Create Vocabulary] をクリックすることです。
カスタム語彙リストに表示されることで、カスタム語彙が正しく生成されたことを確認できます。
それでは、同じオーディオファイルに対して別の新しい文字起こしジョブを開始しましょう。今回はカスタム語彙テキストファイルを呼び出して結果の精度を確認します。このプロセスは、前に行ったプロセスと同じですが、今回はカスタム語彙「paul-sample-vocab」を指定します。もちろん、文字起こしジョブは最初のジョブとは違う名前にします。たとえば「customer-call-with-vocabulary」です。
すぐに、新しい文字起こしの結果を見てみましょう。
以下が文字起こしの出力です。
「Hi.My name is Paul, and I’m calling in about my order of two separate LEGO toys.The first one is the Harry Potter Hogwarts Castle.That has a cool Grindelwald mini-fig.The second set is a model of the Lotus Elise car.I placed the orders on the same day.Can you tell me when they will be arriving, please?」
「Grindelwald」のようなカスタムの形式名詞だけでなく、LEGO のおもちゃに固有の「mini-fig」のようなカスタム用語も正しく文字起こししています。また、ご覧のように「LEGO」がブランドとして綴られている場合は適切に大文字にすることができ、同時に「Lotus Elise」の大文字と小文字も適切に区別できました。
カスタムボ語彙は的を絞った方法で使用する必要があります。つまり、特定の音声録音に適用される用語のリストが具体的であるほど、文字起こしの結果が良くなります。300 語を超える単語を単一の語彙ファイルにまとめることはお勧めできません。この機能は、現在 Transcribe が利用できるすべてのリージョンで利用できます。完全なリストは、リージョンテーブルを参照してください。
詳細については、Amazon Transcribe の技術ドキュメントを参照してください。質問等がございましたら、コメントをお寄せください。
著者について
Paul Zhao は、AWS Machine Learning のプロダクトマネージャーです。彼は、Amazon Transcribe サービスを管理しています。仕事以外では、Paul はオートバイが大好きで、木工細工を熱心に楽しんでいます。
Yibin Wang は、Amazon Transcribe のソフトウェア開発エンジニアです。 仕事以外では、Yibin は旅行をしたり、新しい料理体験を探ったりするのが好きです。