RecognizedWordUnit.LexicalForm 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取已识别的字符串的非正常化的文本。
public:
property System::String ^ LexicalForm { System::String ^ get(); };
public string LexicalForm { get; }
member this.LexicalForm : string
Public ReadOnly Property LexicalForm As String
属性值
返回没有任何正常化的无法识别的单词的文本的 String。
示例
以下示例演示了一个实用工具例程,它以以下三种格式之一生成文本:使用) 的词法 (、使用) 的规范化 (以及使用) 的 (音。 LexicalForm Text Pronunciation 文本输出从 对象的 获取,该输出从 对象上的 ReadOnlyCollection<T> RecognizedWordUnit Words 属性 RecognizedPhrase 获取。
internal enum WordType
{
Text,
Normalized = Text,
Lexical,
Pronunciation
}
internal static string stringFromWordArray(
ReadOnlyCollection<RecognizedWordUnit> words,
WordType type)
{
string text = "";
foreach (RecognizedWordUnit word in words)
{
string wordText = "";
if (type == WordType.Text || type == WordType.Normalized)
{
wordText = word.Text;
}
else if (type == WordType.Lexical)
{
wordText = word.LexicalForm;
}
else if (type == WordType.Pronunciation)
{
wordText = word.Pronunciation;
}
else
{
throw new InvalidEnumArgumentException(
String.Format("[0}: is not a valid input", type));
}
// Use display attribute
if ((word.DisplayAttributes & DisplayAttributes.OneTrailingSpace) != 0)
{
wordText += " ";
}
if ((word.DisplayAttributes & DisplayAttributes.TwoTrailingSpaces) != 0)
{
wordText += " ";
}
if ((word.DisplayAttributes & DisplayAttributes.ConsumeLeadingSpaces) != 0)
{
wordText = wordText.TrimStart();
}
if ((word.DisplayAttributes & DisplayAttributes.ZeroTrailingSpaces) != 0)
{
wordText = wordText.TrimEnd();
}
text += wordText;
}
return text;
}
注解
在大多数情况下, 和 返回 Text 的值 LexicalForm 都是相同的。 但是,识别引擎可能会使用语音规范化来返回音频输入的更用户友好或排序规则的文本表示形式。
语音规范化是使用特殊构造或符号以书面方式表达语音。 例如,规范化可以将输出文本中的口语"1 美元和 16 分"替换为"$1.16"。