1. Ringkasan
Google Cloud Text-to-Speech API memungkinkan developer menyertakan ucapan manusia sintetis yang terdengar alami sebagai audio yang dapat diputar di aplikasi mereka. Text-to-Speech API mengonversi input teks atau Speech Synthesis Markup Language (SSML) menjadi data audio seperti MP3 atau LINEAR16 (encoding yang digunakan dalam file WAV).
Dalam codelab ini, Anda akan berfokus pada penggunaan Text-to-Speech API dengan Node.js. Anda akan mempelajari cara mencantumkan suara yang tersedia dan juga melakukan sintesis audio dari teks.
Yang akan Anda pelajari
- Cara menggunakan Cloud Shell
- Cara mengaktifkan Text-to-Speech API
- Cara Mengautentikasi permintaan API
- Cara menginstal library klien Google Cloud untuk Node.js
- Cara menampilkan suara yang tersedia
- Cara menyintesis audio dari teks
Yang Anda butuhkan
- Project Google Cloud Platform
- Browser, seperti Chrome atau Firefox
- Pemahaman dalam menggunakan Node.js
Survei
Bagaimana Anda akan menggunakan tutorial ini?
Bagaimana penilaian Anda terhadap pengalaman Anda dengan Node.js?
Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform?
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. (Jika belum memiliki akun Gmail atau G Suite, Anda harus membuatnya.)
Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID
.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.
Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Mengaktifkan Cloud Shell
- Dari Cloud Console, klik Aktifkan Cloud Shell
.
Jika belum pernah memulai Cloud Shell, Anda akan melihat layar perantara (di paruh bawah) yang menjelaskan apa itu Cloud Shell. Jika demikian, klik Lanjutkan (dan Anda tidak akan pernah melihatnya lagi). Berikut tampilan layar sekali-tampil tersebut:
Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.
Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan hanya dengan browser atau Chromebook.
Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda.
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list
Output perintah
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika tidak, Anda dapat menyetelnya dengan perintah ini:
gcloud config set project <PROJECT_ID>
Output perintah
Updated property [core/project].
3. Mengaktifkan Text-to-Speech API
Sebelum dapat mulai menggunakan Text-to-Speech API, Anda harus mengaktifkan API tersebut. Anda dapat mengaktifkan API menggunakan perintah berikut di Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. Melakukan Autentikasi permintaan API
Untuk membuat permintaan ke Text-to-Speech API, Anda harus menggunakan Akun Layanan. Akun Layanan merupakan milik project Anda dan digunakan oleh library Node.js Klien Google untuk membuat permintaan Text-to-Speech API. Seperti akun pengguna lainnya, akun layanan diwakili oleh alamat email. Di bagian ini, Anda akan menggunakan Cloud SDK untuk membuat akun layanan, lalu membuat kredensial yang diperlukan untuk melakukan autentikasi sebagai akun layanan.
Pertama, tetapkan variabel lingkungan dengan GOOGLE_CLOUD_PROJECT
yang akan Anda gunakan di seluruh codelab ini:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Selanjutnya, buat akun layanan baru untuk mengakses Text-to-Speech API menggunakan:
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Selanjutnya, buat kredensial yang akan digunakan kode Node.js untuk login sebagai akun layanan baru. Buat kredensial ini dan simpan sebagai file JSON "~/key.json" dengan menggunakan perintah berikut:
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Terakhir, tetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
, yang digunakan oleh library Node.js Text-to-Speech API, yang dibahas pada langkah berikutnya, untuk menemukan kredensial Anda. Variabel lingkungan harus ditetapkan ke jalur lengkap file JSON kredensial yang Anda buat menggunakan:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Menginstal library klien Google Cloud Text-to-Speech API untuk Node.js
Pertama, buat project yang akan Anda gunakan untuk menjalankan lab Text-to-Speech API ini, lakukan inisialisasi paket Node.js baru di folder pilihan Anda:
npm init
NPM akan mengajukan beberapa pertanyaan tentang konfigurasi project, seperti nama dan versi. Untuk setiap pertanyaan, tekan ENTER
untuk menyetujui nilai default. Titik entri default adalah file bernama index.js
.
Selanjutnya, instal library Google Cloud Speech ke project:
npm install --save @google-cloud/text-to-speech
Untuk petunjuk lebih lanjut tentang cara menyiapkan pengembangan Node.js untuk Google Cloud, lihat Panduan Penyiapan.
Sekarang Anda siap untuk menggunakan Text-to-Speech API.
6. Mencantumkan Suara yang Tersedia
Di bagian ini, pertama-tama Anda akan mencantumkan semua suara yang tersedia dalam bahasa Inggris untuk sintesis audio.
Buka file index.js
di dalam dan ganti kode dengan kode berikut:
'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');
Luangkan waktu satu atau dua menit untuk mempelajari kodenya. Jalankan aplikasi:
node .
Anda akan melihat output berikut:
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. Sintesis audio dari teks
Anda dapat menggunakan Text-to-Speech API untuk mengonversi string menjadi data audio. Anda dapat mengonfigurasi output sintesis ucapan dalam berbagai cara, termasuk memilih suara unik atau memodulasi output dalam tinggi nada, volume, kecepatan bicara, dan frekuensi sampel.
Buka file index.js
di dalam dan tambahkan kode berikut:
/**
* 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();
Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat cara penggunaannya untuk membuat file audio dari teks.
node .
Anda akan melihat output berikut:
Audio content written to file "output.mp3"
8. Selamat!
Anda telah mempelajari cara menggunakan Text-to-Speech API menggunakan Node.js untuk melakukan berbagai jenis transkripsi pada file audio.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Platform Anda untuk resource yang digunakan di panduan memulai ini:
- Buka Cloud Platform Console.
- Pilih project yang ingin dinonaktifkan, lalu klik 'Delete' di bagian atas: tindakan ini menjadwalkan penghapusan project.
Pelajari Lebih Lanjut
- Google Cloud Text-to-Speech API: https://cloud.google.com/text-to-speech/docs
- Node.js di Google Cloud Platform: https://cloud.google.com/nodejs/
- Klien Google Cloud Node.js: https://googlecloudplatform.github.io/google-cloud-node/
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.