Implementing Text-to-Speech in C# using System.Speech.Synthesis

Teknologi Text-to-speech (TTS) telah ada sejak lama dan telah menemukan banyak kasus penggunaan, seperti dalam pembelajaran bahasa, alat aksesibilitas untuk individu dengan gangguan penglihatan, dan dalam aplikasi yang mendukung ucapan. Pada artikel ini, kita akan mempelajari cara mengimplementasikan aplikasi TTS sederhana menggunakan C# dan namespace System.Speech.Synthesis.

Sebelum kita mulai, Anda perlu menginstal yang berikut ini di mesin Anda: .NET Framework 4.6.1 atau lebih tinggi dan Visual Studio 2017 atau lebih tinggi.

Kita akan menggunakan namespace System.Speech.Synthesis, yang menyediakan kelas untuk mensintesis ucapan dari teks. Ikuti langkah-langkah di bawah ini untuk membuat aplikasi konsol di C# dan mengimplementasikan TTS.

Buka Visual Studio dan buat proyek Aplikasi Konsol baru. Tambahkan referensi ke rakitan System.Speech. Klik kanan pada proyek di Solution Explorer, pilih Tambahkan Referensi, lalu pilih System.Speech dari daftar rakitan. Di file Program.cs, tambahkan kode berikut:

Garis Besar Kode
TTS dasar

Membuat instance SpeechSynthesizer dan mensintesis teks "Hello, world!" menggunakan perangkat audio default.

Mengubah Suara

Memilih suara wanita dewasa dan mensintesis teks "Hello, I am a female voice!" menggunakan suara itu.

Mengubah Pitch dan Rate

Menyetel kecepatan bicara ke -2 (lebih lambat) dan volume ke 100 (lebih keras), dan mensintesis teks "Hello, I am speaking slower and louder!".

Menjeda dan Melanjutkan Pidato

Mensintesis teks "Hello, I will pause for 3 seconds now.", menjeda pidato selama 3 detik, lalu melanjutkan pidato dan mensintesis teks "I am back!".

Menyimpan Ucapan ke File WAV

Menyetel output SpeechSynthesizer ke file WAV bernama "output.wav", dan mensintesis teks "HHello, I am saving my speech to a WAV file!".

Mengatur Aliran Pidato

Menyetel keluaran SpeechSynthesizer ke aliran memori, mensintesis teks "Hello, I am being streamed to a memory stream!", dan mendapatkan byte ucapan yang dihasilkan dari aliran memori.

Mengubah Suara dan Pengucapan

Menggunakan kelas PromptBuilder untuk membuat prompt yang lebih kompleks, mengubah suara untuk bagian tertentu dari prompt, dan menambahkan penekanan dan pengurangan penekanan pada bagian tertentu dari prompt. Prompt yang dihasilkan kemudian disintesis menggunakan SpeechSynthesizer.

Contoh kode ini menunjukkan beberapa fungsi dasar dan lanjutan dari kelas SpeechSynthesizer, termasuk mengubah suara dan nada, menjeda dan melanjutkan ucapan, dan menyimpan ucapan yang disintesis ke file atau aliran memori.