Texto a Voz - SetOutputToDefaultAudioDevice()

     Este sencillo programa nos permite introducir un texto y el ordenador nos lo lee. Nos permite parar y continuar la lectura, así como también grabar la voz del texto leído en un fichero de audio.
Todavía es muy mejorable. Habría que cambiarle la voz de lectura por una más agradable, por ejemplo.

     Con el administrador de referencias tenemos que añadir System.Speech.



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;
using System.Speech.Synthesis;

// Programa original de Sekhar Srinivasan
// https://www.youtube.com/user/sekharonline4u

namespace Texto_a_Voz_I
{
    public partial class Form1 : Form
    {
        SpeechSynthesizer ss;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ss = new SpeechSynthesizer();
        }

        private void btnleer_Click(object sender, EventArgs e)
        {
            ss.Rate = trackBarVelocidad.Value;
            ss.Volume = trackBarVolumen.Value;
            ss.SpeakAsync(textoentrada.Text);
        }

        private void btnpausa_Click(object sender, EventArgs e)
        {
            ss.Pause();
        }

        private void btncontinuar_Click(object sender, EventArgs e)
        {
            ss.Resume();
        }




        private void btngrabar_Click(object sender, EventArgs e)
        {
            SpeechSynthesizer ss = new SpeechSynthesizer();
            ss.Rate = trackBarVelocidad.Value;
            ss.Volume = trackBarVolumen.Value;
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "Wave File| *.wav";
            sfd.ShowDialog();
            ss.SetOutputToWaveFile(sfd.FileName);
            ss.Speak(textoentrada.Text);
            ss.SetOutputToDefaultAudioDevice();
            MessageBox.Show("Grabación terminada..", "T2S");
        }

        private void btncerrar_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}




No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.