이 튜토리얼에서는 음성 합성 마크업 언어(SSML)를 사용하여 주소 텍스트 파일을 말하는 방법을 보여줍니다. SSML 태그를 사용해서 텍스트의 문자열을 마크업하여 텍스트 음성 변환으로부터 합성 오디오를 맞춤설정할 수 있습니다.
일반 텍스트 | 일반 텍스트의 SSML 렌더링 |
---|---|
123 Street Ln |
<speak>123 Street Ln</speak> |
1 Number St |
<speak>1 Number St</speak> |
1 Piazza del Fibonacci |
<speak>1 Piazza del Fibonacci</speak> |
목표
SSML 및 텍스트 음성 변환 클라이언트 라이브러리를 사용하여 텍스트 음성 변환에 합성 음성 요청을 전송합니다.
비용
비용 정보는 텍스트 음성 변환 가격 책정 페이지를 참조하세요.
시작하기 전에
- Google Cloud Console에 텍스트 음성 변환 프로젝트가 있는지 확인합니다.
- 이 튜토리얼에서는 자바, Node.js, Python을 사용할 수 있습니다. Java를 사용하려면 Maven을 다운로드하고 설치합니다. Node.js를 사용하려면 npm을 다운로드합니다.
코드 샘플 다운로드
코드 샘플을 다운로드하려면 사용하려는 프로그래밍 언어에 대해 Google Cloud GitHub 샘플을 클론합니다.
자바
이 튜토리얼에서는 Google Cloud Platform 자바 샘플 저장소의 texttospeech/cloud-client/src/main/java/com/example/texttospeech/
디렉터리에 있는 코드가 사용됩니다.
이 튜토리얼용 코드로 이동하여 다운로드하려면 터미널에서 다음 명령어를 실행합니다.
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/texttospeech/cloud-client/src/main/java/com/example/texttospeech/
Node.js
이 튜토리얼에서는 Google Cloud Platform Node.js 샘플 저장소의 texttospeech
디렉터리에 있는 코드를 사용합니다.
이 튜토리얼용 코드로 이동하여 다운로드하려면 터미널에서 다음 명령어를 실행합니다.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd texttospeech/
Python
이 튜토리얼에서는 Google Cloud Platform Python 샘플 저장소의 texttospeech/snippets
디렉터리에 있는 코드가 사용됩니다.
이 튜토리얼용 코드로 이동하여 다운로드하려면 터미널에서 다음 명령어를 실행합니다.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd samples/snippets
클라이언트 라이브러리 설치
이 튜토리얼에서는 텍스트 음성 변환 클라이언트 라이브러리가 사용됩니다.
자바
이 튜토리얼에서는 다음 종속 항목이 사용됩니다.
Node.js
터미널에서 다음 명령어를 실행합니다.
npm install @google-cloud/text-to-speech
Python
터미널에서 다음 명령어를 실행합니다.
pip install --upgrade google-cloud-texttospeech
Google Cloud Platform 사용자 인증 정보 설정
GOOGLE_APPLICATION_CREDENTIALS
환경 변수를 설정하여 애플리케이션 코드에 사용자 인증 정보를 제공합니다. 이 변수는 현재 셸 세션에만 적용됩니다. 이후 셸 세션에 변수를 적용하려면 셸 시작 파일(예: ~/.bashrc
또는 ~/.profile
파일)에서 변수를 설정합니다.
Linux 또는 macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
KEY_PATH
를 사용자 인증 정보가 포함된 JSON 파일의 경로로 바꿉니다.
예를 들면 다음과 같습니다.
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
KEY_PATH
를 사용자 인증 정보가 포함된 JSON 파일의 경로로 바꿉니다.
예를 들면 다음과 같습니다.
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
명령 프롬프트:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
KEY_PATH
를 사용자 인증 정보가 포함된 JSON 파일의 경로로 바꿉니다.
라이브러리 가져오기
이 튜토리얼에서는 다음 시스템 및 클라이언트 라이브러리가 사용됩니다.
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에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Text-to-Speech API 사용
다음 함수는 SSML로 태그가 지정된 텍스트 문자열과 MP3 파일 이름을 사용합니다. 다음 함수는 SSML로 태그가 지정된 텍스트를 사용해서 합성 오디오를 생성합니다. 이 함수는 합성 오디오를 매개변수로 지정된 MP3 파일 이름으로 저장합니다.
전체 SSML 입력은 단일 음성으로만 읽혀질 수 있습니다.
VoiceSelectionParams
객체에 음성을 설정할 수 있습니다.
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에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
합성 오디오 맞춤설정
다음 함수는 텍스트 파일의 이름을 사용해서 파일 내용을 SSML로 태그 지정된 텍스트 문자열로 변환합니다.
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에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
종합해보기
이 프로그램은 다음 입력을 사용합니다.
123 Street Ln, Small Town, IL 12345 USA 1 Jenny St & Number St, Tutone City, CA 86753 1 Piazza del Fibonacci, 12358 Pisa, Italy
위 텍스트를 text_to_ssml()
로 전달하면 다음 태그 지정된 텍스트가 생성됩니다.
<speak>123 Street Ln, Small Town, IL 12345 USA <break time="2s"/>1 Jenny St & Number St, Tutone City, CA 86753 <break time="2s"/>1 Piazza del Fibonacci, 12358 Pisa, Italy <break time="2s"/></speak>
코드 실행
합성 음성의 오디오 파일을 생성하려면 명령줄에서 다음 코드를 실행합니다.
자바
Linux 또는 MacOS
java-docs-samples/texttospeech/cloud-client/
디렉터리에서 명령줄로 다음 명령어를 실행합니다.
$ mvn clean package
Windows
java-docs-samples/texttospeech/cloud-client/
디렉터리에서 명령줄로 다음 명령어를 실행합니다.
$ mvn clean package
Node.js
Linux 또는 MacOS
hybridGlossaries.js
파일에서 TODO (developer)
주석 처리된 변수의 주석 처리를 되돌립니다.
다음 명령어에서 projectId를 Google Cloud 프로젝트 ID로 바꿉니다.
nodejs-docs-samples/texttospeech
디렉터리에서 명령줄로 다음 명령어를 실행합니다.
$ node ssmlAddresses.js projectId
Windows
hybridGlossaries.js
파일에서 TODO (developer)
주석 처리된 변수의 주석 처리를 되돌립니다.
다음 명령어에서 projectId를 Google Cloud 프로젝트 ID로 바꿉니다.
nodejs-docs-samples/texttospeech
디렉터리에서 명령줄로 다음 명령어를 실행합니다.
$env: C:/Node.js/node.exe C: ssmlAddresses.js projectId
Python
Linux 또는 MacOS
python-docs-samples/texttospeech/snippets
디렉터리에서 명령줄로 다음 명령어를 실행합니다.
$ python ssml_addresses.py
Windows
python-docs-samples/texttospeech/snippets
디렉터리에서 명령줄로 다음 명령어를 실행합니다.
$env: C:/Python3/python.exe C: ssml_addresses.py
출력 확인
이 프로그램은 합성 음성의 example.mp3 오디오 파일을 출력합니다.
자바
java-docs-samples/texttospeech/cloud-client/resources/
디렉터리로 이동합니다.
resources
디렉터리에서 example.mp3 파일을 확인합니다.
Node.js
nodejs-docs-samples/texttospeech/resources/
디렉터리로 이동합니다.
resources
디렉터리에서 example.mp3 파일을 확인합니다.
Python
python-docs-samples/texttospeech/snippets/resources
로 이동합니다.
resources
디렉터리에서 example.mp3 파일을 확인합니다.
다음 오디오 클립을 듣고 example.mp3 파일이 동일하게 소리나는지 확인합니다.
문제 해결
명령줄에서 GOOGLE_APPLICATION_CREDENTIALS 환경 변수 설정을 잊으면 오류 메시지가 발생합니다.
The Application Default Credentials are not available.
존재하지 않는 파일의 이름을
text_to_ssml()
에 전달하면 오류 메시지가 발생합니다.IOError: [Errno 2] No such file or directory
ssml_to_audio()
에 None이 포함된 ssml_text 매개변수를 전달하면 오류 메시지가 발생합니다.InvalidArgument: 400 Invalid input type. Type has to be text or SSML
코드를 실행 중인 위치가 올바른 디렉터리인지 확인합니다.
다음 단계
- 다른 SSML 태그 살펴보기
- Translation 및 Vision에 SSML 사용 방법 알아보기
삭제
이 튜토리얼에서 사용된 리소스 비용이 Google Cloud Platform 계정에 청구되지 않도록 하려면 Google Cloud Console을 사용하여 필요하지 않은 프로젝트를 삭제하세요.
프로젝트 삭제
- Google Cloud 콘솔에서 프로젝트 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력하고 종료를 클릭하여 프로젝트를 삭제합니다.