Text-to-Speech를 사용하여 단어 및 문장을 자연스러운 인간 음성의 base64 인코딩 오디오 데이터로 변환할 수 있습니다. 그런 다음 base64 데이터를 디코딩하여 오디오 데이터를 MP3와 같은 재생 가능한 오디오 파일로 변환할 수 있습니다. Text-to-Speech API는 원시 텍스트 또는 SSML(Speech Synthesis Markup Language) 형식의 입력을 사용합니다.
이 문서에서는 Text-to-Speech를 사용하여 텍스트 또는 SSML 입력으로 오디오 파일을 만드는 방법을 설명합니다 또한 음성 합성이나 SSML과 같은 개념에 익숙하지 않은 경우 Text-to-Speech 기본 사항 문서를 살펴볼 수도 있습니다.
이 샘플을 사용하려면 Google Cloud CLI를 설치하고 초기화해야 합니다. gcloud CLI 설정에 대한 자세한 내용은 TTS에 인증을 참조하세요.
텍스트를 합성 음성 오디오로 변환
다음 코드 샘플은 문자열을 오디오 데이터로 변환하는 방법을 보여줍니다.
고유한 음성을 선택하거나 출력의 높낮이, 볼륨, 말하기 속도, 샘플링 레이트를 조정하는 등 다양한 방식으로 음성 합성 출력을 구성할 수 있습니다.
프로토콜
자세한 내용은 text:synthesize
API 엔드포인트를 참조하세요.
텍스트에서 오디오를 합성하려면 text:synthesize
엔드포인트에 HTTP POST 요청을 수행합니다. POST 요청 본문에서 voice
구성 섹션에 합성할 음성 유형을 지정하고, input
섹션의 text
필드에 합성할 텍스트를 지정하고, audioConfig
섹션에 생성할 오디오 유형을 지정합니다.
다음 코드 스니펫은 합성 요청을 text:synthesize
엔드포인트에 보내고 synthesize-text.txt
라는 파일에 결과를 저장합니다. PROJECT_ID
를 프로젝트 ID로 바꿉니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: <var>PROJECT_ID</var>" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'input':{ 'text':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt
Text-to-Speech API는 합성된 오디오를 JSON 출력에 포함된 base64 인코딩 데이터로 반환합니다. synthesize-text.txt
파일의 JSON 출력은 다음 코드 스니펫과 유사합니다.
{ "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.." }
Text-to-Speech API의 결과를 MP3 오디오 파일로 디코딩하려면 synthesize-text.txt
파일과 동일한 디렉터리에서 다음 명령어를 실행합니다.
cat synthesize-text.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-text-audio.mp3 && \ rm tmp.txt
Go
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Go API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Java API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Node.js API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Python API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 후 .NET용 Text-to-Speech 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 후 PHP용 Text-to-Speech 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 후 Ruby용 Text-to-Speech 참고 문서를 참조하세요.
SSML을 합성 음성 오디오로 변환
오디오 합성 요청에 SSML을 사용하면 자연스러운 인간의 음성과 매우 비슷한 오디오를 생성할 수 있습니다. 특히 SSML은 음성에서 오디오 출력의 일시중지 표현 방식이나 오디오의 날짜, 시간, 두문자어, 약어 발음 방법에 대한 세부적인 제어를 제공합니다.
Text-to-Speech API에서 지원하는 SSML 요소에 대한 자세한 내용은 SSML 참조를 참조하세요.
프로토콜
자세한 내용은 text:synthesize
API 엔드포인트를 참조하세요.
SSML에서 오디오를 합성하려면 text:synthesize
엔드포인트에 HTTP POST 요청을 수행합니다. POST 요청 본문에서 voice
구성 섹션에 합성할 음성 유형을 지정하고, input
섹션의 ssml
필드에 합성할 SSML을 지정하고, audioConfig
섹션에 생성할 오디오 유형을 지정합니다.
다음 코드 스니펫은 합성 요청을 text:synthesize
엔드포인트에 보내고 synthesize-ssml.txt
라는 파일에 결과를 저장합니다. PROJECT_ID
를 프로젝트 ID로 바꿉니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: <var>PROJECT_ID</var>" \ -H "Content-Type: application/json; charset=utf-8" --data "{ 'input':{ 'ssml':'<speak>The <say-as interpret-as=\"characters\">SSML</say-as> standard is defined by the <sub alias=\"World Wide Web Consortium\">W3C</sub>.</speak>' }, 'voice':{ 'languageCode':'en-us', 'name':'en-US-Standard-B', 'ssmlGender':'MALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-ssml.txt
Text-to-Speech API는 합성된 오디오를 JSON 출력에 포함된 base64 인코딩 데이터로 반환합니다. synthesize-ssml.txt
파일의 JSON 출력은 다음 코드 스니펫과 유사합니다.
{ "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.." }
Text-to-Speech API의 결과를 MP3 오디오 파일로 디코딩하려면 synthesize-ssml.txt
파일과 동일한 디렉터리에서 다음 명령어를 실행합니다.
cat synthesize-ssml.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-ssml-audio.mp3 && \ rm tmp.txt
Go
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Go API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Java API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Node.js API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Text-to-Speech용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Text-to-Speech 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Text-to-Speech Python API 참고 문서를 확인하세요.
Text-to-Speech에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 후 .NET용 Text-to-Speech 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 후 PHP용 Text-to-Speech 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 후 Ruby용 Text-to-Speech 참고 문서를 참조하세요.