SrgsToken.Pronunciation Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает строку, определяющую произношение для токена.
public:
property System::String ^ Pronunciation { System::String ^ get(); void set(System::String ^ value); };
public string Pronunciation { get; set; }
member this.Pronunciation : string with get, set
Public Property Pronunciation As String
Значение свойства
Возвращает строку, содержащую телефоны из фонетического алфавита, указанного в PhoneticAlphabet.
Исключения
Предпринята попытка установить для параметра Pronunciation значение null
.
Выполнена попытка присвоить свойству Pronunciation значение или пустую строку.
Примеры
Грамматика в следующем примере содержит слова сленга, а также необычное слово: "whatchamacallit". Добавление пользовательского встроенного SrgsToken произношения с помощью Pronunciation свойства класса может повысить точность распознавания слова "whatchamacallit", а также всей фразы, которая его содержит. В примере для определения пользовательских произношений используются телефоны из универсального набора телефонов Майкрософт (UPS).
using System;
using System.Speech.Recognition;
using System.Speech.Recognition.SrgsGrammar;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an instance of the in-process recognizer.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
{
// Build the SrgsOneOf objects with alternative choices for the slang phrase.
SrgsOneOf gimme = new SrgsOneOf(
new string[] { "give me", "gimme", "hand me", "ha'me" });
SrgsOneOf the = new SrgsOneOf(new string[] { "the", "duh" });
// Build the one-of element that contains the pronunciation.
SrgsItem thing = new SrgsItem("thingamajig");
SrgsItem whatcha = new SrgsItem();
SrgsToken callit = new SrgsToken("whatchamacallit");
callit.Pronunciation = "W AE T CH AE M AE K AA L IH T";
whatcha.Add(callit);
SrgsOneOf what = new SrgsOneOf(new SrgsItem[] {thing, whatcha});
// Create the rule from the SrgsOneOf objects.
SrgsRule slangRule = new SrgsRule("slang", gimme, the, what);
// Build an SrgsDocument object from the rule and set the phonetic alphabet.
SrgsDocument tokenPron = new SrgsDocument(slangRule);
tokenPron.PhoneticAlphabet = SrgsPhoneticAlphabet.Ups;
// Create a Grammar object from the SrgsDocument and load it to the recognizer.
Grammar g_Slang = new Grammar(tokenPron);
g_Slang.Name = ("Slang Pronunciation");
recognizer.LoadGrammarAsync(g_Slang);
// Configure recognizer input.
recognizer.SetInputToDefaultAudioDevice();
// Attach a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Start asynchronous recognition.
recognizer.RecognizeAsync();
Console.WriteLine("Starting asynchronous recognition...");
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Recognized phrase: " + e.Result.Text);
Console.WriteLine("Confidence: " + e.Result.Confidence);
Console.WriteLine(" Word summary: ");
foreach (RecognizedWordUnit word in e.Result.Words)
{
Console.WriteLine(
" Lexical form ({1})" +
" Pronunciation ({0})" +
" Confidence ({2})",
word.Pronunciation, word.LexicalForm, word.Confidence);
}
}
}
}
Комментарии
Телефоны — это буквы или символы, описывающие звуки речи. System.Speech поддерживает три фонетических алфавита для указания пользовательских произношений: универсальный набор телефонов (UPS), набор телефонов API распознавания речи (SAPI) и международный фонетический алфавит (IPA). Телефоны, указанные в , Pronunciation должны соответствовать фонетическому алфавиту, указанному в PhoneticAlphabet. Дополнительные сведения см. в статье Лексиконы и фонетические алфавиты .
Телефоны, указанные в , Pronunciation указывают, как должно быть произнесено содержимое для успешного Text распознавания. Подсистема распознавания речи использует произношение, указанное в , Pronunciation для сопоставления входных данных речи и возвращает строку, содержащуюся Text в результате распознавания.
Если телефоны не разделены пробелами или указанная строка содержит нераспознанный телефон, обработчик распознавания не распознает указанное произношение как допустимое произношение слова, содержащегося в Text.
Произношение, указанное в , Pronunciation имеет приоритет над произношением, указанным в словарях, связанных с грамматикой или подсистемой распознавания. Кроме того, произношение в свойстве Pronunciation применяется только к одному вхождении слова или фразы, содержащихся Textв .