1. Genel Bakış
Google Cloud Text-to-Speech API, 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 Node.js 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
- Node.js için Google Cloud istemci kitaplığını yükleme
- Kullanılabilir sesleri listeleme
- Metinden ses sentezleme
Gerekenler
Anket
Bu eğitimi nasıl kullanacaksınız?
Node.js 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
- Cloud Console'da oturum açın ve 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.)
Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.
- Ardından, Google Cloud kaynaklarını 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ırma ücreti alınmaması için kaynakları nasıl kapatacağınız konusunda size tavsiyelerde bulunan "Temizleme" bölümündeki talimatları uyguladığınızdan emin olun. Google Cloud'un yeni 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 daha önce hiç başlatmadıysanız ne olduğunu açıklayan bir ara ekran (ekranın alt kısmı) gösterilir. Bu durumda Devam'ı tıkladığınızda bu ekranı bir daha görmezsiniz. Bu tek seferlik ekran aşağıdaki gibi görünür:
Cloud Shell'in temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır.
Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 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ı yalnızca bir tarayıcı veya Chromebook'unuzla 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 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. API isteklerinin kimliğini doğrulama
Text-to-Speech API'ye istek göndermek için hizmet hesabı kullanmanız gerekir. Hizmet hesabı, projenize aittir ve Google Client Node.js kitaplığı tarafından Text-to-Speech API istekleri göndermek için kullanılır. Diğer tüm kullanıcı hesapları gibi, hizmet hesabı da bir e-posta adresiyle temsil edilir. Bu bölümde, hizmet hesabı oluşturmak için Cloud SDK'yı kullanacak, ardından hizmet hesabı olarak kimlik 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, 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şturduktan sonra aşağıdaki komut aracılığıyla bir JSON dosyası "~/key.json" olarak kaydedin:
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 bir sonraki adımda ele alınan Text-to-Speech API Node.js kitaplığı tarafından kullanılan GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini ayarlayın. Ortam değişkeni, oluşturduğunuz kimlik bilgisi JSON dosyasının tam dizin yoluna göre ayarlanmalıdır. Bunun için:
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 ve istediğiniz klasörde yeni bir Node.js paketi başlatın:
npm init
NPM, proje yapılandırmasıyla ilgili ad ve sürüm gibi çeşitli sorular sorar. Her soru için ENTER tuşuna basarak varsayılan değerleri kabul edin. Varsayılan giriş noktası, index.js adlı bir dosyadır.
Ardından, Google Cloud Speech kitaplığını projeye yükleyin:
npm install --save @google-cloud/text-to-speech
Google Cloud için Node.js geliştirme ortamını ayarlama hakkında daha fazla talimat için lütfen Kurulum Kılavuzu'na bakın.
Artık Text-to-Speech API'yi kullanmaya hazırsınız.
6. Kullanılabilir Sesleri Listeleme
Bu bölümde, ses sentezi için İngilizce olarak sunulan tüm sesleri listeleyin.
index.js dosyasının içine 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');
Kodu incelemek için birkaç dakikanızı ayırın. 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 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.
index.js dosyasını bulun 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();
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.
node .
Aşağıdaki çıkışı göreceksiniz:
Audio content written to file "output.mp3"
8. Tebrikler!
Ses dosyalarında farklı türde transkripsiyonlar yapmak 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 ü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 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.