![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNSUddAy0rkwfpz6Hv4djBRsNSZVKnTykKV_u5lqu2rKFXTVDgyNt7vxQWDGEl6pknOAzEoLEup8LuxvwTGX_MKj-66YrbEOiKDlB9kwHUPZC_3b3T_E__2R72_3tTmiLrnRUDVJw_30mA/s800/texto+a+voz.jpg)
Puedes crear tu propio software que lee texto con la voz pre instalada de Windows, puedes modificar la velocidad, el volumen, las voces y guardarlo en formato mp3.
Formulario
Primero las referencias necesarias para que funcione sin problemas nuestro programa.
using System.Speech.Synthesis;using System.IO;
Necesitamos listar en el ComboBox todas las voces disponibles de nuestro equipo, la mayoría por defecto ya cuenta con 2 o 3 voces. Si tu equipo esta en Ingles, las voces estarán en Ingles, a menos que descargues otros idiomas en tu equipo. También hay dll de pago que te permiten adquirir distintas voces, adquirir voces ya depende de cada uno.
SpeechSynthesizer voz; List<VoiceInfo> listarvoces = new List<VoiceInfo>(); private void Form1_Load(object sender, EventArgs e) { voz = new SpeechSynthesizer(); foreach (InstalledVoice x in voz.GetInstalledVoices()) { listarvoces.Add(x.VoiceInfo); cbolistar.Items.Add(x.VoiceInfo.Name); } cbolistar.SelectedIndex = 0; }
Botón leer
private void button1_Click(object sender, EventArgs e) { voz = new SpeechSynthesizer(); int ind; double volumen = trackbarvolumen.Value; double velocidad = tracbarvelocidad.Value; ind = cbolistar.SelectedIndex; String nombrevoces = listarvoces.ElementAt(ind).Name; voz.SelectVoice(nombrevoces); voz.Volume = (int)volumen; voz.Rate = (int)velocidad; voz.SpeakAsync(textBox1.Text); btnpausar.Text = "Pausar"; }
Botón pausar
private void btnpausar_Click(object sender, EventArgs e) { if (voz != null) { if (voz.State == SynthesizerState.Speaking) { voz.Pause(); btnpausar.Text = "Resumen"; } else if (voz.State == SynthesizerState.Paused) { voz.Resume(); btnpausar.Text = "Pausar"; } } }
Botón detener
private void btndetener_Click(object sender, EventArgs e) { if (voz != null) { voz.Dispose(); } }
Botón guardar
Tengan en cuenta que este botón posiblemente les de error al intentar guardar, por lo que se hace uso del Try Catch.
private void btnguardar_Click(object sender, EventArgs e) { try { voz = new SpeechSynthesizer(); using (SaveFileDialog vai = new SaveFileDialog()) { vai.Filter = "Wav files|*.wav"; if (vai.ShowDialog() == DialogResult.OK) { int ind; double volumen = trackbarvolumen.Value; double velocidad = tracbarvelocidad.Value; ind = cbolistar.SelectedIndex; String nombrevoces = listarvoces.ElementAt(ind).Name; voz.SelectVoice(nombrevoces); FileStream team = new FileStream(vai.FileName, FileMode.Create, FileAccess.Write); voz.SetOutputToWaveStream(team); voz.Speak(textBox1.Text); } } } catch { MessageBox.Show("Intentar de nuevo", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
Botón salir
private void btnsalir_Click(object sender, EventArgs e) { this.Close(); }
Botón acerca de
private void btnacerca_Click(object sender, EventArgs e) { MessageBox.Show("VaidrollTeam", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); }
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtLPDZFdFuAUWs3tH4Sh3gjdfymLykGT0unCw8KMzBCdkIDcpfH9BdNGU6JOiAkkLaaVR3aNUVGipt6R-E2CTjqcVT3Q0nrYNW4PNhemH0FAHFsGrF9YHfxrkPMb7wv4UveO_BcvsqUCNX/s16000/capturas3.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpQYrLUVt433QINf7oc3y5OzsIE6G0RsYBfwrh2ADyHAXEDdpgpZUnLswYMnLyKa1GdAQqHIwX6e2iN4ndUHNW7FbQVAuwUZW51LuuSlmaCIeV3GLReu68wwwNSQzcfTDzF8BCvnqY4GUd/s16000/textoavoz1.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmbAgNOIFgpRx91Iuuhyphenhyphen80ocGdwEUeizYiCgjI2D9w-DBOwgfu3OweuNjWjJVSnfC8p13_np7gehFH6H5KzoDASdWS6ynfqAl79hyFGLdJkBzST7FxKE14D8gONLMY-SaqYcwFGa4Re7b1/s16000/textoavoz2.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9jhCahpV47gf2FTnDGYQdcO7VOa9qyve8_za3iNt0jTo-ybGVib91swBEnqmRgDAEeFREDd2_USTKtEJW4m3_ZAgbcHCVbnQCDWTipHBBNVkrv-f7xLYpqRuwEqL8UZjAIcTA-fY66JcY/s16000/video3.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPobJ99NKGp3Y7U517gce9AZTPxO-z3Z2OKqvvxol9qL0ualZaQFq0nSFZX_5K7UuZnD7I0BpQTUkHy-vjoq3vi6dEvPGSGN1P2tdwBn2vBUnyysYnb-20IsvCykrcR7b73rHe3fTRPoUA/s16000/programas4.png)
- Visual Studio 2019