SpeechSynthesizer.AddLexicon(Uri, String) Método

Definição

Adiciona um léxico ao objeto 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)

Parâmetros

uri
Uri

O local das informações de léxico.

mediaType
String

O tipo de mídia do léxico. Os valores de tipo de mídia não diferenciam maiúsculas e minúsculas.

Exemplos

O exemplo a seguir demonstra o efeito de adicionar e remover um léxico que contém uma pronúncia personalizada para a palavra "azul". O léxico define a pronúncia de "azul" para soar como "bleep". Enquanto o léxico é carregado, o sintetizador de fala usa a pronúncia definida no léxico.

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();
    }
  }
}

A seguir estão o conteúdo do arquivo léxico 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>

Comentários

Um léxico de pronúncia é uma coleção de palavras ou frases junto com suas pronúncias, que consistem em letras e caracteres de um alfabeto fonético com suporte. Você pode usar um léxico para especificar pronúncias personalizadas para vocabulário especializado em seu aplicativo.

Pronúncias especificadas em um arquivo léxico externo têm precedência sobre as pronúncias do léxico ou dicionário interno do sintetizador de fala. No entanto, pronúncias especificadas embutidas em prompts criados com qualquer um dos AppendTextWithPronunciationmétodos , AppendSsmlMarkupou AppendSsml têm precedência sobre pronúncias especificadas em qualquer léxico. Pronúncias embutidas se aplicam apenas a uma única ocorrência de uma palavra. Consulte Léxicos e Alfabetos Fonéticos para obter mais informações.

Você pode adicionar vários léxicos a um SpeechSynthesizer objeto . No momento, há suporte para dois valores para o mediaType parâmetro :

  • O valor application/pls+xml indica que o léxico está em conformidade com a PLS (Especificação de Léxico de Pronúncia) versão 1.0. Esse é o formato preferencial a ser usado.

  • O valor application/vdn.ms-sapi-lex indica que o formato léxico é léxico descompactado, que é um formato proprietário de Microsoft. Esse é um formato herdado e recomendamos que você use o formato PLS descrito acima.

Aplica-se a

Confira também