Cloud Speech API를 사용하면 80개 이상의 언어로 된 오디오 파일에서 음성 텍스트 변환을 수행할 수 있습니다.
이 실습에서는 오디오 파일을 녹음하고 스크립트 작성을 위해 Cloud Speech API로 전송합니다.
학습할 내용
- Speech API 요청 만들기 및 curl로 API 호출하기
- 다양한 언어로 된 오디오 파일로 Speech API 호출하기
준비물
이 튜토리얼을 어떻게 사용하실 계획인가요?
귀하의 Google Cloud Platform 사용 경험을 평가해 주세요.
자습형 환경 설정
아직 Google 계정 (Gmail 또는 Google Apps)이 없으면 계정을 만들어야 합니다. Google Cloud Platform 콘솔 (console.cloud.google.com)에 로그인하고 새 프로젝트를 만듭니다.
모든 Google Cloud 프로젝트에서 고유한 이름인 프로젝트 ID를 기억하세요(위의 이름은 이미 사용되었으므로 사용할 수 없습니다). 이 ID는 나중에 이 Codelab에서 PROJECT_ID
라고 부릅니다.
그런 다음 Google Cloud 리소스를 사용할 수 있도록 Cloud 콘솔에서 결제를 사용 설정해야 합니다.
이 codelab을 실행하는 과정에는 많은 비용이 들지 않지만 더 많은 리소스를 사용하려고 하거나 실행 중일 경우 비용이 더 들 수 있습니다(이 문서 마지막의 '삭제' 섹션 참조).
Google Cloud Platform 신규 사용자는 $300 상당의 무료 체험판을 사용할 수 있습니다.
화면 왼쪽 상단의 메뉴 아이콘을 클릭합니다.
드롭다운에서 API 및 서비스 대시보드를 선택합니다.
API 및 서비스 사용 설정을 클릭합니다.
그런 다음 검색창에 'speech'를 검색합니다. Google Cloud Speech API를 클릭합니다.
사용 설정을 클릭하여 Cloud Speech API를 사용 설정합니다.
사용 설정될 때까지 몇 초간 기다립니다. 사용 설정되면 다음이 표시됩니다.
Google Cloud Shell은 Cloud에서 실행되는 명령줄 환경입니다. 이 Debian 기반 가상 머신은 필요한 모든 개발 도구 (gcloud
, bq
, git
등)와 함께 로드되며, 영구 5GB 홈 디렉터리를 제공합니다. Cloud Shell을 사용하여 Speech API에 대한 요청을 만듭니다.
Cloud Shell을 시작하려면 헤더 바의 오른쪽 상단에 있는 'Google Cloud Shell 활성화' 아이콘을 클릭합니다.
콘솔 하단에 있는 새 프레임 내에 Cloud Shell 세션이 열리면서 명령줄 프롬프트가 표시됩니다. user@project:~$ 프롬프트가 표시될 때까지 기다립니다.
Speech API로 요청을 전송하기 위해 curl
을 사용할 것이므로, 요청 URL에 전달할 API 키를 만들어야 합니다. API 키를 만들려면 프로젝트 대시보드의 API 및 서비스 > 사용자 인증 정보 섹션으로 이동합니다.
그런 다음 사용자 인증 정보 만들기를 클릭합니다.
드롭다운 메뉴에서 API 키를 선택합니다.
그런 다음 방금 생성한 키를 복사하고 닫기를 선택합니다 (키 제한 안 함).
이제 API 키가 있으므로 각 요청에 API 키의 값을 삽입하지 않도록 환경 변수에 저장하겠습니다. Cloud Shell에서 이 작업을 수행할 수 있습니다. <your_api_key>
를 방금 복사한 키로 대체해야 합니다.
export API_KEY=<YOUR_API_KEY>
request.json
파일에서 Speech API에 대한 요청을 빌드할 수 있습니다. 이 파일을 만들고 수정하려면 원하는 명령줄 편집기 (nano, vim, emacs) 중 하나를 사용하거나 Cloud Shell에서 기본으로 제공되는 웹 편집기를 사용하면 됩니다.
홈 디렉터리에 파일을 만들어 쉽게 참조할 수 있도록 하고 request.json
파일에 다음을 추가합니다.
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
요청 본문에는 config
및 audio
객체가 있습니다. config
에서는 요청을 처리하는 방법을 Speech API에 알려줍니다. encoding
파라미터는 API에 전송하는 오디오 파일에 어떤 오디오 인코딩 유형을 사용하는지 API에 알려줍니다. FLAC
는 .raw 파일의 인코딩 유형입니다. 자세한 내용은 인코딩 유형에 관한 문서를 참고하세요. config
객체에 추가할 수 있는 기타 매개변수가 있지만 encoding
만 유일하게 필요한 매개변수입니다. 요청에서 지정하지 않으면 languageCode
는 기본값인 영어로 설정됩니다.
audio
객체에서 Cloud Storage에 있는 오디오 파일의 URI 또는 base64로 인코딩된 오디오를 문자열로 API에 전달할 수 있습니다. Cloud Storage URL을 사용해 보았습니다. 다음 단계는 Speech API를 호출하는 것입니다.
이제 아래 curl
명령어를 사용하여 이전에 저장한 API 키 환경 변수와 함께 요청 본문을 Speech API에 전달할 수 있습니다 (하나의 명령줄로 모두 전달).
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
이 curl
명령어에서 반환된 응답은 다음과 같이 표시됩니다.
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
transcript
값은 Speech API가 오디오 파일에서 텍스트로 작성한 스크립트를 보여주며, confidence
값은 API가 판단한 스크립트의 정확성을 나타냅니다.
위 요청에서 recognize
메서드를 호출했음을 알 수 있습니다. Speech API는 동기식 및 비동기식 텍스트 변환을 모두 지원합니다. 이 예시에서는 완전한 오디오 파일을 전송했지만, 사용자가 말하고 있는 동안 스트리밍 음성을 텍스트로 변환하려면 longrunningrecognize
메서드를 사용하면 됩니다.
다국어를 사용하시나요? Speech API는 100개가 넘는 언어의 음성 텍스트 변환을 지원합니다. request.json
에서 languageCode
파라미터를 변경할 수 있습니다. 지원되는 언어 목록은 여기에서 확인할 수 있습니다.
프랑스어 오디오 파일을 변환해 보겠습니다 (원하는 경우 여기에서 미리 들어볼 수 있음). request.json을 다음과 같이 변경합니다.
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
다음과 같은 응답이 표시됩니다.
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
위 문장은 한 유명한 프랑스 동화에서 발췌한 것입니다. 다른 언어의 오디오 파일이 있는 경우 Cloud Storage에 파일을 추가하고 요청에서 languageCode
매개변수를 변경해 볼 수 있습니다.
지금까지 Speech API를 통한 음성 텍스트 변환 방법을 알아보았습니다. 이 예시에서는 오디오 파일의 Google Cloud Storage URI를 API에 전달했지만, 오디오 콘텐츠의 Base64 인코딩 문자열을 전달할 수도 있습니다.
학습한 내용
- 오디오 파일의 Google Cloud Storage URI를 Speech API에 전달하기
- Speech API 요청 만들기 및 curl로 API 호출하기
- 다양한 언어로 된 오디오 파일로 Speech API 호출하기
다음 단계
- 문서에서 Speech API 튜토리얼 살펴보기
- Vision API 및 Natural Language API 사용해 보기