SpeechRecognitionEngine.EmulateRecognizeAsync Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Emula a entrada do reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala assíncrono.
Sobrecargas
| Name | Description |
|---|---|
| EmulateRecognizeAsync(String) |
Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala assíncrono. |
| EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Emula a entrada de palavras específicas para o reconhecedor de voz, usando um array de RecognizedWordUnit objetos em vez de áudio para reconhecimento de fala assíncrono, e especifica como o reconhecor lida com a comparação Unicode entre as palavras e as gramáticas de reconhecimento de fala carregadas. |
| EmulateRecognizeAsync(String, CompareOptions) |
Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala assí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. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, levanta o EmulateRecognizeCompleted evento. 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 síncrono, use o EmulateRecognize método.
EmulateRecognizeAsync(String)
Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala assíncrono.
public:
void EmulateRecognizeAsync(System::String ^ inputText);
public void EmulateRecognizeAsync(string inputText);
member this.EmulateRecognizeAsync : string -> unit
Public Sub EmulateRecognizeAsync (inputText As String)
Parâmetros
- inputText
- String
A entrada para a operação de reconhecimento.
Exceções
O recognizer não tem gramáticas de reconhecimento de fala carregadas, ou o recognizer tem uma operação de reconhecimento assíncrono que ainda não está concluída.
inputText é null.
inputText é a corda vazia ("").
Exemplos
O exemplo de código abaixo faz parte de uma aplicação de consola que demonstra entrada emulada assíncrona, os resultados de reconhecimento associados e os eventos associados gerados pelo reconhecedor de voz. O exemplo gera a seguinte saída.
TestRecognizeAsync("Smith")...
SpeechDetected event raised.
SpeechRecognized event raised.
Grammar = Smith; Text = Smith
EmulateRecognizeCompleted event raised.
Grammar = Smith; Text = Smith
Done.
TestRecognizeAsync("Jones")...
SpeechDetected event raised.
SpeechRecognized event raised.
Grammar = Jones; Text = Jones
EmulateRecognizeCompleted event raised.
Grammar = Jones; Text = Jones
Done.
TestRecognizeAsync("Mister")...
SpeechDetected event raised.
SpeechHypothesized event raised.
Grammar = Smith; Text = mister
SpeechRecognitionRejected event raised.
Grammar = <not available>; Text =
EmulateRecognizeCompleted event raised.
No recognition result available.
Done.
TestRecognizeAsync("Mister Smith")...
SpeechDetected event raised.
SpeechRecognized event raised.
Grammar = Smith; Text = mister Smith
EmulateRecognizeCompleted event raised.
Grammar = Smith; Text = mister Smith
Done.
press any key to exit...
using System;
using System.Globalization;
using System.Speech.Recognition;
using System.Threading;
namespace SreEmulateRecognizeAsync
{
class Program
{
// Indicate when an asynchronous operation is finished.
static bool completed;
static void Main(string[] args)
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
// Load grammars.
recognizer.LoadGrammar(CreateNameGrammar("Smith"));
recognizer.LoadGrammar(CreateNameGrammar("Jones"));
// Configure the audio input.
recognizer.SetInputToNull();
// Add event handlers for the events raised by the
// EmulateRecognizeAsync 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);
recognizer.EmulateRecognizeCompleted +=
new EventHandler<EmulateRecognizeCompletedEventArgs>(
EmulateRecognizeCompletedHandler);
// Start four asynchronous emulated recognition operations.
TestRecognizeAsync(recognizer, "Smith");
TestRecognizeAsync(recognizer, "Jones");
TestRecognizeAsync(recognizer, "Mister");
TestRecognizeAsync(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 asynchronous
// recognition.
private static void TestRecognizeAsync(
SpeechRecognitionEngine recognizer, string input)
{
completed = false;
Console.WriteLine("TestRecognizeAsync(\"{0}\")...", input);
recognizer.EmulateRecognizeAsync(input);
// Wait for the operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
Console.WriteLine(" Done.");
Console.WriteLine();
}
static void SpeechDetectedHandler(
object sender, SpeechDetectedEventArgs e)
{
Console.WriteLine(" SpeechDetected event raised.");
}
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.");
}
}
// Handle events.
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.");
}
}
static void EmulateRecognizeCompletedHandler(
object sender, EmulateRecognizeCompletedEventArgs e)
{
Console.WriteLine(" EmulateRecognizeCompleted event raised.");
if (e.Error != null)
{
Console.WriteLine(" {0} exception encountered: {1}:",
e.Error.GetType().Name, e.Error.Message);
}
else if (e.Cancelled)
{
Console.WriteLine(" Operation cancelled.");
}
else 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.");
}
completed = true;
}
}
}
Observações
O reconhecedor de fala levanta os SpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejected, e SpeechRecognized como se a operação de reconhecimento não fosse emulada. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, levanta o EmulateRecognizeCompleted evento.
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.
Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por EmulateRecognize(String).
Ver também
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted
Aplica-se a
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)
Emula a entrada de palavras específicas para o reconhecedor de voz, usando um array de RecognizedWordUnit objetos em vez de áudio para reconhecimento de fala assíncrono, e especifica como o reconhecor lida com a comparação Unicode entre as palavras e as gramáticas de reconhecimento de fala carregadas.
public:
void EmulateRecognizeAsync(cli::array <System::Speech::Recognition::RecognizedWordUnit ^> ^ wordUnits, System::Globalization::CompareOptions compareOptions);
public void EmulateRecognizeAsync(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognizeAsync : System.Speech.Recognition.RecognizedWordUnit[] * System.Globalization.CompareOptions -> unit
Public Sub EmulateRecognizeAsync (wordUnits As RecognizedWordUnit(), compareOptions As CompareOptions)
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.
Exceções
O recognizer não tem gramáticas de reconhecimento de fala carregadas, ou o recognizer tem uma operação de reconhecimento assíncrono que ainda não está concluída.
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. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, levanta o EmulateRecognizeCompleted evento.
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. Os reconhecedores ignoram sempre a largura do carácter e nunca ignoram o tipo Kana. Os reconhecedores também ignoram novas linhas e espaços em branco extra e tratam a pontuação como entrada literal. Para mais informações sobre largura de caracteres e tipo Kana, consulte a CompareOptions enumeração.
Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por EmulateRecognize(RecognizedWordUnit[], CompareOptions).
Ver também
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted
Aplica-se a
EmulateRecognizeAsync(String, CompareOptions)
Emula a entrada de uma frase para o reconhecedor de voz, usando texto em vez de áudio para reconhecimento de fala assí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:
void EmulateRecognizeAsync(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public void EmulateRecognizeAsync(string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognizeAsync : string * System.Globalization.CompareOptions -> unit
Public Sub EmulateRecognizeAsync (inputText As String, compareOptions As CompareOptions)
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.
Exceções
O recognizer não tem gramáticas de reconhecimento de fala carregadas, ou o recognizer tem uma operação de reconhecimento assíncrono que ainda não está concluída.
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. Quando o reconhecedor conclui a operação de reconhecimento assíncrono, levanta o EmulateRecognizeCompleted evento.
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. Os reconhecedores ignoram sempre a largura do carácter e nunca ignoram o tipo Kana. Os reconhecedores também ignoram novas linhas e espaços em branco extra e tratam a pontuação como entrada literal. Para mais informações sobre largura de caracteres e tipo Kana, consulte a CompareOptions enumeração.
Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por EmulateRecognize(String, CompareOptions).
Ver também
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted