Provides types to perform speech synthesis and speech recognition. Commonly Used Types System.Speech.Synthesis.SpeechSynthesizer System.Speech.Recognition.SpeechRecognizer
$ dotnet add package System.SpeechProvides APIs for speech recognition and synthesis built on the Microsoft Speech API in Windows. Not supported on other platforms.
This package is provided primarily for compatibility with code being ported from .NET Framework and is not accepting new features.
using System.Speech.Synthesis;
// Initialize a new instance of the SpeechSynthesizer.
SpeechSynthesizer synth = new SpeechSynthesizer();
// Configure the audio output.
synth.SetOutputToDefaultAudioDevice();
// Speak a string, synchronously
synth.Speak("Hello World!");
// Speak a string asynchronously
var prompt = synth.SpeakAsync("Goodnight Moon!");
while (!prompt.IsCompleted)
{
Console.WriteLine("speaking...");
Thread.Sleep(500);
}
// Create a new SpeechRecognitionEngine instance.
using SpeechRecognizer recognizer = new SpeechRecognizer();
using ManualResetEvent exit = new ManualResetEvent(false);
// Create a simple grammar that recognizes "red", "green", "blue", or "exit".
Choices choices = new Choices();
choices.Add(new string[] { "red", "green", "blue", "exit" });
// Create a GrammarBuilder object and append the Choices object.
GrammarBuilder gb = new GrammarBuilder();
gb.Append(choices);
// Create the Grammar instance and load it into the speech recognition engine.
Grammar g = new Grammar(gb);
recognizer.LoadGrammar(g);
// Register a handler for the SpeechRecognized event.
recognizer.SpeechRecognized += (s, e) =>
{
Console.WriteLine($"Recognized: {e.Result.Text}, Confidence: {e.Result.Confidence}");
if (e.Result.Text == "exit")
{
exit.Set();
}
};
// Emulate
Console.WriteLine("Emulating \"red\".");
recognizer.EmulateRecognize("red");
Console.WriteLine("Speak red, green, blue, or exit please...");
exit.WaitOne();
The main types provided by this library are:
System.Speech.Recognition.SpeechRecognizerSystem.Speech.Synthesis.SpeechSynthesizerSystem.Speech is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.