Text To Speech
Text To Speech
Introduction
Text To Speech becomes very easy in C#. We know speech technology is very useful for the blind.
Now, we are going to learn how to implement speech technology in our project.
STEPS
1. Open Microsoft Visual Studio 2010 from Start | All Programs | Microsoft Visual Studio 2010 |
Microsoft Visual Studio 2010.
2. On the Microsoft Visual Studio Start Page, click the New Project icon.
3. On the Microsoft Visual Studio Start Page, click the New Project icon.
4. In C# projects Templates list, select Windows | WindowsApplication.
5. In the Name field, enter the name “text to speak”
6. In the upper right hand corner, ensure that version 4.0 of the .NET Framework is selected.
7. Accept the default location and Solution Name. Click the OK button. The solution will be created.
8. Right-click on the Text to Speak project node and select Add Reference.
9. Under the .NET tab in the Add Reference dialog box, select System.Speech.
10. Click the OK button.
try
{
Ofg.CheckFileExists = true;
Ofg.CheckPathExists = true;
Ofg.DefaultExt = "txt";
Ofg.DereferenceLinks = true;
Ofg.Filter = "Text files (*.txt)|*.txt|" +
"RTF files (*.rtf)|*.rtf|" +
" +
Works 6 and 7 (*.wps)|*.wps|" +
"Windows Write (*.wri)|*.wri|" +
"WordPerfect document (*.wpd)|*.wpd";
Ofg.Multiselect = false;
Ofg.RestoreDirectory = true;
Ofg.ShowHelp = true;
Ofg.ShowReadOnly = false;
Ofg.Title = "Select a file ";
OpenFile.ValidateNames = true;
if (OpenFile.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(ofg.OpenFile());
richTextBox1.Text = sr.ReadToEnd();
}
}
catch
{
MessageBox.Show("can not open the file", "Text two speech");
}
}
Here, first creating object instance for OpenFileDialog.stream reader is used to read a text file.
Text to Speak
SpeakAsync method is used to speak a word. There are two properties used here; one is volume,
another one is Rate. voice gender is also one of the properties. It is used to select voice gender
(enum NotSet, Male, Female, Neutral). If any error occurred, message box shows error message.
try
{
switch (comboBox1.SelectedItem.ToString())
{
case "NotSet":
voice.SelectVoiceByHints(VoiceGender.NotSet);
break;
case "Male":
voice.SelectVoiceByHints(VoiceGender.Male);
break;
case "Female":
voice.SelectVoiceByHints(VoiceGender.Female);
break;
case "Neturl":
voice.SelectVoiceByHints(VoiceGender.Neutral);
break;
}
The above code can change voice gender. speakAsyn is an asynchronous method. It means
return immediately and speak as a background process. If any error occurred, it will display on
message box.
if (sfd.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(sfd.FileName,FileMode.Create,FileAccess.Write);
voice.SetOutputToWaveStream(fs);
voice.Speak(richTextBox1.Text);
fs.Close();
}
Points of Interest
If you want to know more about speech technology, click on this link on the Microsoft website.
History
14th April, 2011: Initial version