PS課の杉村です。AWS Transcribeは音声ファイルを文章に書き起こしてくれるAWSサービスです。 残念ながら現在は日本語には対応していませんが、英語(US/AU/GB)、フランス語、スペイン語に対応しています。
AWS Transcribeに対してTranscribeジョブを投入すると、非同期で処理を実施してくれます。 ジョブの実行結果を問い合わせ、COMPLETEDであれば書き起こした結果ファイルがS3上に配置されており、そのパスが手に入るというわけです。
結果ファイルには誰がアクセスできるのか
ジョブ実行結果を問い合わせると以下のように、結果ファイルのS3パスを示すURLが手に入り、そこからDLできます。
{ "TranscriptionJob": { "TranscriptionJobName": "TranscribeJobTest20181105", "TranscriptionJobStatus": "COMPLETED", "LanguageCode": "en-US", "MediaSampleRateHertz": 44100, "MediaFormat": "wav", "Media": { "MediaFileUri": "https://s3.amazonaws.com/TestS3(略)/2018/11/05/test_wav_file.wav" }, "Transcript": { "TranscriptFileUri": "https://s3.amazonaws.com/aws-transcribe-us-east-1-prod/123456789012/test_wav_file/4cfca3(略)6a9d08/asrOutput.json?X-Amz-Security-Token=FQoGZXIvY(略)&X-Amz-Expires=900&(略)384f2bf8" }, ~略~ } } }
「"TranscriptFileUri": 」の値が、結果ファイルのパスにあたります。 ん?このファイルってグローバルからアクセス可能なの?と一瞬思いましたが、これは署名付きURLなのです。
参考 S3にて Pre-Signed URLを発行する http://blog.serverworks.co.jp/tech/2017/07/04/s3_presign/
つまりオブジェクトがパブリックに公開されているわけではないのですが、このURLを知っている人ならばアクセスできる、ということになります。 ただし署名付きURLには有効期限が設定されており(2018/11時点で900秒)この期限が過ぎるとURLは無効になります。クエリストリングス内の X-Amz-Expires=900 という部分が期限です(秒数)。
・結果ファイルには署名付きURLでのみアクセスできる ・署名付きURLの取得はIAMで担保されている
IAM権限と署名付きURL取得後の扱いに十分注意すれば、AWS Transcsribeをセキュアに利用することができます。
杉村 勇馬 (記事一覧)
サーバーワークス → 株式会社G-gen 執行役員CTO
2021 Japan APN Ambassadors / 2021 APN All AWS Certifications Engineers
マルチAWSアカウント管理運用やネットワーク関係のAWSサービスに関するブログ記事を過去に執筆。
2021年09月から株式会社G-genに出向、Google Cloud(GCP)が専門に。G-genでもGoogle Cloud (GCP) の技術ブログを執筆中。