Amazon Web Services ブログ

Amazon Transcribe で自動言語識別がサポートされるようになりました

 

2017 年、自動音声認識サービスの 1 つとして、Amazon Transcribe のサービスが開始され、デベロッパーが 音声をテキストに変換する機能 (speech-to-text) を簡単にアプリケーションに追加できるようになりました。それ以来、多くの言語がサポートされ、リアルタイム対応の 6 言語を含む、31言語で音声録音の変換が可能になりました。

Amazon Transcribe の一般的なユースケースは 、顧客からの電話問い合わせのトランスクリプション(文字起こし)です。これにより、企業は自然言語処理技術を使用してトランスクリプション(文字起こし)したテキストを分析し、感情を読み取ったり、最も一般的な電話問い合わせの理由を特定したりできます。複数の公用語を持つ国や複数の地域で運用する場合、音声ファイルに異なる言語が含まれている可能性があります。したがって、トランスクリプション(文字起こし)を行う前に、適切な言語でファイルを手動でタグ付けする必要があります。これには、通常、多言語スピーカーのチームを編成する必要があり、音声ファイルの処理に余分なコストと遅延が発生します。

メディアおよびエンターテインメント業界では、 Amazon Transcribe を使用して、メディアコンテンツをアクセス可能で、検索可能なテキストファイルに変換することがよくあります。ユースケースには、字幕やトランスクリプトの生成、コンテンツの調整などが含まれます。オペレーションチームは、Amazon Transcribe を品質管理にも利用します。たとえば、抽出されたテキストに含まれるタイムスタンプから音声と動画が同期していることを確認できます。しかし、間違った言語で動画がストリーミングされないようにするために主要な言語をラベル付けしますが、これを検証する方法など、簡単には解決できない他の問題がありました。

本日、 Amazon Transcribe が音声録音で主要な言語を自動識別できるようになったことを発表します。この機能により、手動によるタグ付けが不要になり、より効率的なトランスクリプション(文字起こし)のワークフローを構築できます。Amazon Transcribe を使用して、上記の例に加え、ボイスメール、会議、その他あらゆる録音フォーマットを自動的に認識してトランスクリプション(文字起こし)することが簡単にできるようになりました。

自動言語識別の導入
Amazon Transcribe は 、30 秒以上の音声から効率的に音声言語でトランスクリプトを生成できます。手動でタグ付けする時間やリソースは必要ありません。主要な言語の自動識別は、バッチトランスクリプションモードで 31 言語すべてに対応しています。言語識別は、サンプリング技術により、トランスクリプション処理よりもはるかに高速に数秒で行われます。

すでに Amazon Transcribe を 音声認識に使用している場合は、 StartTranscriptionJob API でこの機能を有効にするだけで利用できるようになります。トランスクリプションジョブが完了する前に、GetTranscriptionJob API が音声録音での主要な言語と、信頼度スコアとして 0 ~ 1 を返します。トランスクリプトには、上位 5 つの言語とそれぞれの信頼度スコアがリストされています。

もちろん、 Amazon Transcribe を言語自動識別だけに使用する場合は、API レスポンスを処理するだけなので、トランスクリプトを無視して構いません。この場合、コストを最小限に抑えるために、30〜45 秒程度の短い音声録音にすると良いでしょう。

また、StartTranscriptionJob API に言語のリストを渡すことで、 Amazon Transcribe が識別可能な言語の種類を制限することもできます。たとえば、御社のコールセンターが英語、スペイン語、フランス語の通話のみを受信する場合、識別可能な言語をリストで制限すると、言語識別の精度が向上します。

ここで、この新機能を簡単に利用できることをお見せします。

Amazon Transcribe で主要な言語の検出
まず、高品質のサンプルで試してみましょう。AWS Summit Paris 2019 での ブレイクアウトセッションの音声トラックを使用してみます。youtube-dl ツールを使って簡単にダウンロードできます。

$ youtube-dl -f bestaudio https://www.youtube.com/watch?v=AFN5jaTurfA
$ mv AWS\ \&\ EarthCube\ _\ Deep\ learning\ démarrer\ avec\ MXNet\ et\ Tensorflow\ en\ 10\ minutes-AFN5jaTurfA.m4a video.m4a

ffmpeg を使用して、音声クリップを 1 分間に切り出します。

$ ffmpeg-i video.m4a-ss 00:00:00.00-t 00:01:00.00 video-1mn.m4a

次に、 Amazon シンプルストレージサービス(S3) バケットにクリップをアップロードします。

$ aws s3 cp video-1mn.m4a s3://jsimon-transcribe-uswest2/

次に、AWS CLI を使用して、言語識別を有効にして、この音声クリップでトランスクリプションジョブを実行します。

$ awscli transcribe start-transcription-job --transcription-job-name video-test --identify-language --media MediaFileUri=s3://jsimon-transcribe-uswest2/video-1mn.m4a

数秒後、ジョブのステータスをチェックします。Amazon CloudWatch イベントを使用して、言語の識別が完了したことを通知することもできます。

$ awscli transcribe get-transcription-job --transcription-job-name video-test
{
    "TranscriptionJob": {
        "TranscriptionJobName": "video-test",
        "TranscriptionJobStatus": "IN_PROGRESS",
        "LanguageCode": "fr-FR",
        "MediaSampleRateHertz": 44100,
        "MediaFormat": "mp4",
        "Media": {
        "MediaFileUri": "s3://jsimon-transcribe-uswest2/video-1mn.m4a"
    },
    "Transcript": {},
    "StartTime": 1593704323.312,
"CreationTime": 1593704323.287,

    "Settings": {
        "ChannelIdentification": false,
        "ShowAlternatives": false
    },
    "IdentifyLanguage": true,
    "IdentifiedLanguageScore": 0.915885329246521
    }
}

出力でハイライトされているように、主要な言語が 91.59% の高い信頼スコアで検出されました。処理時間はわずか数秒です。その数秒後にトランスクリプションジョブが完了します。同じ CLI 呼び出しを実行すると、トランスクリプションへのリンクを取得できます。トランスクリプションには、音声クリップの上位 5 言語がスコアの高い順でリストされます。

"language_identification":[{"score":"0.9159","code":"fr-FR"},{"score":"0.0839","code":"fr-CA"},{"score":"0.0001","code":"en-GB"},{"score":"0.0001","code":"pt-PT"},{"score":"0.0001","code":"de-CH"}]

フランス語とカナダ・フランス語を加えた場合、100% のスコアが得られますので、このクリップはフランス語であることは間違いありません。詳細レベルが必要でない場合があります。次の例では、検出言語のリストで制限する方法を示します。

検出言語リストの制限
Amazon Transcribe では、顧客からの電話問い合わせのトランスクリプション(文字起こし)が一般的なユースケースです。ここでは、40 秒の 音声クリップ (WAV、8KHz、16 ビット解像度)を作成するのに、フランス語版の Amazon Transcribe のページを読み上げます。お聞きの通り、品質はかなりひどいです。時間の計りを良くするために、バックグラウンドミュージック(実際には Bach-ground という)を追加しました。

繰り返しますが、このクリップを S3 バケットにアップロードし、AWS CLI を使ってトランスクリプション(文字起こし)します。今回は、言語のリストで、フランス語、スペイン語、ドイツ語、米国英語、イギリス英語に制限しています。

$ aws s3 cp speech-8k.wav s3: //jsimon-transcribe-uswest2/
$ awscli transcribe start-transcription-job --transcription-job-name speech-8k-test --identify-language --media MediaFileUri=s3://jsimon-transcribe-uswest2/speech-8k.wav --language-options fr-FR es-ES de-DE en-US en-GB

数秒後、ジョブのステータスをチェックします。

$ awscli transcribe get-transcription-job --transcription-job-name speech-8k-test
{
    "TranscriptionJob": {
    "TranscriptionJobName": "speech-8k-test",
    "TranscriptionJobStatus": "IN_PROGRESS",
    "LanguageCode": "fr-FR",
    "MediaSampleRateHertz": 8000,
    "MediaFormat": "wav",
    "Media": {
        "MediaFileUri": "s3://jsimon-transcribe-uswest2/speech-8k.wav"
    },
    "Transcript": {},
    "StartTime": 1593705151.446,
"CreationTime": 1593705151.423,

    "Settings": {
        "ChannelIdentification": false,
        "ShowAlternatives": false
    },
    "IdentifyLanguage": true,
    "LanguageOptions": [
        "fr-FR","es-ES","de-DE","en-US","en-GB"
    ],
    "IdentifiedLanguageScore": 0.9995
    }
}

出力でハイライトされているように、ひどい音質にもかかわらず、主要な言語が非常に高い信頼スコアで正確に検出されました。言語のリストで言語の種類を制限することは確かに有効です。できる限り利用することをお勧めします。

開始方法
自動言語識別機能は、次の地域でご利用いただけます。

  • 米国東部 (バージニア北部)米国東部 (オハイオ)米国西部 (北カリフォルニア)米国西部 (オレゴン)AWS GovCloud (米国西部)
  • カナダ (中部)
  • 南米 (サンパウロ)
  • 欧州 (アイルランド)欧州 (ロンドン)欧州 (パリ)欧州 (フランクフルト)
  • 中東 (バーレーン)
  • アジアパシフィック (ムンバイ)アジアパシフィック (香港)アジアパシフィック (ソウル)アジアパシフィック (シンガポール)アジアパシフィック (シドニー)アジアパシフィック (東京)

既存の 料金に対して、追加料金は発生しません。AWS では皆さんからのフィードバックをお待ちしています。Amazon TranscribeAWS フォーラム、または通常の AWS サポート連絡先からご意見をお寄せください。

– Julien