Share via


Note

Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.

BookmarkReachedEventArgs Class

Returns data from the BookmarkReached event.

Inheritance Hierarchy

System.Object
  System.EventArgs
    System.ComponentModel.AsyncCompletedEventArgs
      Microsoft.Speech.Synthesis.PromptEventArgs
        Microsoft.Speech.Synthesis.BookmarkReachedEventArgs

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

Syntax

'Declaration
Public Class BookmarkReachedEventArgs _
    Inherits PromptEventArgs
'Usage
Dim instance As BookmarkReachedEventArgs
public class BookmarkReachedEventArgs : PromptEventArgs

Remarks

An instance of BookmarkReachedEventArgs is created when the SpeechSynthesizer object raises the BookmarkReached event. The SpeechSynthesizer raises the BookmarkReached event when it encounters a bookmark while processing any of the Speak(), SpeakAsync(), SpeakSsml(String), or SpeakSsmlAsync(String) methods. To obtain the name and location of the bookmark that triggered the event, access the Bookmark and the AudioPosition properties in the handler for the event.

Examples

The following example creates a prompt that includes two bookmarks and sends the output to a WAV file for playback. The handler for the BookmarkReached event writes the name of the bookmark and its position in the audio stream when the event was raised to the console.

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. 
        synth.SetOutputToWaveFile(@"C:\test\weather.wav");

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

        // Build a prompt and append bookmarks.
        PromptBuilder builder = new PromptBuilder(
          new System.Globalization.CultureInfo("en-US"));
        builder.AppendText(
          "The weather forecast for today is partly cloudy with some sun breaks.");
        builder.AppendBookmark("Daytime forecast");
        builder.AppendText(
          "Tonight's weather will be cloudy with a 30% chance of showers.");
        builder.AppendBookmark("Nightime forecast");

        // Add a handler for the BookmarkReached event.
        synth.BookmarkReached +=
          new EventHandler<BookmarkReachedEventArgs>(synth_BookmarkReached);

        // Speak the prompt and play back the output file.
        synth.Speak(builder);
        m_SoundPlayer.Play();
      }

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

    // Write the name and position of the bookmark to the console.
    static void synth_BookmarkReached(object sender, BookmarkReachedEventArgs e)
    {
      Console.WriteLine("Bookmark ({0}) reached at: {1} ",
        e.Bookmark, e.AudioPosition);
    }
  }
}

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

BookmarkReachedEventArgs Members

Microsoft.Speech.Synthesis Namespace

AppendBookmark(String)