TtsEngineSsml.RemoveLexicon Method (Uri, ITtsEngineSite)


Removes a lexicon currently loaded by the SynthesizerVoice implemented by the current TtsEngineSsml instance.

Namespace:   System.Speech.Synthesis.TtsEngine
Assembly:  System.Speech (in System.Speech.dll)

public abstract void RemoveLexicon(
	Uri uri,
	ITtsEngineSite site


Type: System.Uri

A valid instance of System.Uri indicating the location of the lexicon information.

Type: System.Speech.Synthesis.TtsEngine.ITtsEngineSite

A reference to an ITtsEngineSite interface passed in by the platform infrastructure to allow access to the infrastructure resources.

A pronunciation lexicon is a collection of words or phrases together with their pronunciations specified using an appropriate pronunciation alphabet.

This method is typically called in response to a System.Speech.Synthesis based applications calling RemoveLexicon and using the SynthesizerVoice implemented by the current TtsEngineSsml instance.

Notes to Inheritors:

It is the responsibility of the implementation to be fully familiar with and be able to process the lexicon stored at uri. The implementation must also keep track and manage the lifetimes of all lexicons it removes.

The implementation of RemoveLexicon uses the lexicon URI to query an instance System.Collections.Generic.Dictionary for the System.IO.Stream, closes the stream and removes the uri referring to the lexicon.

public static Dictionary<Uri, Stream> _aLexicons = new Dictionary<Uri, Stream>();

 public void AddLexicon(Uri uri, string mediaType, ITtsEngineSite site) {
    Stream stream = site.LoadResource(uri, mediaType);
    _aLexicons.Add(uri, stream);

 public void RemoveLexicon(Uri uri, ITtsEngineSite site) {
     Stream stream;
     if (_aLexicons.TryGetValue(uri, out stream)) {

.NET Framework
Available since 3.0
Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft