c# speech synthesizer

¿Cómo puedo cambiar el género y la edad del sintetizador de voz en C#?



speech synthesizer (5)

En primer lugar, debe inicializar el discurso de referencia con la referencia Agregar.

luego cree un controlador de eventos para el inicio de la conversación y luego puede editar los parámetros dentro de ese controlador.

en el controlador es donde puede cambiar la voz y la edad utilizando el

synthesizer.SelectVoiceByHints(VoiceGender.Male , VoiceAge.Adult);

Me gustaría cambiar el género y la edad de la voz de System.Speech en c #. Por ejemplo, una niña de 10 años pero no puede encontrar ningún ejemplo simple que me ayude a ajustar los parámetros.


Esta edad y género en realidad no sirve de nada. Si tiene muchas voces instaladas en sus ventanas, entonces puede llamar voces específicas por estos parámetros. De lo contrario, es simplemente falso!


Primero, verifique qué voces ha instalado enumerando el método GetInstalledVoices de la clase SpeechSynthesizer , y luego use SelectVoiceByHints para seleccionar una de ellas:

using (SpeechSynthesizer synthesizer = new SpeechSynthesizer()) { // show installed voices foreach (var v in synthesizer.GetInstalledVoices().Select(v => v.VoiceInfo)) { Console.WriteLine("Name:{0}, Gender:{1}, Age:{2}", v.Description, v.Gender, v.Age); } // select male senior (if it exists) synthesizer.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Senior); // select audio device synthesizer.SetOutputToDefaultAudioDevice(); // build and speak a prompt PromptBuilder builder = new PromptBuilder(); builder.AppendText("Found this on ."); synthesizer.Speak(builder); }



using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Speech.Synthesis; // first import this package namespace textToSpeech { public partial class home : Form { public string s = "pran"; // storing string (pran) to s private void home_Load(object sender, EventArgs e) { speech(s); // calling the function with a string argument } private void speech(string args) // defining the function which will accept a string parameter { SpeechSynthesizer synthesizer = new SpeechSynthesizer(); synthesizer.SelectVoiceByHints(VoiceGender.Male , VoiceAge.Adult); // to change VoiceGender and VoiceAge check out those links below synthesizer.Volume = 100; // (0 - 100) synthesizer.Rate = 0; // (-10 - 10) // Synchronous synthesizer.Speak("Now I''m speaking, no other function''ll work"); // Asynchronous synthesizer.SpeakAsync("Welcome" + args); // here args = pran } } }

  • Será una mejor opción usar "SpeakAsync" porque cuando la función "Hablar" se está ejecutando / ejecutando, ninguna de las demás funciones funcionará hasta que termine su trabajo (recomendado personalmente)

Cambiar VoiceGender
Cambiar VoiceAge