1. Genel Bakış
Google Cloud Text-to-Speech API, geliştiricilerin doğal ses getiren, sentetik insan konuşmasını uygulamalarına oynatılabilir ses olarak eklemesine 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 Node.js ile Text-to-Speech API'yi 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
- Node.js için Google Cloud istemci kitaplığını yükleme
- Kullanılabilir sesler nasıl listelenir?
- Metinden ses nasıl sentezlenir
Gerekenler
- Bir Google Cloud Platform Projesi
- Chrome veya Firefox gibi bir tarayıcı
- Node.js kullanımı hakkında bilgi
Anket
Bu eğiticiden nasıl yararlanacaksınız?
Node.js 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
- Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. (Gmail veya G Suite hesabınız yoksa hesap oluşturmanız gerekir.)
Tüm Google Cloud projelerinde benzersiz bir ad olan proje kimliğini unutmayın (yukarıdaki ad zaten alınmış ve size uygun olmayacaktır!). Bu kod laboratuvarın ilerleyen bölümlerinde PROJECT_ID
olarak adlandırılacaktır.
- Sonraki adımda, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.
Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. "Temizleme" bölümündeki talimatları izlediğinizden emin olun. bölümünde, bu eğiticinin dışında faturalandırmayla karşılaşmamanız için kaynakları nasıl kapatacağınız konusunda tavsiyelerde bulunuyoruz. Yeni Google Cloud kullanıcıları 300 ABD doları ücretsiz deneme programından 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 daha önce hiç çalıştırmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmında) gösterilir. Bu durumda Devam'ı tıklayın (bunu bir daha görmezsiniz). Tek seferlik ekran şöyle görünür:
Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.
İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 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ı yalnızca bir tarayıcı veya Chromebook'unuzla yapılabilir.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını görürsünüz.
- 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 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. API isteklerinin kimliğini doğrulama
Text-to-Speech API'ye istek göndermek için bir Hizmet Hesabı kullanmanız gerekir. Hizmet Hesabı projenize aittir ve Google Client Node.js kitaplığı tarafından, Text-to-Speech API istekleri yapmak için kullanılır. Diğer tüm kullanıcı hesapları gibi hizmet hesabı da e-posta adresiyle temsil edilir. Bu bölümde Google Cloud SDK'yı kullanarak bir hizmet hesabı oluşturacaksınız. Ardından, hizmet hesabı olarak kimliğinizi doğrulamak için gereken kimlik bilgilerini oluşturacaksınız.
Öncelikle, bu codelab boyunca kullanacağınız GOOGLE_CLOUD_PROJECT
ile bir ortam değişkeni ayarlayın:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Ardından, aşağıdakileri kullanarak Text-to-Speech API'ye erişmek için yeni bir hizmet hesabı oluşturun:
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Ardından, Node.js kodunuzun yeni hizmet hesabınız olarak giriş yapmak için kullanacağı kimlik bilgilerini oluşturun. Bu kimlik bilgilerini oluşturun ve "~/key.json" JSON dosyası olarak kaydedin kullanabilirsiniz:
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Son olarak, kimlik bilgilerinizi bulmak için Text-to-Speech API Node.js kitaplığının kullandığı GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini (bir sonraki adımda açıklanan) ayarlayın. Ortam değişkeninin, oluşturduğunuz kimlik bilgisi JSON dosyasının tam yoluna şu şekilde ayarlanması gerekir:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Node.js için Google Cloud Text-to-Speech API istemci kitaplığını yükleme
Öncelikle, bu Text-to-Speech API laboratuvarını çalıştırmak için kullanacağınız bir proje oluşturun. Ardından, istediğiniz bir klasörde yeni bir Node.js paketini başlatın:
npm init
AİOY, proje yapılandırması hakkında ad ve sürüm gibi çeşitli sorular sorar. Her soru için varsayılan değerleri kabul etmek üzere ENTER
tuşuna basın. Varsayılan giriş noktası index.js
adlı bir dosyadır.
Sonra, projeye Google Cloud Speech kitaplığını yükleyin:
npm install --save @google-cloud/text-to-speech
Google Cloud için Node.js geliştirmesinin nasıl oluşturulacağıyla ilgili daha fazla talimat için lütfen Kurulum Kılavuzu'nu inceleyin.
Artık Text-to-Speech API'yi kullanmaya hazırsınız.
6. Kullanılabilir Sesleri Listeleyin
Bu bölümde öncelikle ses sentezi için İngilizce olan mevcut tüm sesleri listelersiniz.
İçindeki index.js
dosyasına gidin ve kodu aşağıdakiyle değiştirin:
'use strict';
/**
* Lists available voices for the specified language.
*
* @param {string} languageCode - The language code.
*/
async function listVoices(languageCode) {
const textToSpeech = require('@google-cloud/text-to-speech');
const client = new textToSpeech.TextToSpeechClient();
const [result] = await client.listVoices({languageCode});
const voices = result.voices;
voices.forEach((voice) => {
console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
});
}
listVoices('en');
Bir iki dakikanızı ayırarak kodu inceleyin. Uygulamayı çalıştırın:
node .
Aşağıdaki çıkışı göreceksiniz:
en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...
7. 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.
İçindeki index.js
dosyasına gidin ve aşağıdaki kodu ekleyin:
/**
* Sythesizes sample text into an .mp3 file.
*/
async function synthesize() {
const textToSpeech = require('@google-cloud/text-to-speech');
const fs = require('fs');
const util = require('util');
const client = new textToSpeech.TextToSpeechClient();
const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';
const request = {
input: {text: text},
voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
audioConfig: {audioEncoding: 'MP3'},
};
const [response] = await client.synthesizeSpeech(request);
// Write the binary audio content to a local file
const writeFile = util.promisify(fs.writeFile);
await writeFile('output.mp3', response.audioContent, 'binary');
console.log('Audio content written to file: output.mp3');
}
synthesize();
Bir iki dakikanızı ayırarak kodu inceleyin ve metinden ses dosyası oluşturmak için nasıl kullanıldığını öğrenin.
node .
Aşağıdaki çıkışı göreceksiniz:
Audio content written to file "output.mp3"
8. Tebrikler!
Ses dosyalarında farklı türde metne dönüştürme işlemleri gerçekleştirmek için Node.js 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 Node.js: https://cloud.google.com/nodejs/
- Google Cloud Node.js istemcisi: https://googlecloudplatform.github.io/google-cloud-node/
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.