1. Genel Bakış
Google Cloud Text-to-Speech API (Beta), geliştiricilerin uygulamalarına oynatılabilir ses olarak doğal sesli, sentetik insan konuşması eklemesine olanak tanır. Text-to-Speech API, metin veya Konuşma Sentezi Biçimlendirme Dili (SSML) girişini MP3 veya LINEAR16 (WAV dosyalarında kullanılan kodlama) gibi ses verilerine dönüştürür.
Bu codelab'de Text-to-Speech API'yi C# ile kullanmaya odaklanacaksınız. Kullanılabilir sesleri nasıl listeleyeceğinizi ve metinden nasıl ses sentezleyeceğinizi öğreneceksiniz.
Neler öğreneceksiniz?
- Cloud Shell'i kullanma
- Text-to-Speech API'yi etkinleştirme
- API isteklerinin kimliğini doğrulama
- C# için Google Cloud istemci kitaplığını yükleme
- Kullanılabilir sesleri listeleme
- Metinden ses sentezleme
Gerekenler
- Google Cloud Platform projesi
- Chrome veya Firefox gibi bir tarayıcı
- C# kullanma konusunda bilgi sahibi olma
Anket
Bu eğitimi nasıl kullanacaksınız?
C# ile ilgili deneyiminizi nasıl değerlendirirsiniz?
Google Cloud Platform hizmetlerini kullanma deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve Gereksinimler
Yönlendirmesiz ortam kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle
PROJECT_IDolarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
Cloud Shell'i etkinleştirme
- Cloud Console'da Cloud Shell'i etkinleştir 'i
tıklayın.

Cloud Shell'i ilk kez başlatıyorsanız ne olduğunu açıklayan bir ara ekran gösterilir. Ara ekran gösterildiyse Devam'ı tıklayın.

Cloud Shell'in temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır.

Bu sanal makineye, ihtiyaç duyacağınız tüm geliştirme araçları yüklenmiştir. 5 GB boyutunda kalıcı bir ana dizin bulunur ve Google Cloud'da çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki çalışmalarınızın neredeyse tamamını tarayıcıyla yapabilirsiniz.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin, proje kimliğinize ayarlandığını görürsünüz.
- Kimliğinizin doğrulandığını onaylamak için Cloud Shell'de şu komutu çalıştırın:
gcloud auth list
Komut çıkışı
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Değilse şu komutla ayarlayabilirsiniz:
gcloud config set project <PROJECT_ID>
Komut çıkışı
Updated property [core/project].
3. Text-to-Speech API'yi etkinleştirme
Text-to-Speech API'yi kullanmaya başlamadan önce API'yi etkinleştirmeniz gerekir. API'yi Cloud Shell'de aşağıdaki komutu kullanarak etkinleştirebilirsiniz:
gcloud services enable texttospeech.googleapis.com
4. Google Cloud Text-to-Speech API'nin C# istemci kitaplığını yükleyin.
Öncelikle Text-to-Speech API örneklerini çalıştırmak için kullanacağınız basit bir C# konsol uygulaması oluşturun:
dotnet new console -n TextToSpeechApiDemo
Uygulamanın oluşturulduğunu ve bağımlılıkların çözüldüğünü görmelisiniz:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Ardından TextToSpeechApiDemo klasörüne gidin:
cd TextToSpeechApiDemo/
Ayrıca projeye Google.Cloud.TextToSpeech.V1 NuGet paketini ekleyin:
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'.
Artık Text-to-Speech API'yi kullanmaya hazırsınız.
5. Kullanılabilir Sesleri Listeleme
Bu bölümde, ses sentezi için İngilizce olarak sunulan tüm sesleri listeleyin.
Öncelikle Cloud Shell'in sağ üst tarafındaki kod düzenleyiciyi açın:

TextToSpeechApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:
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)}");
}
}
}
}
Bir veya iki dakikanızı ayırarak kodu inceleyin*.* Cloud Shell'e dönüp uygulamayı çalıştırın:
dotnet run
Aşağıdaki çıkışı göreceksiniz:
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
Özet
Bu adımda, ses sentezi için İngilizce olarak sunulan tüm sesleri listeleyebildiniz. Kullanılabilen seslerin tam listesini Desteklenen Sesler sayfasında da bulabilirsiniz.
6. Metinden ses sentezleme
Bir dizeyi ses verilerine dönüştürmek için Text-to-Speech API'yi kullanabilirsiniz. Konuşma sentezinin çıkışını çeşitli şekillerde yapılandırabilirsiniz. Örneğin, benzersiz bir ses seçebilir veya çıkışı ses perdesi, ses düzeyi, konuşma hızı ve örnekleme hızı açısından modüle edebilirsiniz.
Metinden ses dosyası sentezlemek için TextToSpeechApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakiyle değiştirin:
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\"");
}
}
}
Kodu incelemek ve metinden ses dosyası oluşturmak için nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.
Cloud Shell'e dönüp uygulamayı çalıştırın:
dotnet run
Aşağıdaki çıkışı göreceksiniz:
Audio content written to file "output.mp3"
Kod düzenleyicide mp3 dosyasını indirip makinenizde yerel olarak oynatabilirsiniz.

Özet
Bu adımda, bir dizeyi sesli mp3 dosyasına dönüştürmek için Text-to-Speech API'yi kullandınız. Ses dosyaları oluşturma hakkında daha fazla bilgi edinin.
7. Tebrikler!
Ses dosyalarında farklı türde transkripsiyonlar yapmak için C# kullanarak Text-to-Speech API'yi nasıl kullanacağınızı öğrendiniz.
Temizleme
Bu hızlı başlangıçta kullanılan kaynaklar için Google Cloud Platform hesabınızın ücretlendirmesini önlemek amacıyla:
- Cloud Platform Console'a gidin.
- Kapatmak istediğiniz projeyi seçin, ardından üst kısımdaki "Sil"i tıklayın. Bu işlem, projenin silinmesini planlar.
Daha Fazla Bilgi
- Google Cloud Text-to-Speech API: https://cloud.google.com/text-to-speech/docs
- Google Cloud Platform'da C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET istemcisi: https://googlecloudplatform.github.io/google-cloud-dotnet/
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.