SpeechRecognitionEngine.EmulateRecognize Método

Definição

Emula a entrada do reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala síncrono.

Sobrecargas

Name Description
EmulateRecognize(String)

Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala síncrono.

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Emula a entrada de palavras específicas para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala síncrono, e especifica como o reconhecedor lida com a comparação Unicode entre as palavras e as gramáticas de reconhecimento de fala carregadas.

EmulateRecognize(String, CompareOptions)

Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de voz síncrono, e especifica como o reconhecor lida com a comparação Unicode entre a frase e as gramáticas de reconhecimento de fala carregadas.

Observações

Estes métodos contornam a entrada áudio do sistema e fornecem texto ao reconhecedor como String objetos ou como um array de RecognizedWordUnit objetos. Isto pode ser útil quando está a testar ou a depurar uma aplicação ou gramática. Por exemplo, pode usar emulação para determinar se uma palavra está numa gramática e que semânticas são devolvidas quando a palavra é reconhecida. Use o SetInputToNull método para desativar a entrada de áudio no motor de reconhecimento de voz durante as operações de emulação.

O reconhecedor de fala levanta os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejected, e SpeechRecognized como se a operação de reconhecimento não fosse emulada. O reconhecedor ignora novas linhas e espaços em branco extra e trata a pontuação como entrada literal.

Note

O RecognitionResult objeto gerado pelo reconhecedor de fala em resposta à entrada emulada tem um valor de null para a sua Audio propriedade.

Para emular o reconhecimento assíncrono, use o EmulateRecognizeAsync método.

EmulateRecognize(String)

Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala síncrono.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText);
public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText);
member this.EmulateRecognize : string -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String) As RecognitionResult

Parâmetros

inputText
String

A entrada para a operação de reconhecimento.

Devoluções

O resultado da operação de reconhecimento, ou null se a operação não for bem-sucedida ou o reconhecor não estiver ativado.

Exceções

O reconhecedor não tem gramáticas de reconhecimento de voz carregadas.

inputText é null.

inputText é a corda vazia ("").

Exemplos

O exemplo de código abaixo faz parte de uma aplicação de consola que demonstra a entrada emulada, os resultados de reconhecimento associados e os eventos associados gerados pelo reconhecedor de voz. O exemplo gera a seguinte saída.

TestRecognize("Smith")...
 SpeechDetected event raised.
 SpeechRecognized event raised.
  Grammar = Smith; Text = Smith
...Recognition result text = Smith

TestRecognize("Jones")...
 SpeechDetected event raised.
 SpeechRecognized event raised.
  Grammar = Jones; Text = Jones
...Recognition result text = Jones

TestRecognize("Mister")...
 SpeechDetected event raised.
 SpeechHypothesized event raised.
  Grammar = Smith; Text = mister
 SpeechRecognitionRejected event raised.
  Grammar = <not available>; Text =
...No recognition result.

TestRecognize("Mister Smith")...
 SpeechDetected event raised.
 SpeechRecognized event raised.
  Grammar = Smith; Text = mister Smith
...Recognition result text = mister Smith

press any key to exit...
using System;
using System.Globalization;
using System.Speech.Recognition;

namespace Sre_EmulateRecognize
{
  class Program
  {
    static void Main(string[] args)
    {

      // Create an in-process speech recognizer for the en-US locale.
      using (SpeechRecognitionEngine recognizer =
        new SpeechRecognitionEngine(new CultureInfo("en-US")))
      {

        // Load grammars.
        recognizer.LoadGrammar(CreateNameGrammar("Smith"));
        recognizer.LoadGrammar(CreateNameGrammar("Jones"));

        // Disable audio input to the recognizer.
        recognizer.SetInputToNull();

        // Add handlers for events raised by the EmulateRecognize method.
        recognizer.SpeechDetected +=
          new EventHandler<SpeechDetectedEventArgs>(
            SpeechDetectedHandler);
        recognizer.SpeechHypothesized +=
          new EventHandler<SpeechHypothesizedEventArgs>(
            SpeechHypothesizedHandler);
        recognizer.SpeechRecognitionRejected +=
          new EventHandler<SpeechRecognitionRejectedEventArgs>(
            SpeechRecognitionRejectedHandler);
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(
            SpeechRecognizedHandler);

        // Start four synchronous emulated recognition operations.
        TestRecognize(recognizer, "Smith");
        TestRecognize(recognizer, "Jones");
        TestRecognize(recognizer, "Mister");
        TestRecognize(recognizer, "Mister Smith");
      }

      Console.WriteLine("press any key to exit...");
      Console.ReadKey(true);
    }

    // Create a simple name grammar.
    // Set the grammar name to the surname.
    private static Grammar CreateNameGrammar(string surname)
    {
      GrammarBuilder builder = new GrammarBuilder("mister", 0, 1);
      builder.Append(surname);

      Grammar nameGrammar = new Grammar(builder);
      nameGrammar.Name = surname;

      return nameGrammar;
    }

    // Send emulated input to the recognizer for synchronous recognition.
    private static void TestRecognize(
      SpeechRecognitionEngine recognizer, string input)
    {
      Console.WriteLine("TestRecognize(\"{0}\")...", input);
      RecognitionResult result =
        recognizer.EmulateRecognize(input,CompareOptions.IgnoreCase);
      if (result != null)
      {
        Console.WriteLine("...Recognition result text = {0}",
          result.Text ?? "<null>");
      }
      else
      {
        Console.WriteLine("...No recognition result.");
      }
      Console.WriteLine();
    }

    static void SpeechDetectedHandler(
      object sender, SpeechDetectedEventArgs e)
    {
      Console.WriteLine(" SpeechDetected event raised.");
    }

    // Handle events.
    static void SpeechHypothesizedHandler(
      object sender, SpeechHypothesizedEventArgs e)
    {
      Console.WriteLine(" SpeechHypothesized event raised.");
      if (e.Result != null)
      {
        Console.WriteLine("  Grammar = {0}; Text = {1}",
          e.Result.Grammar.Name ?? "<none>", e.Result.Text);
      }
      else
      {
        Console.WriteLine("  No recognition result available.");
      }
    }

    static void SpeechRecognitionRejectedHandler(
      object sender, SpeechRecognitionRejectedEventArgs e)
    {
      Console.WriteLine(" SpeechRecognitionRejected event raised.");
      if (e.Result != null)
      {
        string grammarName;
        if (e.Result.Grammar != null)
        {
          grammarName = e.Result.Grammar.Name ?? "<none>";
        }
        else
        {
          grammarName = "<not available>";
        }
        Console.WriteLine("  Grammar = {0}; Text = {1}",
          grammarName, e.Result.Text);
      }
      else
      {
        Console.WriteLine("  No recognition result available.");
      }
    }

    static void SpeechRecognizedHandler(
      object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine(" SpeechRecognized event raised.");
      if (e.Result != null)
      {
        Console.WriteLine("  Grammar = {0}; Text = {1}",
          e.Result.Grammar.Name ?? "<none>", e.Result.Text);
      }
      else
      {
        Console.WriteLine("  No recognition result available.");
      }
    }
  }
}

Observações

O reconhecedor de fala levanta os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejected, e SpeechRecognized como se a operação de reconhecimento não fosse emulada.

Os reconhecedores que vêm com Vista e Windows 7 ignoram a largura de maiúsculas minúsculas e caracteres ao aplicar regras gramaticais à frase de entrada. Para mais informações sobre este tipo de comparação, veja os CompareOptions valores OrdinalIgnoreCase de enumeração e IgnoreWidth. Os reconhecedores também ignoram novas linhas e espaços em branco extra e tratam a pontuação como entrada literal.

Ver também

Aplica-se a

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Emula a entrada de palavras específicas para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala síncrono, e especifica como o reconhecedor lida com a comparação Unicode entre as palavras e as gramáticas de reconhecimento de fala carregadas.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(cli::array <System::Speech::Recognition::RecognizedWordUnit ^> ^ wordUnits, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : System.Speech.Recognition.RecognizedWordUnit[] * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (wordUnits As RecognizedWordUnit(), compareOptions As CompareOptions) As RecognitionResult

Parâmetros

wordUnits
RecognizedWordUnit[]

Um array de unidades de palavra que contém a entrada para a operação de reconhecimento.

compareOptions
CompareOptions

Uma combinação bit a bit dos valores de enumeração que descreve o tipo de comparação a usar para a operação de reconhecimento emulado.

Devoluções

O resultado da operação de reconhecimento, ou null se a operação não for bem-sucedida ou o reconhecor não estiver ativado.

Exceções

O reconhecedor não tem gramáticas de reconhecimento de voz carregadas.

wordUnits é null.

wordUnits contém um ou mais null elementos.

compareOptions contém o IgnoreNonSpace, IgnoreSymbols, ou StringSort flag.

Observações

O reconhecedor de fala levanta os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejected, e SpeechRecognized como se a operação de reconhecimento não fosse emulada.

O recognizer utiliza compareOptions quando aplica regras gramaticais à frase de entrada. Os reconhecedores que são enviados com Vista e Windows 7 ignoram o caso se o valor OrdinalIgnoreCase ou IgnoreCase estiver presente. O recognizer ignora sempre a largura do carácter e nunca ignora o tipo Kana. O recognizer também ignora novas linhas e espaços em branco extra, tratando a pontuação como entrada literal. Para mais informações sobre largura de caracteres e tipo Kana, consulte a CompareOptions enumeração.

Ver também

Aplica-se a

EmulateRecognize(String, CompareOptions)

Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de voz síncrono, e especifica como o reconhecor lida com a comparação Unicode entre a frase e as gramáticas de reconhecimento de fala carregadas.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : string * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String, compareOptions As CompareOptions) As RecognitionResult

Parâmetros

inputText
String

A frase de entrada para a operação de reconhecimento.

compareOptions
CompareOptions

Uma combinação bit a bit dos valores de enumeração que descreve o tipo de comparação a usar para a operação de reconhecimento emulado.

Devoluções

O resultado da operação de reconhecimento, ou null se a operação não for bem-sucedida ou o reconhecor não estiver ativado.

Exceções

O reconhecedor não tem gramáticas de reconhecimento de voz carregadas.

inputText é null.

inputText é a corda vazia ("").

compareOptions contém o IgnoreNonSpace, IgnoreSymbols, ou StringSort flag.

Observações

O reconhecedor de fala levanta os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejected, e SpeechRecognized como se a operação de reconhecimento não fosse emulada.

O recognizer utiliza compareOptions quando aplica regras gramaticais à frase de entrada. Os reconhecedores que são enviados com Vista e Windows 7 ignoram o caso se o valor OrdinalIgnoreCase ou IgnoreCase estiver presente. O recognizer ignora sempre a largura do carácter e nunca ignora o tipo Kana. O recognizer também ignora novas linhas e espaços em branco extra, tratando a pontuação como entrada literal. Para mais informações sobre largura de caracteres e tipo Kana, consulte a CompareOptions enumeração.

Ver também

Aplica-se a