7.2. Transcribe転写ファイルの取得 (handson-cli-transcribe-job-custom)

作業の目的 [why]

Transcribe転写ジョブ"handson-cli-transcribe-job-custom"で転写されたファイルを取得します。

完了条件/事前条件 [設計者用情報]

完了条件 [after]

主処理は、以下を満たしたときに成功したものとします。

完了条件1

Transcribeジョブ名"handson-cli-transcribe-job-custom"の転写ファイルがローカル環境に存在する。

事前条件 [before]

主処理の実施は、以下の状態であることを前提とします。

事前条件1

Transcribe転写ジョブ名"handson-cli-transcribe-job-custom"が存在する。

事前条件2

Transcribe転写ジョブ名"handson-cli-transcribe-job-custom"のステータスが"COMPLETED"である。

作業対象 [what]

  • Transcribeサービス

標準時間(合計)

8分

パラメータ設定

パラメータ設定の標準時間

2分

作業に必要なモノ・情報 [resource]

作業開始には、以下が全て揃っていることが必要です。

リソース1: Transcribe転写ジョブ名

  • 作成するTranscribe転写ジョブ名です。

  • 今回は"handson-cli-transcribe-job-custom"とします。

リソース2: ダウンロード用ディレクトリ

  • 今回は"${HOME}/environment/tmp-handson-cli-transcribe"をダウンロード用ディレクトリとします。

ディレクトリが存在することを確認します。

コマンド:

ls -d ${HOME}/environment/tmp-handson-cli-transcribe

結果(例:存在する場合):

${HOME}/environment/tmp-handson-cli-transcribe

存在しない場合は作成します。

コマンド:

mkdir -p ${HOME}/environment/tmp-handson-cli-transcribe

リソース3: ダウンロード先ファイル名

  • ダウンロード先のファイル名です。

  • 今回は"${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-custom.json"とします。

パラメータの指定

作業に必要なパラメータを変数に格納をします。

0.a. リージョンの指定

変数の設定

export AWS_DEFAULT_REGION='ap-northeast-1'

0.b. プロファイルの指定

変数の設定:

export AWS_DEFAULT_PROFILE='handson-cli-transcribe-transcribeMaint-user'

0.1. Transcribe転写ジョブの指定

Transcribe転写ジョブを指定します。

変数の設定:

TRANSCRIBE_TRANSCRIPTION_JOB_NAME='handson-cli-transcribe-job-custom'

0.2. ダウンロード用ディレクトリの指定

変数の設定:

DIR_DOWNLOAD="${HOME}/environment/tmp-handson-cli-transcribe"

0.3. ダウンロード先ファイル名の指定

ダウンロード先ファイル名を指定します。

変数の設定:

DOWNLOAD_NAME='handson-cli-transcribe-ja-JP-custom.json'

変数の設定:

FILE_DOWNLOAD="${DIR_DOWNLOAD}/${DOWNLOAD_NAME}" \
  && echo ${FILE_DOWNLOAD}

結果(例):

${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-custom.json

パラメータの保存

設定されている変数の保存先となるファイル名を指定します。

変数の設定:

DIR_PARAMETER="${HOME}/tmp/parameter-handson-cli-transcribe"
FILE_PARAMETER="${DIR_PARAMETER}/$(date +%Y-%m-%d)-transcribe-transcription_job-read-expand-s3.env" \
  && echo ${FILE_PARAMETER}

結果(例):

${HOME}/tmp/parameter-handson-cli-transcribe/2019-11-22-transcribe-transcription_job-read-expand-s3.env

各変数に正しいパラメータ値が格納されていることを確認しながら保存します。

変数の確認:

cat << EOF > ${FILE_PARAMETER}

  # 0.a. AWS_DEFAULT_REGION:"ap-northeast-1"
         AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"
  # 0.b. AWS_DEFAULT_PROFILE:"handson-cli-transcribe-transcribeMaint-user"
         AWS_DEFAULT_PROFILE="${AWS_DEFAULT_PROFILE}"

  # 0.1. TRANSCRIBE_TRANSCRIPTION_JOB_NAME:"handson-cli-transcribe-job-custom"
         TRANSCRIBE_TRANSCRIPTION_JOB_NAME="${TRANSCRIBE_TRANSCRIPTION_JOB_NAME}"
  # 0.2. DIR_DOWNLOAD:"${HOME}/environment/tmp-handson-cli-transcribe"
         DIR_DOWNLOAD="${DIR_DOWNLOAD}"
  # 0.3. FILE_DOWNLOAD:"${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-custom.json"
         FILE_DOWNLOAD="${FILE_DOWNLOAD}"

EOF

cat ${FILE_PARAMETER}

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

タスクの実施

タスク標準時間

6分

1. 前処理

1.1. 処理対象の状態確認

主処理の実施は、以下の状態であることを前提とします。

前提と異なることが判明した場合、直ちに処理を中止します。

事前条件1: Transcribe転写ジョブ名"handson-cli-transcribe-job-custom"が存在する。

「Transcribe転写ジョブ名"handson-cli-transcribe-job-custom"が存在する。」ことを確認します。

コマンド:

aws transcribe list-transcription-jobs \
  --query "TranscriptionJobSummaries[?TranscriptionJobName == \`${TRANSCRIBE_TRANSCRIPTION_JOB_NAME}\`].TranscriptionJobName" \
  --output text

結果(例):

handson-cli-transcribe-job-custom

事前条件2: Transcribe転写ジョブ名"handson-cli-transcribe-job-custom"のステータスが"COMPLETED"である。

「Transcribe転写ジョブ名"handson-cli-transcribe-job-custom"のステータスが"COMPLETED"である。」ことを確認します。

コマンド:

aws transcribe list-transcription-jobs \
  --query "TranscriptionJobSummaries[?TranscriptionJobName == \`${TRANSCRIBE_TRANSCRIPTION_JOB_NAME}\`].TranscriptionJobStatus" \
  --output text

結果(例):

COMPLETED

1.2. 主処理に必要な情報の取得

転写ファイルURIの取得

コマンド:

TRANSCRIBE_TRANSCRIPTION_FILE_URI=$( \
  aws transcribe get-transcription-job \
    --transcription-job-name ${TRANSCRIBE_TRANSCRIPTION_JOB_NAME} \
    --query 'TranscriptionJob.Transcript.TranscriptFileUri' \
    --output text \
  | sed "s|https://s3.*.amazonaws.com/|s3://|" \
) \
  && echo ${TRANSCRIBE_TRANSCRIPTION_FILE_URI}

結果(例):

s3://handson-cli-transcribe-custom-XXXXXXXXXXXX/handson-cli-transcribe-job-custom.json

2. 主処理

転写ファイルのダウンロード

変数の確認:

cat << ETX

  # TRANSCRIBE_TRANSCRIPTION_FILE_URI:"s3://handson-cli-transcribe-custom-XXXXXXXXXXXX/handson-cli-transcribe-job-custom.json"
    TRANSCRIBE_TRANSCRIPTION_FILE_URI="${TRANSCRIBE_TRANSCRIPTION_FILE_URI}"
  # FILE_DOWNLOAD:"${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-custom.json"
    FILE_DOWNLOAD="${FILE_DOWNLOAD}"

ETX

コマンド:

aws s3 cp ${TRANSCRIBE_TRANSCRIPTION_FILE_URI} ${FILE_DOWNLOAD}

結果(例):

download: s3://handson-cli-transcribe-custom-XXXXXXXXXXXX/handson-cli-transcribe-job-custom.json to ${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-custom.json

3. 後処理

3.1. 完了条件の確認

主処理は、以下を満たしたときに成功したものとします。

完了条件1: Transcribeジョブ名"handson-cli-transcribe-job-custom"の転写ファイルがローカル環境に存在する。

「Transcribeジョブ名"handson-cli-transcribe-job-custom"の転写ファイルがローカル環境に存在する。」ことを確認します。

コマンド:

ls ${FILE_DOWNLOAD}

結果(例):

${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-custom.json

3.2. 後処理に必要な作業

転写部分の抽出

コマンド:

echo -e $( \
  cat ${FILE_DOWNLOAD} \
    | jp.py 'results.transcripts[].transcript' \
)

結果(例):

[ "え パラ 言語 情報 と いう こと な ん です が あ 簡単 に 最初 に 復習 を し て おき たい と 思い ます ま あのー こう やっ て あっ 話し て おり ます と 恐れ は 勿論 あの 言語 的 情報 を 伝える と  いう こと が 一 つ の 重要 な 目的 な ん で あり ます が 同時 に パラ 言語 情報 そして 非 言語 情報 が 伝わっ て おり ます ま この 三 分 法 は 藤崎 先生 LENCE] による もの でし て パラ 言語 情報 と いう の は? 要 は あの 意図 的 に 最後 できる 話者 が ちゃんと コントロール し て 出し てる ん だ  けど も 言語 情報 と 違っ て 連続 的 に 変化 する から カテゴライズ する こと が やや 難しい そう  いっ た 情報 で あり ます" ]

完了