5.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-ja-JP-default.json"とします。
パラメータの指定¶
作業に必要なパラメータを変数に格納をします。
0.1. Transcribe転写ジョブの指定¶
Transcribe転写ジョブを指定します。
変数の設定:
TRANSCRIBE_TRANSCRIPTION_JOB_NAME='handson-cli-transcribe-job-default'
0.3. ダウンロード先ファイル名の指定¶
ダウンロード先ファイル名を指定します。
変数の設定:
DOWNLOAD_NAME='handson-cli-transcribe-ja-JP-default.json'
変数の設定:
FILE_DOWNLOAD="${DIR_DOWNLOAD}/${DOWNLOAD_NAME}" \ && echo ${FILE_DOWNLOAD}
結果(例):
${HOME}/environment/tmp-handson-cli-transcribe/handson-cli-transcribe-ja-JP-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-11-22-transcribe-transcription_job-read.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-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-ja-JP-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.ap-northeast-1.amazonaws.com/aws-transcribe-ap-northeast-1-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%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2. 主処理¶
転写ファイルのダウンロード¶
変数の確認:
cat << ETX # TRANSCRIBE_TRANSCRIPTION_FILE_URI:"https://s3.ap-northeast-1.amazonaws.com/aws-transcribe-ap-northeast-1-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%2Fap-northeast-1%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-ja-JP-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-ja-JP-default.json
3.2. 後処理に必要な作業¶
転写部分の抽出
コマンド:
echo -e $( \ cat ${FILE_DOWNLOAD} \ | jp.py 'results.transcripts[].transcript' \ )
結果(例):
[ "え パラ 言語 情報 と いう こと な ん です が あ 簡単 に 最初 に 復習 を し て おき たい と 思い ます ま あのー こう やっ て あっ 話し て おり ます と 恐れ は 勿論 あの 言語 的 情報 を 伝える と いう こと が 一 つ の 重要 な 目的 な ん で あり ます が 同時 に パラ 言語 情報 そして 非 言語 情報 が 伝わっ て おり ます ま この 三 分 法 は 藤崎 先生 LENCE] による もの でし て パラ 言語 情報 と いう の は? 要 は あの 意図 的 に 最後 できる 話者 が ちゃんと コントロール し て 出し てる ん だ けど も 言語 情報 と 違っ て 連続 的 に 変化 する から カテゴライズ する こと が やや 難しい そう いっ た 情報 で あります" ]