1. Genel Bakış
Google Cloud Text-to-Speech API (Beta), geliştiricilerin doğal ses getiren, sentetik insan konuşmasını uygulamalarına oynatılabilir ses olarak dahil etmelerine olanak tanır. Text-to-Speech API, metin veya Speech Synthesis Biçimlendirme Dili (SSML) girişini MP3 ya da 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. Mevcut sesleri nasıl listeleyeceğinizi ve metinden ses sentezlemeyi öğ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 sesler nasıl listelenir?
- Metinden ses nasıl sentezlenir
Gerekenler
Anket
Bu eğiticiden nasıl yararlanacaksınız?
C# ile ilgili deneyiminizi nasıl değerlendirirsiniz?
Google Cloud Platform hizmetlerinin kullanımıyla ilgili deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google Cloud Console'da oturum açıp 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. İstediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğinizi (genellikle
PROJECT_ID
olarak tanımlanır) belirtmeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır. - Bilginiz olması açısından, bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmanın tekrarlanmasını önlemek amacıyla kaynakları kapatmak için oluşturduğunuz kaynakları silebilir veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Cloud Shell'i başlatma
Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de 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 simgesini tıklayın.
Cloud Shell'i ilk kez başlatıyorsanız ne olduğunu açıklayan bir ara ekran gösterilir. Ara bir ekran görüntülendiyse Devam'ı tıklayın.
Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.
Gereken tüm geliştirme araçları bu sanal makinede yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki çalışmalarınızın tamamı olmasa bile büyük bir kısmı tarayıcıyla yapılabilir.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını göreceksiniz.
- Kimlik doğrulamanızın tamamlandığını onaylamak için Cloud Shell'de aşağıdaki 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 projenizi bildiğini onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Doğru değilse aşağıdaki 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. Cloud Shell'de aşağıdaki komutu kullanarak API'yi etkinleştirebilirsiniz:
gcloud services enable texttospeech.googleapis.com
4. C# için Google Cloud Text-to-Speech API istemci kitaplığını yükleme
Öncelikle, Text-to-Speech API örnekleri ç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öreceksiniz:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Sonra, TextToSpeechApiDemo
klasörüne gidin:
cd TextToSpeechApiDemo/
Ardından 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 Listeleyin
Bu bölümde öncelikle ses sentezi için İngilizce olan mevcut tüm sesleri listelersiniz.
İlk olarak Cloud Shell'in sağ üst tarafından kod düzenleyiciyi açın:
TextToSpeechApiDemo
klasörünün içindeki Program.cs
dosyasına gidin ve kodu aşağıdakiyle 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 mevcut tüm sesleri İngilizce olarak listeleyebildiniz. Ayrıca Desteklenen Sesler sayfasında mevcut seslerin tam listesini bulabilirsiniz.
6. Metinden ses sentezle
Bir dizeyi ses verilerine dönüştürmek için Text-to-Speech API'yi kullanabilirsiniz. Konuşma sentezinin çıktısını benzersiz bir ses seçme veya çıktı perde, ses düzeyi, konuşma hızı ve örnek hızına göre değiştirme gibi çeşitli şekillerde yapılandırabilirsiniz.
Metinden ses dosyası sentezlemek için TextToSpeechApiDemo
klasöründeki Program.cs
dosyasına gidin ve kodu aşağıdaki kodla 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\"");
}
}
}
Bir iki dakikanızı ayırarak kodu inceleyin ve metinden ses dosyası oluşturmak için nasıl kullanıldığını öğrenin*.*
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üzenleyicinin içinde, mp3 dosyasını indirebilir ve makinenizde yerel olarak oynatabilirsiniz.
Özet
Bu adımda, bir dizeyi ses mp3 dosyasına dönüştürmek için Text-to-Speech API kullandınız. Ses dosyaları oluşturma hakkında daha fazla bilgi edinin.
7. Tebrikler!
Ses dosyalarında farklı türde metne dönüştürme işlemleri gerçekleştirmek 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 "Sil"i tıklayın üstte üstte yer alır: Bu işlem, projeyi silinmek üzere programlar.
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.