Introduction

Today I explain how to convert text or a text file into speech. This process is also called voice synthesis. To implement this, first of I must add the "System.Speech" using the add reference dialog box in your project. Then add the following two namespaces:

using System.Speech.Synthesis ;

using System.IO;

"System.Speech.Synthesis" contains the various functions for voice synthesis.

Use the following procedure to create it.

Step 1

First of all you must create a new Windows Store Application.

  • Open Visual Studio 2012
  • "File" -> "New" -> "Project..."
  • Choose "Template" -> "Visual C#" -> "Windows Forms Application"
  • Then rename the application

Step 2

Now design the form as you need to. Here I have designed it like this:

from-design.jpg

Step 3

Right-click on file name (that is available in Solution Explorer) and add the library "System.Speech".

add-reference.jpg

sppech-libaray.jpg

Step 4

Now write the Form1.cs code in C#.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Speech.Synthesis ;

using System.IO;

namespace text_to_speech

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

speech = new SpeechSynthesizer();

Pausespeak.Enabled = false;

Resumespeak.Enabled = false;

Stopspeak.Enabled = false;

}

SpeechSynthesizer speech;

private void button6_Click(object sender, EventArgs e)

{

if (textbox1.Text.Length >0)

{

speech = new SpeechSynthesizer();

speech.SpeakAsync(textbox1.Text);

label1.Text = "Speaking";

Pausespeak.Enabled = true;

Stopspeak.Enabled = true;

speech.SpeakCompleted += speech_SpeakCompleted;

}

else

{

MessageBox.Show("Please Enter some text in the textbox", "Message", MessageBoxButtons.OK);

}

}

void speech_SpeakCompleted(object sender, SpeakCompletedEventArgs e)

{

label1.Text = "Ideal";

}

private void Pausespeak_Click(object sender, EventArgs e)

{

if (speech != null)

{

if (speech.State == SynthesizerState.Speaking)

{

speech.Pause();

label1.Text = "Pause";

Resumespeak.Enabled = true;

}

}

}

private void Resumespeak_Click(object sender, EventArgs e)

{

if (speech != null)

{

if (speech.State == SynthesizerState.Paused)

{

speech.Resume();

label1.Text = "speaking";

}

Resumespeak.Enabled = false;

}

}

private void Stopspeak_Click(object sender, EventArgs e)

{

if (speech != null)

{

speech.Dispose();

label1.Text = "Idle";

Pausespeak.Enabled = false;

Resumespeak.Enabled = false;

Stopspeak.Enabled = false;

}

}

private void Loadtextfromfile_Click(object sender, EventArgs e)

{

openFileDialog1.ShowDialog();

}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)

{

textbox1.Text = File.ReadAllText(openFileDialog1.FileName.ToString());

}

}

}

Step 5

Now run your application and add text into the TextBox, whether through the keyboard or through an open filedialog box and then click on the speech text button.

output-of-speech-app.jpg