SpeechSynthesizer.AddLexicon(Uri, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 SpeechSynthesizer 添加到该对象的词典中。
public:
void AddLexicon(Uri ^ uri, System::String ^ mediaType);
public void AddLexicon (Uri uri, string mediaType);
member this.AddLexicon : Uri * string -> unit
Public Sub AddLexicon (uri As Uri, mediaType As String)
参数
- uri
- Uri
词典信息的位置。
- mediaType
- String
词典的媒体类型。 媒体类型值不区分大小写。
示例
以下示例演示添加和删除包含单词“blue”的自定义发音的词典的效果。 词典将“blue”的发音定义为“bleep”。 加载词典时,语音合成器使用词典中定义的发音。
using System;
using System.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.SetOutputToDefaultAudioDevice();
// Speak the prompt.
synth.Speak("My favorite color is blue.");
// Add a lexicon that changes the pronunciation of "blue".
synth.AddLexicon(new Uri("C:\\test\\Blue.pls"), "application/pls+xml");
// Speak the prompt.
synth.Speak("My favorite color is blue.");
// Remove the lexicon.
synth.RemoveLexicon(new Uri("C:\\test\\Blue.pls"));
// Speak the prompt.
synth.Speak("My favorite color is blue.");
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
下面是词典文件 Blue.pls 的内容:
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
alphabet="x-microsoft-ups" xml:lang="en-US">
<lexeme>
<grapheme> blue </grapheme>
<phoneme> B L I P </phoneme>
</lexeme>
</lexicon>
注解
发音词典是单词或短语及其发音的集合,由受支持的音标中的字母和字符组成。 可以使用词典为应用程序中的专用词汇指定自定义发音。
外部词典文件中指定的发音优先于语音合成器的内部词典或词典的发音。 但是,在使用任何 AppendTextWithPronunciation、 AppendSsmlMarkup或 AppendSsml 方法创建的提示中内联指定的发音优先于任何词典中指定的发音。 内联发音仅适用于单词的单个匹配项。 有关详细信息 ,请参阅词典和拼音字母 表。
可以将多个词典添加到 对象 SpeechSynthesizer 。 参数当前支持 mediaType
两个值:
值
application/pls+xml
指示词典符合 发音词典规范 (PLS) 版本 1.0。 这是要使用的首选格式。值
application/vdn.ms-sapi-lex
指示词典格式为 Uncompressed Lexicon,这是 Microsoft 专有格式。 这是一种旧格式,建议使用上述 PLS 格式。