Amazon Transcribe은 S3에 담긴 오디오 파일의 음성을 번역해주는 프로그램이다.
현재 영어, 아랍어, 중국어, 불어, 독일어, 힌두어, 이태리어, 한국어, 포르투칼어, 러시아어, 스페인어를 지원한다.
?왜 일본어가 없지? 아무튼 2019-10-18 기준으로 Amazon Transcribe도 No Japan을 동참?하고 있다.
그리고 언어가 같아도 영국, 미국 억양이 다르듯이 옵션 값을 다르게 줄 수 있다.
오디오 포맷의 종류는 WAV, MP3, MP4 및 FLAC?를 비롯한 여러 오디오 인코딩을 지원한다. 또한 실시간 번역도 가능하다.
오디오 컨텐츠는 API 호출당 컨텐츠 길이 4시간이나 2GB로 제한된다. 따라서 동영상 파일의 경우 MediaConvert를 사용해서 음성 파일만 따로 추출하는 것을 권장한다. 아래 링크를 걸어둔다.
[AWS 웹콘솔 데모]
그럼 백문이 불여일견 실제로 AWS 웹 콘솔에서 수행하도록 한다.
Custom vocabulary 아래 문서 참고
Maximum number of speakers는 10명 제한이 있다.
그 외 파라미터에 대한 설명은 직관적으로 이해할 수 있다.
영상은 요새 핫한 곽철용의 명대사 3분짜리 mp4 파일을 이용했다.
근데 파라미터 넣을 것도 없는데 에러가 났다.
윈도우 우클릭으로 확인한 44kHZ 기준으로 입력했는데... HZ 없이 입력하니 44100 HZ라고 결과 값에 나온다. 흐음?
아무튼 이어간다.
결과는 아래와 같이 Text나 화자가 분류된 Audio identification 형태로 확인할 수 있다.
한 문장에 한 두개의 단어가 잘못 읽혀졌다.
[돈이라는 게 말이야 -> 돈이라는 게 마리의 토끼가] , [번째] -> [원체], [제가 담] -> [제가 다음] 등
이러면 나가린데..?
몇 가지 오역을 custom-vacabulary를 이용해서 만들고 다시 돌려봤다.
custom-vacabulary 포맷에 문제가 있는 것 같은데... 잘 모르겠다. 일단 AWS에 문의해봐야겠다.
또한 SKD를 활용하여 API를 사용하면 아래와 같은 Response를 받는다.
Response Key 값을 보면, Transcript에는 모든 STT의 결과를 그리고 Items 내에는 시간과 각 단어나 음절을 확인할 수 이다.
{
"jobName":"sourceS3Key",
"accountId":"557652101750",
"results":{
"transcripts":[
{
"transcript":"젊은 친구 돈이라는 게 말이나 도끼."
}
],
"items":[
{
"start_time":"0.91",
"end_time":"1.2",
"alternatives":[
{
"confidence":"1.0",
"content":"젊은"
}
],
"type":"pronunciation"
},
{
"start_time":"1.2",
"end_time":"1.68",
"alternatives":[
{
"confidence":"1.0",
"content":"친구"
}
],
"type":"pronunciation"
},
{
"start_time":"3.6",
"end_time":"4.07",
"alternatives":[
{
"confidence":"0.9923",
"content":"돈이라는"
}
],
"type":"pronunciation"
},
{
"start_time":"4.07",
"end_time":"4.2",
"alternatives":[
{
"confidence":"0.9497",
"content":"게"
}
],
"type":"pronunciation"
},
{
"start_time":"4.2",
"end_time":"4.51",
"alternatives":[
{
"confidence":"0.3813",
"content":"말이나"
}
],
"type":"pronunciation"
},
{
"start_time":"4.51",
"end_time":"4.89",
"alternatives":[
{
"confidence":"0.4781",
"content":"도끼"
}
],
"type":"pronunciation"
},
{
"alternatives":[
{
"confidence":"0.4781",
"content":"."
}
],
"type":"punctuation"
}
]
},
"status":"COMPLETED"
}
custom-vacabulary를 사용하면 어느정도 오탈 단어들이 고쳐질 지 모르겠다. 뉴스와 같이 아나운서의 정확한 발음이 아닌 경우, 실제 프로덕에서 사용은 무리가 있어 보인다.
또한 결과 값을 이용해서 SMI 자막 파일을 만들 경우, 각 문장에 대한 형태소 분석도 추가로 필요하다.