SpeakProgressEventArgs.Text Property

The text that was just spoken when the event was raised.

Namespace:  Microsoft.Speech.Synthesis
Assembly:  Microsoft.Speech (in Microsoft.Speech.dll)

public string Text { get; internal set; }

Property Value

Type: System.String
Returns the text that was just spoken when the event was raised.

The SpeechSynthesizer normalizes numbers to the words that correspond to how the number will be spoken. For example, the synthesizer speaks the number “4003” as “four thousand three”. It raises a SpeakProgress event for each of the spoken words. However, the Text property for each of the three words is the same. It is the text “4003” from the prompt.

The following example illustrates the how the SpeakProgress event reports the CharacterPosition and Text properties for strings that contain numbers.

using System;
using Microsoft.Speech.Synthesis;

namespace SampleSynthesis
  class Program
    static void Main(string[] args)

      // Initialize a new instance of the SpeechSynthesizer.
      using (SpeechSynthesizer synth = new SpeechSynthesizer())

        // Configure the audio output. 

        // Create a SoundPlayer instance to play the output audio file.
        System.Media.SoundPlayer m_SoundPlayer =
          new System.Media.SoundPlayer(@"C:\test\TextNumber.wav");

        // Create a PromptBuilder and append a number as a string.
        PromptBuilder builder = new PromptBuilder();

        // Add a handler for the SpeakProgress event.
        synth.SpeakProgress +=
          new EventHandler<SpeakProgressEventArgs>(synth_SpeakProgress);

        // Speak the prompt and play back the output file.

      Console.WriteLine("Press any key to exit...");

    // Write each word and its character position to the console.
    static void synth_SpeakProgress(object sender, SpeakProgressEventArgs e)
      Console.WriteLine("Speak progress -    Character position:  {0}    Text:  {1}",
        e.CharacterPosition, e.Text);