미분류

💡 구글 speech-to-text 챌린지 랩 전체 진행 가이드

0
Please log in or register to do it.

이 챌린지 랩의 목표는 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”: 언어를 감지할 텍스트입니다. 이 문장은 포르투갈어로 “이것은 일본어입니다.”라는 뜻입니다.

이 가이드가 챌린지 랩을 성공적으로 완료하는 데 큰 도움이 되기를 바랍니다! 모든 단계를 순서대로 따라 하시고, 명령어를 입력할 때 오타가 없는지 다시 한번 확인하세요.

구글 스프레드시트 공유설정 및 협업 가이드
스프레드시트 & 전자서명 통합 솔루션 만들기.

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다