이 챌린지 랩의 목표는 Google Cloud의 Speech-to-Text, Text-to-Speech, Translation API를 사용하는 것입니다. 다음 가이드를 따라 차근차근 진행하시면 됩니다.
🛠️ 태스크 1. API 키 생성
이 랩의 모든 API 호출에는 인증이 필요합니다. 먼저 API 키를 만들어야 합니다.
Google Cloud Console에 접속합니다.
왼쪽 탐색 메뉴에서 API 및 서비스(APIs & Services) > **사용자 인증 정보(Credentials)**로 이동합니다.
상단에 있는 **+ 사용자 인증 정보 만들기(+ CREATE CREDENTIALS)**를 클릭하고, 드롭다운 메뉴에서 **API 키(API key)**를 선택합니다.
새로운 API 키가 생성되면, 키 값을 복사하여 메모해 둡니다. 이 키는 나중에 사용할 수 있습니다.
API 제한(API restrictions) 탭에서 필요한 API(예: Cloud Translation API)를 선택하여 키에 대한 접근을 제한하는 것이 보안상 좋지만, 이 랩에서는 필수는 아닙니다.
🗣️ 태스크 2. Text-to-Speech API로 음성 합성
이 태스크에서는 텍스트 파일을 음성 파일(.mp3)로 변환합니다.
SSH를 통해 lab-vm 인스턴스에 접속합니다.
가상 환경을 활성화합니다:
source venv/bin/activate |
nano synthesize-text.json |
명령어를 사용하여 파일을 생성하고, 다음 JSON 내용을 붙여넣기 합니다.
JSON
{ “input”:{ “text”:”Cloud Text-to-Speech API allows developers to include natural-sounding, synthetic human speech as playable audio in their applications. The Text-to-Speech API converts text or Speech Synthesis Markup Language (SSML) input into audio data like MP3 or LINEAR16 (the encoding used in WAV files).” }, “voice”:{ “languageCode”:”en-gb”, “name”:”en-GB-Standard-A”, “ssmlGender”:”FEMALE” }, “audioConfig”:{ “audioEncoding”:”MP3″ } } |
Text-to-Speech API를 호출하여 synthesize-text.txt 파일에 결과를 저장합니다.
Bash
gcloud ml tts synthesize-text –request-file=synthesize-text.json > synthesize-text.txt |
nano tts_decode.py 명령어로 파이썬 스크립트를 만들고, 제공된 코드를 붙여넣기 합니다.
다음 명령어를 실행하여 .txt 파일을 .mp3 파일로 디코딩합니다.
Bash
python tts_decode.py –input “synthesize-text.txt” –output “synthesize-text-audio.mp3” |
synthesize-text-audio.mp3 파일이 생성되면, VM의 SSH 세션에서 다운로드하여 음성 파일을 들어봅니다.
🎙️ 태스크 3. Speech-to-Text API로 음성 텍스트 변환
이 태스크에서는 .flac 오디오 파일을 텍스트로 변환합니다. 이전에 발생했던 오류들을 바탕으로 정확한 명령어를 안내해 드리겠습니다.
speech_request_fr.json 파일을 생성하는 것은 이 태스크를 해결하는 데 필요하지 않습니다. gcloud 명령어는 파일을 직접 사용하지 않고 플래그(flag) 형태로 인수를 받습니다.
gs://cloud-samples-data/speech/corbeau_renard.flac 파일은 프랑스어로 되어 있으며, 헤더 정보에 따르면 **단일 채널(mono)**입니다. 이 정보는 API 호출 시 매우 중요합니다.
다음 명령어를 사용하여 Speech-to-Text API를 호출하고 결과를 speech_response.json 파일에 저장합니다. 이 명령어는 gcloud가 요구하는 정확한 형식입니다.
Bash
gcloud ml speech recognize-long-running gs://cloud-samples-data/speech/corbeau_renard.flac –language-code=fr-FR –encoding=FLAC –sample-rate=44100 > speech_response.json |
recognize-long-running: 60초 이상의 긴 오디오 파일에 사용되는 명령어입니다.
–language-code: fr-FR로 지정하여 프랑스어를 인식하도록 합니다.
–encoding과 –sample-rate: 오디오 파일의 인코딩 및 샘플링 속도를 정확하게 지정합니다.
> speech_response.json: 명령 실행 결과를 speech_response.json 파일에 저장합니다.
🌐 태스크 4. Translation API로 텍스트 번역
이 태스크에서는 일본어 문장을 영어로 번역합니다.
다음 curl 명령어를 사용하여 Cloud Translation API를 호출하고, 결과를 translated_response.txt 파일에 저장합니다.
Bash
curl -s -X POST -H “Content-Type: application/json” \ -H “Authorization: Bearer $(gcloud auth print-access-token)” \ “https://translation.googleapis.com/language/translate/v2” \ -d ‘{ “q”: “これは日本語です。”, “target”: “en” }’ > translated_response.txt |
“q”: 번역할 텍스트입니다.
“target”: 번역할 목표 언어 코드(en은 영어)입니다.
❓ 태스크 5. Translation API로 언어 감지
이 태스크에서는 주어진 문장이 어떤 언어인지 감지합니다.
다음 curl 명령어를 사용하여 Cloud Translation API의 언어 감지 엔드포인트를 호출하고, 결과를 detection_response.txt 파일에 저장합니다.
Bash
curl -s -X POST -H “Content-Type: application/json” \
-H “Authorization: Bearer $(gcloud auth print-access-token)” \
“https://translation.googleapis.com/language/translate/v2/detect” \
-d ‘{
“q”: “Este é japonês.”
}’ > detection_response.txt
“q”: 언어를 감지할 텍스트입니다. 이 문장은 포르투갈어로 “이것은 일본어입니다.”라는 뜻입니다.
이 가이드가 챌린지 랩을 성공적으로 완료하는 데 큰 도움이 되기를 바랍니다! 모든 단계를 순서대로 따라 하시고, 명령어를 입력할 때 오타가 없는지 다시 한번 확인하세요.