Comment puis-je changer le genre et l'âge du synthétiseur vocal en C#?
je voudrais changer le sexe et l'âge de la voix de l' System.Speech
en c#. Par exemple, une fille de 10 ans mais ne peut pas trouver d'exemple simple pour m'aider à ajuster les paramètres.
5 réponses
tout d'abord, vérifiez quelles voix vous avez installées en énumérant les GetInstalledVoices
méthode de l' SpeechSynthesizer
classe, et ensuite utiliser SelectVoiceByHints
pour sélectionner l'un d'eux:
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 Stack Overflow.");
synthesizer.Speak(builder);
}
http://msdn.microsoft.com/en-us/library/system.speech.synthesis.voiceage.aspx http://msdn.microsoft.com/en-us/library/system.speech.synthesis.voicegender.aspx
Avez-vous jeter un oeil à cela ?
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
}
}
}
- ce sera un meilleur choix d'utiliser "SpeakAsync" car lorsque la fonction "Speak" exécute / exécute aucune autre fonction ne fonctionnera jusqu'à ce qu'elle finisse son travail (personnellement recommandé)
tout d'abord, vous devez intialiser le discours de référence en utilisant la référence add.
puis créer un gestionnaire d'événements pour le speak commencé alors vous pouvez éditer les paramètres à l'intérieur de ce gestionnaire.
dans le gestionnaire est où vous pouvez changer la voix et l'âge en utilisant le
synthesizer.SelectVoiceByHints(VoiceGender.Male , VoiceAge.Adult);
cet âge et ce sexe ne sont en fait d'aucune utilité. Si vous avez beaucoup de voix installées dans vos fenêtres, alors vous pouvez appeler des voix spécifiques par ces paramètres. Sinon, il s'agit tout simplement faux!