Menggunakan Text-to-Speech API dengan C#

1. Ringkasan

Google Cloud Text-to-Speech API (Beta) 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 C#. 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 C#
  • 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 C#

Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana Anda menilai pengalaman Anda dengan C#?

Pemula Menengah Mahir

Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform?

Pemula Menengah Mahir

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

295004821bab6a87.pngS

37d264871000675d.png

96d86d3d5655cdbe.pngS

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. 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

  1. Dari Cloud Console, klik Aktifkan Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Jika ini pertama kalinya Anda memulai Cloud Shell, Anda akan melihat layar perantara yang menjelaskan apa itu Cloud Shell. Jika Anda melihat layar perantara, klik Lanjutkan.

d95252b003979716.png

Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.

7833d5e1c5d18f54.pngS

Mesin virtual ini dimuat dengan semua alat pengembangan yang diperlukan. 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 dengan browser.

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda telah diautentikasi dan project sudah ditetapkan ke project ID Anda.

  1. 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`
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
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. Menginstal library klien Google Cloud Text-to-Speech API untuk C#

Pertama, buat aplikasi konsol C# sederhana yang akan Anda gunakan untuk menjalankan contoh API Text-to-Speech:

dotnet new console -n TextToSpeechApiDemo

Anda akan melihat aplikasi yang dibuat dan dependensi di-resolve:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Selanjutnya, buka folder TextToSpeechApiDemo:

cd TextToSpeechApiDemo/

Dan tambahkan paket NuGet Google.Cloud.TextToSpeech.V1 ke project:

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'.

Sekarang Anda siap untuk menggunakan Text-to-Speech API.

5. Mencantumkan Suara yang Tersedia

Di bagian ini, pertama-tama Anda akan mencantumkan semua suara yang tersedia dalam bahasa Inggris untuk sintesis audio.

Pertama, buka editor kode dari sisi kanan atas Cloud Shell:

fd3fc1303e63572.png

Buka file Program.cs di dalam folder TextToSpeechApiDemo dan ganti kode dengan kode berikut:

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)}");
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kodenya*.* Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run

Anda akan melihat output berikut:

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

Ringkasan

Pada langkah ini, Anda dapat membuat daftar semua suara yang tersedia dalam bahasa Inggris untuk sintesis audio. Anda juga dapat menemukan daftar lengkap suara yang tersedia di halaman Suara yang Didukung.

6. 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.

Untuk menyintesis file audio dari teks, buka file Program.cs di dalam folder TextToSpeechApiDemo dan ganti kode dengan kode berikut:

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\"");
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode tersebut dan lihat cara penggunaannya untuk membuat file audio dari teks*.*

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run

Anda akan melihat output berikut:

Audio content written to file "output.mp3"

Di dalam editor kode, Anda dapat mengunduh file mp3 dan memutarnya secara lokal di komputer Anda.

a4b9578505422dad.png

Ringkasan

Pada langkah ini, Anda dapat menggunakan Text-to-Speech API untuk mengonversi string menjadi file mp3 audio. Baca selengkapnya tentang Membuat file audio suara.

7. Selamat!

Anda telah mempelajari cara menggunakan Text-to-Speech API menggunakan C# 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

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.