Partager via


Note

Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.

DisplayAttributes Enumeration

Lists the options that the SpeechRecognitionEngine object can use to specify white space for the display of a word or punctuation mark.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  Microsoft.Speech.Recognition
Assembly:  Microsoft.Speech (in Microsoft.Speech.dll)

Syntax

'Declaration
<FlagsAttribute> _
Public Enumeration DisplayAttributes
'Usage
Dim instance As DisplayAttributes
[FlagsAttribute]
public enum DisplayAttributes

Members

Member name Description
None The item does not specify how white space is handled.
ZeroTrailingSpaces The item has no spaces following it.
OneTrailingSpace The item has one space following it.
TwoTrailingSpaces The item has two spaces following it.
ConsumeLeadingSpaces The item has no spaces preceding it.

Remarks

The speech recognition engine returns recognized phrases as collections of RecognizedWordUnit or ReplacementText objects. Each object corresponds to a single word or punctuation mark. The DisplayAttributes property of a RecognizedWordUnit or ReplacementText object uses a member of the DisplayAttributes enumeration to describe how print spacing is handled around a given word or punctuation mark.

Two or more members of the DisplayAttributes enumeration may be combined by a bit-wise OR to specify how a particular word should be displayed.

Note

The display formatting that the speech recognizer uses is language specific.

For example, suppose the input phrase to a recognition engine is "Hello comma he said period".

Then the recognition engine will return a RecognizedPhrase containing five RecognizedWordUnit objects containing the following strings and values of DisplayAttributes.

"Hello"

OneTrailingSpace

","

OneTrailingSpace | ConsumeLeadingSpaces

"he"

OneTrailingSpace

"said"

OneTrailingSpace

"."

OneTrailingSpace | ConsumeLeadingSpaces

The text returned for this recognized phrase would then be printed as: "Hello, he said."

Examples

The following example shows a utility method that returns a formatted phrase from a collection of RecognizedWordUnit objects returned by a recognition engine.

// Use the DisplayAttributes property to format speech as text. 

static string GetDisplayText(List<RecognizedWordUnit> words)
{
  StringBuilder sb = new StringBuilder();

  // Concatenate the word units together. Use the DisplayAttributes
  // property of each word unit to add or remove white space around
  // the word unit.
  foreach (RecognizedWordUnit word in words)
  {
    if ((word.DisplayAttributes
      & DisplayAttributes.ConsumeLeadingSpaces) != 0))
    {
      sb = new StringBuilder(sb.ToString().TrimEnd());
    }

    sb.Append(word.Text);

    if ((word.DisplayAttributes
      & DisplayAttributes.OneTrailingSpace) != 0)
    {
      sb.Append(" ");
    }
    else if ((word.DisplayAttributes
      & DisplayAttributes.TwoTrailingSpaces) != 0)
    {
      sb.Append("  ");
    }
  }

  return sb.ToString();
} 

See Also

Reference

Microsoft.Speech.Recognition Namespace

RecognizedPhrase

RecognitionResult

RecognizedWordUnit

ReplacementText

RecognizedWordUnit.DisplayAttributes

ReplacementText.DisplayAttributes