利用2.2. Transcribe転写ファイルの取得 (handson-cli-transcribe-job-default)

作業の目的 [why]

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

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

完了条件 [after]

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

完了条件1

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

事前条件 [before]

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

事前条件1

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

事前条件2

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

作業対象 [what]

  • Transcribeサービス

標準時間(合計)

8分

パラメータ設定

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

2分

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

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

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

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

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

リソース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-aws-sample-default.json"とします。

パラメータの指定

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

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

変数の設定

export AWS_DEFAULT_REGION='us-west-2'

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

変数の設定:

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

0.1. Transcribe転写ジョブの指定

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

変数の設定:

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

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

変数の設定:

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

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

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

変数の設定:

DOWNLOAD_NAME='handson-cli-transcribe-aws-sample-default.json'

変数の設定:

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

結果(例):

${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-aws-sample-default.json

パラメータの保存

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

変数の設定:

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

結果(例):

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

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

変数の確認:

cat << EOF > ${FILE_PARAMETER}

  # 0.a. AWS_DEFAULT_REGION:"us-west-2"
         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-default"
         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-aws-sample-default.json"
         FILE_DOWNLOAD="${FILE_DOWNLOAD}"

EOF

cat ${FILE_PARAMETER}

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

タスクの実施

課題

(未検証)

タスク標準時間

6分

1. 前処理

1.1. 処理対象の状態確認

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

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

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

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

コマンド:

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

結果(例):

handson-cli-transcribe-job-default

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

「Transcribe転写ジョブ名"handson-cli-transcribe-job-default"のステータスが"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 \
) \
  && echo ${TRANSCRIBE_TRANSCRIPTION_FILE_URI}

結果(例):

https://s3.us-west-2.amazonaws.com/aws-transcribe-us-west-2-prod/XXXXXXXXXXXX//xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/asrOutput.json?X-Amz-Security-Token=Agoxxxxxxxxxxxxxxxx%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2BFK%2Fxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2B%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=YYYYMMDDThhmmssZ&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=ASIARFLZMHCPG4KFKNEK%2FYYYYMMDD%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2. 主処理

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

変数の確認:

cat << ETX

  # TRANSCRIBE_TRANSCRIPTION_FILE_URI:"https://s3.us-west-2.amazonaws.com/aws-transcribe-us-west-2-prod/XXXXXXXXXXXX//xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/asrOutput.json?X-Amz-Security-Token=Agoxxxxxxxxxxxxxxxx%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARABxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2BFK%2Fxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Fxxxxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2B%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%2Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=YYYYMMDDThhmmssZ&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=ASIARFLZMHCPG4KFKNEK%2FYYYYMMDD%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    TRANSCRIBE_TRANSCRIPTION_FILE_URI="${TRANSCRIBE_TRANSCRIPTION_FILE_URI}"
  # FILE_DOWNLOAD:"${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-aws-sample-default.json"
    FILE_DOWNLOAD="${FILE_DOWNLOAD}"

ETX

コマンド:

curl -L -Ss \
  -o ${FILE_DOWNLOAD} \
  ${TRANSCRIBE_TRANSCRIPTION_FILE_URI}

結果(例):

(出力なし)

3. 後処理

3.1. 完了条件の確認

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

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

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

コマンド:

ls ${FILE_DOWNLOAD}

結果(例):

${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-aws-sample-default.json

3.2. 後処理に必要な作業

転写部分の抽出

コマンド:

cat ${FILE_DOWNLOAD} \
  | jp.py 'results.transcripts[].transcript'

結果(例):

[
  "machine learning is employed in a range of computing tasks where designing and program explicit algorithms with good performance is difficult or infeasible. Example. Applications include email filtering, detection of network intruders and computervision. Machine learning is closely related to computational statistics, which also focuses on predictions making through the use of computer. It has strong ties to mathematical optimization, which delivers methods, theory and application domains to the field."
]

完了