1. 개요
Google Cloud Text-to-Speech API (베타)를 사용하면 개발자가 자연스러운 합성 인간 음성을 재생 가능한 오디오로 애플리케이션에 포함할 수 있습니다. Text-to-Speech API는 텍스트 또는 음성 합성 마크업 언어 (SSML) 입력을 MP3 또는 LINEAR16 (WAV 파일에서 사용되는 인코딩)과 같은 오디오 데이터로 변환합니다.
이 Codelab에서는 C#으로 Text-to-Speech API를 사용하는 데 중점을 둡니다. 사용 가능한 음성을 나열하고 텍스트에서 오디오를 합성하는 방법을 알아봅니다.
학습할 내용
- Cloud Shell 사용 방법
- Text-to-Speech API를 사용 설정하는 방법
- API 요청 인증 방법
- C#용 Google Cloud 클라이언트 라이브러리를 설치하는 방법
- 사용 가능한 음성 나열 방법
- 텍스트에서 오디오를 합성하는 방법
필요한 항목
설문조사
이 튜토리얼을 어떻게 사용하실 계획인가요?
귀하의 C# 사용 경험을 평가해 주십시오.
귀하의 Google Cloud Platform 서비스 사용 경험을 평가해 주세요.
<ph type="x-smartling-placeholder">2. 설정 및 요구사항
자습형 환경 설정
- Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.
- 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
- 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔은 고유한 문자열을 자동으로 생성합니다. 일반적으로는 신경 쓰지 않아도 됩니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로
PROJECT_ID
로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 다른 임의 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다. - 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
- 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스 또는 프로젝트를 삭제하면 됩니다. Google Cloud 신규 사용자는 300달러(USD) 상당의 무료 체험판 프로그램에 참여할 수 있습니다.
Cloud Shell 시작
Google Cloud를 노트북에서 원격으로 실행할 수 있지만, 이 Codelab에서는 Cloud에서 실행되는 명령줄 환경인 Google Cloud Shell을 사용합니다.
Cloud Shell 활성화
- Cloud Console에서 Cloud Shell 활성화를 클릭합니다.
Cloud Shell을 처음 시작하는 경우에는 무엇이 있는지 설명하는 중간 화면이 표시됩니다. 중간 화면이 표시되면 계속을 클릭합니다.
Cloud Shell을 프로비저닝하고 연결하는 데 몇 분 정도만 걸립니다.
가상 머신에는 필요한 개발 도구가 모두 들어 있습니다. 영구적인 5GB 홈 디렉터리를 제공하고 Google Cloud에서 실행되므로 네트워크 성능과 인증이 크게 개선됩니다. 이 Codelab에서 대부분의 작업은 브라우저를 사용하여 수행할 수 있습니다.
Cloud Shell에 연결되면 인증이 완료되었고 프로젝트가 자신의 프로젝트 ID로 설정된 것을 확인할 수 있습니다.
- Cloud Shell에서 다음 명령어를 실행하여 인증되었는지 확인합니다.
gcloud auth list
명령어 결과
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Cloud Shell에서 다음 명령어를 실행하여 gcloud 명령어가 프로젝트를 알고 있는지 확인합니다.
gcloud config list project
명령어 결과
[core] project = <PROJECT_ID>
또는 다음 명령어로 설정할 수 있습니다.
gcloud config set project <PROJECT_ID>
명령어 결과
Updated property [core/project].
3. Text-to-Speech API 사용 설정
Text-to-Speech API를 사용하려면 먼저 API를 사용 설정해야 합니다. Cloud Shell에서 다음 명령어를 사용하여 API를 사용 설정할 수 있습니다.
gcloud services enable texttospeech.googleapis.com
4. C#용 Google Cloud Text-to-Speech API 클라이언트 라이브러리 설치
먼저 Text-to-Speech API 샘플을 실행하는 데 사용할 간단한 C# 콘솔 애플리케이션을 만듭니다.
dotnet new console -n TextToSpeechApiDemo
애플리케이션이 생성되고 종속 항목이 해결된 것을 확인할 수 있습니다.
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
그런 다음 TextToSpeechApiDemo
폴더로 이동합니다.
cd TextToSpeechApiDemo/
프로젝트에 Google.Cloud.TextToSpeech.V1
NuGet 패키지를 추가합니다.
dotnet add package Google.Cloud.TextToSpeech.V1
info : Adding PackageReference for package 'Google.Cloud.TextToSpeech.V1' into project '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
log : Restoring packages for /home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.TextToSpeech.V1' version '1.0.0-beta01' added to file '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
이제 Text-to-Speech API를 사용할 준비가 되었습니다.
5. 사용 가능한 음성 나열
이 섹션에서는 먼저 오디오 합성에 사용할 수 있는 모든 음성(영어)을 나열합니다.
먼저 Cloud Shell의 오른쪽 상단에서 코드 편집기를 엽니다.
TextToSpeechApiDemo
폴더 내의 Program.cs
파일로 이동하여 코드를 다음으로 바꿉니다.
using Google.Cloud.TextToSpeech.V1;
using System;
namespace TextToSpeechApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = TextToSpeechClient.Create();
var response = client.ListVoices("en");
foreach (var voice in response.Voices)
{
Console.WriteLine($"{voice.Name} ({voice.SsmlGender}); Language codes: {string.Join(", ", voice.LanguageCodes)}");
}
}
}
}
1~2분 정도 시간을 내어 코드를 살펴보세요*.* Cloud Shell로 돌아가서 앱을 실행합니다.
dotnet run
다음과 같은 출력이 표시됩니다.
en-US-Wavenet-D (Male); Language codes: en-US
en-AU-Wavenet-A (Female); Language codes: en-AU
en-AU-Wavenet-B (Male); Language codes: en-AU
en-AU-Wavenet-C (Female); Language codes: en-AU
en-AU-Wavenet-D (Male); Language codes: en-AU
en-GB-Wavenet-A (Female); Language codes: en-GB
en-GB-Wavenet-B (Male); Language codes: en-GB
en-GB-Wavenet-C (Female); Language codes: en-GB
...
en-GB-Standard-A (Female); Language codes: en-GB
en-GB-Standard-B (Male); Language codes: en-GB
en-AU-Standard-D (Male); Language codes: en-AU
요약
이 단계에서는 오디오 합성에 사용할 수 있는 모든 음성을 영어로 나열할 수 있었습니다. 지원되는 음성 페이지에서도 지원되는 음성의 전체 목록을 확인할 수 있습니다.
6. 텍스트에서 오디오 합성
Text-to-Speech API를 사용하여 문자열을 오디오 데이터로 변환할 수 있습니다. 고유한 음성을 선택하거나 출력의 높낮이, 볼륨, 말하기 속도, 샘플링 레이트를 조정하는 등 다양한 방법으로 음성 합성 출력을 구성할 수 있습니다.
텍스트에서 오디오 파일을 합성하려면 TextToSpeechApiDemo
폴더 내의 Program.cs
파일로 이동하여 코드를 다음으로 바꿉니다.
using Google.Cloud.TextToSpeech.V1;
using System;
using System.IO;
namespace TextToSpeechApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = TextToSpeechClient.Create();
// The input to be synthesized, can be provided as text or SSML.
var input = new SynthesisInput
{
Text = "This is a demonstration of the Google Cloud Text-to-Speech API"
};
// Build the voice request.
var voiceSelection = new VoiceSelectionParams
{
LanguageCode = "en-US",
SsmlGender = SsmlVoiceGender.Female
};
// Specify the type of audio file.
var audioConfig = new AudioConfig
{
AudioEncoding = AudioEncoding.Mp3
};
// Perform the text-to-speech request.
var response = client.SynthesizeSpeech(input, voiceSelection, audioConfig);
// Write the response to the output file.
using (var output = File.Create("output.mp3"))
{
response.AudioContent.WriteTo(output);
}
Console.WriteLine("Audio content written to file \"output.mp3\"");
}
}
}
1~2분 정도 시간을 내어 코드를 살펴보고 이 코드가 텍스트에서 오디오 파일을 만드는 데 어떻게 사용되는지 알아보세요*.*
Cloud Shell로 돌아가서 앱을 실행합니다.
dotnet run
다음과 같은 출력이 표시됩니다.
Audio content written to file "output.mp3"
코드 편집기 내에서 mp3 파일을 다운로드하여 컴퓨터에서 로컬로 재생할 수 있습니다.
요약
이 단계에서는 Text-to-Speech API를 사용하여 문자열을 오디오 mp3 파일로 변환했습니다. 음성 오디오 파일 만들기에 관해 자세히 알아보세요.
7. 축하합니다.
C# 으로 Text-to-Speech API를 사용하여 오디오 파일에서 다양한 종류의 스크립트를 작성하는 방법을 알아봤습니다.
삭제
이 빠른 시작에서 사용한 리소스 비용이 Google Cloud Platform 계정에 청구되지 않도록 하는 방법은 다음과 같습니다.
- Cloud Platform 콘솔로 이동합니다.
- 종료할 프로젝트를 선택한 후 '삭제'를 클릭하세요. 상단: 프로젝트 삭제가 예약됩니다.
자세히 알아보기
- Google Cloud Text-to-Speech API: https://cloud.google.com/text-to-speech/docs
- Google Cloud Platform의 C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET 클라이언트: https://googlecloudplatform.github.io/google-cloud-dotnet/
라이선스
이 작업물은 Creative Commons Attribution 2.0 일반 라이선스에 따라 사용이 허가되었습니다.