Amazon Transcribeのストリーミング文字起こしで、自動言語識別機能が利用可能になりました

2022.01.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

Amazon Transcribeではストリーミングでの文字起こしが可能です。
現在、文字起こし機能にはストリーミングとバッチの2種類が存在します。

ストリーミング文字起こしでは従来では開始時に文字起こしの言語を指定する必要がありましたが、先日(2ヶ月ほど前)から言語識別機能が使えるようになりました。

今回はストリーミング言語識別になりますが、実はバッチ文字起こしでも自動言語識別機能は利用可能です。こちらはDevelopersIOでの記事が探せなかったのですが1年ほど前から利用が可能になっていました。
今回のアップデートでストリーミングでも言語識別が利用出来るようになった形です。

使い方

ストリーミング開始前に、言語設定でAutomatic language identificationを選択します。
デフォルトはSpecific languageです。

この際に、ストリーミングで利用可能な言語コードから最低2つの言語コードを指定する必要があります。
今回はまずは、以下の設定で、AWS re:Invent 2021の英語のオンデマンドセッションにて試してみました。

自動言語識別機能では開始3秒後から判定が開始されます。
開始されると判定結果に対するConfidence(自信)と共に識別された言語が表示されます。

3秒経過後も判定は続くようで、時間の経過とともに言語が特定されてConfidenceが高くなっていきました。
最終的には100%英語だと。

優先言語オプション

自動言語識別のオプションとして、優先言語を指定することが出来ます。

これを使うと、選択した複数の言語で同じような信頼スコアだった場合にどの言語で文字起こしを行うかを指定することが出来ます。
ユースケースとしては、2つ以上の言語が混在する音声ストリームの時に使用するのが良いとのこと。

今回は、多言語の日常会話のフレーズを紹介する音声などで試してみました。

以下の2つは日本語と英語の日常会話フレーズを紹介する動画で試したものです。
同じ動画ですが、優先言語によって言語判定と文字起こしの結果が変わりました。

優先言語に日本語を指定

優先言語に英語を指定

注意点

同一言語のロケールは1つまで指定が可能

英語などでは同一言語で異なるロケールの言語コードが存在しますが、言語ごとに指定出来るロケールは1つだけとなります。
下記の例では、en-USを選択しているため、en-AUen-GBは選択できなくなっています。

ストリーミングオプションは利用出来ない

従来どおりマニュアルで言語を指定した場合はその言語に応じたオプションが利用可能ですが、自動言語識別機能を使う場合は以下の全てのオプションが利用できなくなるので注意です。

  • Speaker identification
  • Vocabulary filtering
  • PII Identification & redaction
  • Custom vocabulary
  • Partial results stabilization
  • Custom language model

さいごに

本日はAmazon Transcribeでの新機能、ストリーミング自動言語識別機能を使ってみました。

複数の公用語がある国や組織などで、コールセンターや会議の音声ストリーミングデータの言語に異なる言語が含まれる可能性がある場合(例えばコールセンターで日本語と英語どちらでもカスタマーに応じて使い分ける場合)は本機能を有効活用出来そうですね。

さらにひとつの会話データの中で複数言語が混在する場合は優先言語を指定しておくと尚良さそうですが、いくつかのストリーム音声で試した所感では、判定は音声品質や判定部分の長さ、各言語の使用頻度に依存しているように感じたので、事前に対象としているストリーミングデータで期待した挙動となるかは十分に評価しておきましょう。