이 가이드는 Speech-to-Text를 사용하여 전화에서 녹음된 오디오를 텍스트로 변환하는 방법을 설명합니다.
오디오 파일의 출처는 다양할 수 있습니다. 오디오 데이터는 전화(예: 음성사서함) 또는 동영상 파일에 포함된 사운드트랙일 수 있습니다.
Speech-to-Text는 여러 머신러닝 모델 중 하나를 사용하여 원본 오디오 소스와 가장 잘 일치하도록 오디오 파일을 텍스트로 변환할 수 있습니다. 사용자는 원본 오디오 소스를 지정하면 보다 나은 음성 텍스트 변환 결과를 얻을 수 있습니다. 이렇게 하면 Speech-to-Text에서 오디오 파일과 유사한 데이터를 학습한 머신러닝 모델을 사용하여 오디오 파일을 처리할 수 있습니다.
목표
- 전화(예: 음성사서함)에서 녹음된 오디오에 대한 오디오 텍스트 변환 요청을 Speech-to-Text로 보냅니다.
- 오디오 텍스트 변환 요청의 고급 음성 인식 모델을 지정합니다.
비용
이 가이드는 비용이 청구될 수 있는 다음과 같은 Cloud Platform 구성요소를 사용합니다.
- Speech-to-Text
가격 계산기를 사용하여 예상 사용량을 토대로 예상 비용을 산출합니다.
시작하기 전에
이 튜토리얼에는 몇 가지 기본 요건이 있습니다.
- Google Cloud 콘솔에서 Speech-to-Text 프로젝트를 설정한 상태여야 합니다.
- Google Cloud 콘솔에서 애플리케이션 기본 사용자 인증 정보를 사용하여 환경을 설정한 상태여야 합니다.
- 선택한 프로그래밍 언어에 맞게 개발 환경을 설정한 상태여야 합니다.
- 선택한 프로그래밍 언어에 해당하는 Google Cloud 클라이언트 라이브러리를 설치한 상태여야 합니다.
요청 전송
전화 통화나 음성사서함과 같이 전화에서 캡처한 오디오를 가장 우수하게 텍스트로 변환하려면 RecognitionConfig
페이로드의 model
필드를 phone_call
로 설정하면 됩니다. model
필드는 텍스트 변환 요청에 사용할 음성 인식 모델을 Speech-to-Text API에게 알립니다.
고급 모델을 사용하면 전화 오디오 텍스트 변환 결과가 향상될 수 있습니다. 고급 모델을 사용하려면 RecognitionConfig
페이로드에서 useEnhanced
필드를 true
로 설정합니다.
다음 코드 샘플은 Speech-to-Text 호출 시 특정 텍스트 변환 모델을 선택하는 방법을 보여줍니다.
프로토콜
자세한 내용은 speech:recognize
API 엔드포인트를 참조하세요.
동기 음성 인식을 수행하려면 POST
요청을 하고 적절한 요청 본문을 제공합니다. 다음은 curl
을 사용한 POST
요청의 예시입니다. 이 예시에서는 Google Cloud CLI를 사용하여 액세스 토큰을 생성합니다. gcloud CLI 설치에 대한 안내는 빠른 시작을 참조하세요.
curl -s -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://speech.googleapis.com/v1/speech:recognize \ --data '{ "config": { "encoding": "LINEAR16", "languageCode": "en-US", "enableWordTimeOffsets": false, "enableAutomaticPunctuation": true, "model": "phone_call", "useEnhanced": true }, "audio": { "uri": "gs://cloud-samples-tests/speech/commercial_mono.wav" } }'
요청 본문 구성에 대한 자세한 내용은 RecognitionConfig
참조 문서를 확인하세요.
요청이 성공하면 서버가 200 OK
HTTP 상태 코드와 응답을 JSON 형식으로 반환합니다.
{ "results": [ { "alternatives": [ { "transcript": "Hi, I'd like to buy a Chromecast. I was wondering whether you could help me with that.", "confidence": 0.8930228 } ], "resultEndTime": "5.640s" }, { "alternatives": [ { "transcript": " Certainly, which color would you like? We are blue black and red.", "confidence": 0.9101991 } ], "resultEndTime": "10.220s" }, { "alternatives": [ { "transcript": " Let's go with the black one.", "confidence": 0.8818244 } ], "resultEndTime": "13.870s" }, { "alternatives": [ { "transcript": " Would you like the new Chromecast Ultra model or the regular Chromecast?", "confidence": 0.94733626 } ], "resultEndTime": "18.460s" }, { "alternatives": [ { "transcript": " Regular Chromecast is fine. Thank you. Okay. Sure. Would you like to ship it regular or Express?", "confidence": 0.9519095 } ], "resultEndTime": "25.930s" }, { "alternatives": [ { "transcript": " Express, please.", "confidence": 0.9101229 } ], "resultEndTime": "28.260s" }, { "alternatives": [ { "transcript": " Terrific. It's on the way. Thank you. Thank you very much. Bye.", "confidence": 0.9321616 } ], "resultEndTime": "34.150s" } ] }
Go
Speech-to-Text용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Speech-to-Text 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Speech-to-Text Go API 참조 문서를 확인하세요.
Speech-to-Text에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Speech-to-Text용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Speech-to-Text 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Speech-to-Text Java API 참조 문서를 확인하세요.
Speech-to-Text에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Speech-to-Text용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Speech-to-Text 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Speech-to-Text Node.js API 참조 문서를 확인하세요.
Speech-to-Text에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Speech-to-Text용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Speech-to-Text 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Speech-to-Text Python API 참조 문서를 확인하세요.
Speech-to-Text에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 Speech-to-Text 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 Speech-to-Text 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 Speech-to-Text 참고 문서를 참조하세요.
삭제
이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.
프로젝트 삭제
비용이 청구되지 않도록 하는 가장 쉬운 방법은 튜토리얼에서 만든 프로젝트를 삭제하는 것입니다.
프로젝트를 삭제하는 방법은 다음과 같습니다.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
인스턴스 삭제
Compute Engine 인스턴스를 삭제하는 방법은 다음과 같습니다.
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
기본 네트워크의 방화벽 규칙 삭제
방화벽 규칙을 삭제하는 방법은 다음과 같습니다.
- In the Google Cloud console, go to the Firewall page.
- Select the checkbox for the firewall rule that you want to delete.
- To delete the firewall rule, click Delete.