SpeechRecognizer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Permet d'accéder au service de reconnaissance vocale partagé disponible sur le Bureau Windows.
public ref class SpeechRecognizer : IDisposable
public class SpeechRecognizer : IDisposable
type SpeechRecognizer = class
interface IDisposable
Public Class SpeechRecognizer
Implements IDisposable
- Héritage
-
SpeechRecognizer
- Implémente
Exemples
L’exemple suivant fait partie d’une application console qui charge une grammaire de reconnaissance vocale et illustre l’entrée émulée asynchrone, les résultats de la reconnaissance associée et les événements associés déclenchés par le module de reconnaissance vocale. Si la reconnaissance vocale Windows n’est pas en cours d’exécution, le démarrage de cette application démarre également la reconnaissance vocale Windows. Si la reconnaissance vocale Windows est à l’état en veille , EmulateRecognizeAsync retourne toujours la valeur Null.
using System;
using System.Speech.Recognition;
using System.Threading;
namespace SharedRecognizer
{
class Program
{
// Indicate whether the asynchronous emulate recognition
// operation has completed.
static bool completed;
static void Main(string[] args)
{
// Initialize an instance of the shared recognizer.
using (SpeechRecognizer recognizer = new SpeechRecognizer())
{
// Create and load a sample grammar.
Grammar testGrammar =
new Grammar(new GrammarBuilder("testing testing"));
testGrammar.Name = "Test Grammar";
recognizer.LoadGrammar(testGrammar);
// Attach event handlers for recognition events.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(
SpeechRecognizedHandler);
recognizer.EmulateRecognizeCompleted +=
new EventHandler<EmulateRecognizeCompletedEventArgs>(
EmulateRecognizeCompletedHandler);
completed = false;
// Start asynchronous emulated recognition.
// This matches the grammar and generates a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing testing");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
completed = false;
// Start asynchronous emulated recognition.
// This does not match the grammar or generate a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing one two three");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the SpeechRecognized event.
static void SpeechRecognizedHandler(
object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null)
{
Console.WriteLine("Recognition result = {0}",
e.Result.Text ?? "<no text>");
}
else
{
Console.WriteLine("No recognition result");
}
}
// Handle the SpeechRecognizeCompleted event.
static void EmulateRecognizeCompletedHandler(
object sender, EmulateRecognizeCompletedEventArgs e)
{
if (e.Result == null)
{
Console.WriteLine("No result generated.");
}
// Indicate the asynchronous operation is complete.
completed = true;
}
}
}
Remarques
Les applications utilisent le module de reconnaissance partagée pour accéder à la reconnaissance vocale Windows. Utilisez l’objet SpeechRecognizer à ajouter à l’expérience utilisateur de Windows Speech.
Cette classe permet de contrôler différents aspects du processus de reconnaissance vocale :
Pour gérer les grammaires de reconnaissance vocale, utilisez , LoadGrammarLoadGrammarAsync, UnloadGrammar, UnloadAllGrammarset Grammars.
Pour obtenir des informations sur les SpeechRecognizerSpeechDetectedopérations de reconnaissance vocale actuelles, abonnez-vous aux événements , SpeechHypothesized, SpeechRecognitionRejectedet SpeechRecognized .
Pour afficher ou modifier le nombre de résultats alternatifs retournés par le module de reconnaissance, utilisez la MaxAlternates propriété . Le module de reconnaissance retourne les résultats de la reconnaissance dans un RecognitionResult objet .
Pour accéder à l’état du module de reconnaissance partagé ou le surveiller, utilisez les AudioLevelpropriétés AudioLevelUpdated, AudioStateAudioPosition, Enabled, PauseRecognizerOnRecognition, , RecognizerAudioPosition, et State les événements , AudioSignalProblemOccurred, AudioStateChangedet StateChanged .
Pour synchroniser les modifications apportées au module de reconnaissance, utilisez la RequestRecognizerUpdate méthode . Le module de reconnaissance partagé utilise plusieurs threads pour effectuer des tâches.
Pour émuler l’entrée dans le module de reconnaissance partagé, utilisez les EmulateRecognize méthodes et EmulateRecognizeAsync .
La configuration de la reconnaissance vocale Windows est gérée par l’utilisation de la boîte de dialogue Propriétés vocales dans le Panneau de configuration. Cette interface est utilisée pour sélectionner le moteur et la langue de reconnaissance vocale par défaut du bureau, le périphérique d’entrée audio et le comportement de veille de la reconnaissance vocale. Si la configuration de la reconnaissance vocale Windows est modifiée pendant l’exécution de l’application (par instance, si la reconnaissance vocale est désactivée ou si la langue d’entrée est modifiée), la modification affecte tous les SpeechRecognizer objets.
Pour créer un module de reconnaissance vocale in-process indépendant de la reconnaissance vocale Windows, utilisez la SpeechRecognitionEngine classe .
Notes
Appelez Dispose toujours avant de libérer votre dernière référence au module de reconnaissance vocale. Sinon, les ressources qu’il utilise ne seront pas libérées tant que le récupérateur de mémoire n’appelle pas la méthode de l’objet de Finalize
reconnaissance.
Constructeurs
SpeechRecognizer() |
Initialise une nouvelle instance de la classe SpeechRecognizer. |
Propriétés
AudioFormat |
Obtient le format de l'audio reçu par le module de reconnaissance vocale. |
AudioLevel |
Obtient le niveau de l'audio reçu par le module de reconnaissance vocale. |
AudioPosition |
Obtient la position actuelle dans le flux audio généré par le périphérique qui gère les entrées pour le module de reconnaissance vocale. |
AudioState |
Obtient l'état de l'audio reçu par le module de reconnaissance vocale. |
Enabled |
Obtient ou définit une valeur qui indique si cet objet de SpeechRecognizer est prêt à procéder à la reconnaissance vocale. |
Grammars |
Obtient une collection des objets Grammar chargés dans cette instance SpeechRecognizer. |
MaxAlternates |
Obtient ou définit le nombre maximal de résultats de reconnaissance retourné pour chaque opération de reconnaissance par le module de reconnaissance partagé. |
PauseRecognizerOnRecognition |
Obtient ou définit une valeur qui indique si le module de reconnaissance partagé suspend des opérations de reconnaissance pendant qu'une application gère un événement de SpeechRecognized. |
RecognizerAudioPosition |
Obtient la position actuelle du module de reconnaissance dans l'entrée audio qu'il gère. |
RecognizerInfo |
Obtient les informations à propos du module de reconnaissance vocale partagé. |
State |
Obtient l'état d'un objet SpeechRecognizer. |
Méthodes
Dispose() |
Supprime l'objet SpeechRecognizer. |
Dispose(Boolean) |
Supprime l’objet SpeechRecognizer et libère les ressources utilisées pendant la session. |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
Émule l'entrée de mots spécifiques dans le module de reconnaissance vocale partagé, en utilisant le texte au lieu de l'audio pour la reconnaissance vocale synchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre les mots et les grammaires de la reconnaissance vocale chargées. |
EmulateRecognize(String) |
Émule l'entrée d'une expression dans le module de reconnaissance vocale partagé, en utilisant le texte au lieu de l'audio pour la reconnaissance vocale synchrone. |
EmulateRecognize(String, CompareOptions) |
Émule l'entrée d'une expression dans le module de reconnaissance vocale partagé, en utilisant le texte au lieu de l'audio pour la reconnaissance vocale synchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre l'expression et les grammaires de la reconnaissance vocale chargées. |
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Émule l'entrée de mots spécifiques dans le module de reconnaissance vocale partagé, en utilisant le texte au lieu de l'audio pour la reconnaissance vocale asynchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre les mots et les grammaires de la reconnaissance vocale chargées. |
EmulateRecognizeAsync(String) |
Émule l'entrée d'une expression dans le module de reconnaissance vocale partagé, en utilisant le texte au lieu de l'audio pour la reconnaissance vocale asynchrone. |
EmulateRecognizeAsync(String, CompareOptions) |
Émule l'entrée d'une expression dans le module de reconnaissance vocale partagé, en utilisant le texte au lieu de l'audio pour la reconnaissance vocale asynchrone, et spécifie comment le module de reconnaissance gère la comparaison Unicode entre l'expression et les grammaires de la reconnaissance vocale chargées. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
LoadGrammar(Grammar) |
Charge une grammaire de reconnaissance vocale. |
LoadGrammarAsync(Grammar) |
Charge une syntaxe de reconnaissance vocale de façon asynchrone. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
RequestRecognizerUpdate() |
Demande que le module de reconnaissance partagé soit suspendu et mette à jour son état. |
RequestRecognizerUpdate(Object) |
Demande que le module de reconnaissance partagé soit suspendu, mette à jour son état et fournisse un jeton utilisateur pour l'événement associé. |
RequestRecognizerUpdate(Object, TimeSpan) |
Demande que le module de reconnaissance partagé soit suspendu, mette à jour son état et fournisse un offset et un jeton utilisateur pour l'événement associé. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
UnloadAllGrammars() |
Décharge toutes les Grammaires de la Reconnaissance vocale du module de reconnaissance partagé. |
UnloadGrammar(Grammar) |
Décharge une Grammaire de la Reconnaissance vocale à partir du module de reconnaissance partagé. |
Événements
AudioLevelUpdated |
Se produit lorsque le module de reconnaissance partagé indique le niveau de son entrée audio. |
AudioSignalProblemOccurred |
Se produit lorsque le module de reconnaissance rencontre un problème dans le signal audio. |
AudioStateChanged |
Se produit lors du changement de l'état de l'audio reçu par le module de reconnaissance. |
EmulateRecognizeCompleted |
Se produit lorsque le module de reconnaissance partagé finalise un module de reconnaissance asynchrone pour l'entrée émulée. |
LoadGrammarCompleted |
Se produit lorsque le module de reconnaissance termine le chargement asynchrone d'une syntaxe de reconnaissance vocale. |
RecognizerUpdateReached |
Se produit lorsque le module de reconnaissance s'interrompt pour synchroniser la reconnaissance et d'autres opérations. |
SpeechDetected |
Se produit lorsque le module de reconnaissance détecte l'entrée qu'il peut identifier comme vocale. |
SpeechHypothesized |
Se produit lorsque le module de reconnaissance a identifié un mot ou des mots qui peuvent être un composant de plusieurs expressions complètes dans une syntaxe. |
SpeechRecognitionRejected |
Se produit lorsque le module de reconnaissance accepte les entrées qui ne correspondent pas à l'une des syntaxes de reconnaissance vocale qu'il a chargé. |
SpeechRecognized |
Se produit lorsque le module de reconnaissance reçoit l'entrée qui correspond à l'une de ses syntaxes de reconnaissance vocale. |
StateChanged |
Se produit lorsque l'état d'exécution du moteur de reconnaissance de technologie vocale du Bureau Windows change. |