Amazon Web Services ブログ

Amazon Transcribe – スケーラブルで正確なSpeech to Text

11月29日、開発者がアプリケーションにSpeech to Textの機能を簡単に追加できる自動音声認識(ASR)サービスのAmazon TranscribeのPrivate Previewを発表致します。帯域や接続性の改善に伴い、世界中のより多くのデータが、ビデオやオーディオのフォーマットで保管されるようになってきました。人々は以前よりも早くデータを生成し、消費するようになりました。これらのリッチなマルチメディアコンテンツに存在する何らかの意図を価値として取り出すことは、ビジネスに非常に重要になっています。Amazon Transcribeを利用すれば、効果的でスケーラブルなAPIを利用して、手動での書き起こしプロセスに掛かるコストを抑えることが可能です。

 

APIでジョブを開始すれば、Amazon Simple Storage Service (S3) に保管された多数の一般的なフォーマットの音声ファイル(WAV, MP3, Flac, etc.)を分析でき、各単語毎のタイムスタンプと推測された区切り情報を持つ、詳細かつ正確な書き起こし結果を得られます。Preview期間中は、英語またはスペイン語を書き起こすための非同期Transcription APIをご利用可能です。

企業は現存するカタログや今後発生するデータの双方から価値を得たいと考えています。これらの保管されたメディアから書き起こしを行うことで、以下が可能となります:

  • カスタマーコールデータの分析
  • 自動的なサブタイトルの生成
  • コンテンツに応じたターゲット広告
  • 音声とビデオコンテンツに対するリッチな検索を可能に

 

書き起こしジョブはAWSコマンドラインインターフェース (CLI), AWS SDK, あるいはAmazon Transcribe コンソールから簡単に開始できます。

現在、Amazon Transcribeは用途が明白な3つのAPIを提供しています:

  • StartTranscripitionJob
  • GetTranscriptionJob
  • ListTranscriptionJob

こちらは、ジョブを開始して終了をポーリングする簡単なPythonスクリプトです。

from __future__ import print_function
import time
import boto3
transcribe = boto3.client('transcribe')
job_name = "RandallTest1"
job_uri = "https://s3-us-west-2.amazonaws.com/randhunt-transcribe-demos/test.flac"
transcribe.start_transcription_job(
    TranscriptionJobName=job_name,
    Media={'MediaFileUri': job_uri},
    MediaFormat='flac',
    LanguageCode='en-US',
    MediaSampleRateHertz=44100
)
while True:
    status = transcribe.get_transcription_job(TranscriptionJobName=job_name)
    if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
        break
	print("Not ready yet...")
    time.sleep(5)
print(status)

完了したジョブの結果は、書き起こし結果を含むJSONフォーマットファイルとして保管され、Amazon Simple Storage Service (S3) の署名付きURLリンクが生成されます:


{
  "jobName": "RandallTest1",
  "results": {
  	"transcripts": [{"transcript": "Hello World", "confidence": 1}],
    "items": [
      {
      	"start_time": "0.880", "end_time": "1.300",
        "alternatives": [{"confidence": 0.91, "word": "Hello"}]
      },
      {
        "start_time": "1.400", "end_time": "1.620",
        "alternatives": [{"confidence": 0.84, "word": "World"}]
      }
  	]
  },
  "status": "COMPLETED"
}

各単語に対して、タイムスタンプと信頼度スコアが表示されていることが分かります。

このサービスは単体でも他のAmazon AIサービスと組み合わせてもパワフルなサービスです。AWSのお客様がこのサービスを活用して何を作るかがとても楽しみです。

Randall

P.S.

利用に際してAWS Step Functionsが役に立つと気づいた方がいらっしゃるかもしれません。私も同じように考えました。こちらがワークフローの例になります:

 

翻訳はSA布目が担当しました。原文はこちら