Introduction
This code is an introduction on how to use the new System.Speech
class in the .NET Framework v3.0 and v3.5. The sample source code includes an application and the source code is provided in all three .NET languages (VB, C++, C#). It is a simple Windows application and shows how to use text to speech and how to export the speech to a WAV file. The source code was written in Visual Studio 2008 using .NET 3.5.
The Code
Namespaces
First, we need to reference the System.Speech
assembly from the application. From the Project menu, choose Add Reference. The from the .NET tab, highlight System.Speech
and choose OK.
Then add a simple namespace import to your class file (the Form file).
using System.Speech.Synthesis;
using namespace System::Speech::Synthesis;
Imports System.Speech.Synthesis
Declarations
Next, we need to declare and instantiate a speech
object. The class is System.Speech.Synthesis.Speechsynthesizer
. This one class has enough properties and methods to speak a string
using the default language and voice of the OS. In Microsoft Windows Vista, the default voice is Microsoft Ana. For Windows XP, it's Microsoft Sam. You can install additional voices, but I'll leave that to another article.
SpeechSynthesizer speaker = new SpeechSynthesizer();
public: SpeechSynthesizer speaker;
Dim speaker as New SpeechSynthesizer()
Usage
Finally, we call the Speak
or SpeakAsync
method of the object passing in a string
containing the text we want spoken.
speaker.Rate = 1;
speaker.Volume = 100;
speaker.Speak("Hello world.");
speaker.Rate = 1;
speaker.Volume = 100;
speaker.Speak("Hello world.");
speaker.Rate = 1
speaker.Volume = 100
speaker.Speak("Hello world".)
You can see from the image that I have also included settings for speaking rate and volume. The sample programs also include code for saving the spoken string
to a WAV file. Then you can set your system's sounds to the WAV files you create and your computer will sound like Dr. Falkan's. Would you like to play a game?
speaker.SetOutputToWaveFile("c:\soundfile.wav");
speaker.Speak("Hellow world.");
speaker.SetOutputToDefaultAudioDevice();
speaker.SetOutputToWaveFile("c:\soundfile.wav");
speaker.Speak("Hellow world.");
speaker.SetOutputToDefaultAudioDevice();
speaker.SetOutputToWaveFile("c:\soundfile.wav")
speaker.Speak("Hellow world.")
speaker.SetOutputToDefaultAudioDevice()
History
- 21st August, 2008: Initial post