Cloud Speech-to-Text API를 사용한 음성 텍스트 변환

Cloud Speech API를 사용하면 80개 이상의 언어로 된 오디오 파일에서 음성 텍스트 변환을 수행할 수 있습니다.

이 실습에서는 오디오 파일을 녹화하고 텍스트 변환을 위해 Cloud Speech API로 전송합니다.

학습할 내용

  • Speech API 요청 만들기 및 curl로 API 호출하기
  • 다양한 언어로 된 오디오 파일로 Speech API 호출하기

필요한 항목

  • Google Cloud Platform 프로젝트
  • 브라우저(예: Chrome 또는 Firefox)

본 가이드를 어떻게 사용하실 계획인가요?

읽기만 할 계획입니다. 읽은 다음 연습 활동을 완료할 계획입니다.

귀하의 Google Cloud Platform 사용 경험을 평가해 주세요.

초급 중급 고급

자습형 환경 설정

Google 계정 (Gmail 또는 Google 앱)이 아직 없다면 계정을 만들어야 합니다. Google Cloud Platform Console (console.cloud.google.com)에 로그인하여 새 프로젝트를 만듭니다.

2016-02-10 12:45:26.png 스크린샷

모든 Google Cloud 프로젝트에서 고유한 이름인 프로젝트 ID를 기억하세요(위의 이름은 이미 사용되었으므로 사용할 수 없습니다). 이 ID는 나중에 이 Codelab에서 PROJECT_ID라고 부릅니다.

다음으로 Google Cloud 리소스를 사용하려면 Cloud Console에서 결제를 사용 설정해야 합니다.

이 codelab을 실행하는 과정에는 많은 비용이 들지 않지만 더 많은 리소스를 사용하려고 하거나 실행 중일 경우 비용이 더 들 수 있습니다(이 문서 마지막의 '삭제' 섹션 참조).

Google Cloud Platform의 신규 사용자는 $300 무료 체험판을 사용할 수 있습니다.

화면 왼쪽 상단의 메뉴 아이콘을 클릭합니다.

드롭다운에서 API 및 서비스 대시보드를 선택합니다.

API 및 서비스 사용 설정을 클릭합니다.

검색창에서 '음성'을 검색합니다. Google Cloud Speech API를 클릭합니다.

사용 설정을 클릭하여 Cloud Speech API를 사용 설정합니다.

사용 설정될 때까지 몇 초 정도 기다립니다. 사용 설정이 완료되면 다음과 같이 표시됩니다.

Google Cloud Shell은 클라우드에서 실행되는 명령줄 환경입니다. 이 Debian 기반 가상 머신은 필요한 모든 개발 도구(gcloud, bq, git 등)가 함께 로드되며, 영구 5GB 홈 디렉터리를 제공합니다. Cloud Shell을 사용하여 Speech API에 대한 요청을 만듭니다.

Cloud Shell을 시작하려면 헤더 표시줄의 오른쪽 상단에 있는 'Google Cloud Shell 활성화' Screen Shot 2015-06-08 5.30.32 PM.png 아이콘을 클릭하세요.

콘솔 하단에 있는 새 프레임 내에 Cloud Shell 세션이 열리면서 명령줄 프롬프트가 표시됩니다. user@project:~$ 메시지가 나타날 때까지 기다립니다.

Speech API에 요청을 보내기 위해 curl를 사용할 것이므로 요청 URL을 전달할 API 키를 생성해야 합니다. API 키를 만들려면 프로젝트 대시보드의 API & Services > Credentials 섹션으로 이동합니다.

그런 다음 사용자 인증 정보 만들기를 클릭합니다.

드롭다운 메뉴에서 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"
  }
}

요청 본문에는 configaudio 객체가 있습니다. config에서는 Speech API에 요청을 처리하는 방법을 알려줍니다. encoding 매개변수는 API로 전송하는 오디오 파일에 어떤 유형의 오디오 인코딩을 사용하고 있는지 API에 알립니다. FLAC는 .raw 파일의 인코딩 유형입니다. 자세한 내용은 인코딩 유형에 관한 문서를 참고하세요. config 객체에 추가할 수 있는 다른 매개변수가 있지만, encoding는 유일한 필수 매개변수입니다. 요청을 생략하면 languageCode이 기본값으로 설정됩니다.

audio 객체에서 API로 Cloud Storage의 오디오 파일 URI 또는 base64로 인코딩된 오디오를 문자열로 전달할 수 있습니다. 여기서는 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 호출하기

다음 단계