SpeechRecognizer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet Zugriff auf den freigegebenen Spracherkennungsdienst, der auf dem Windows-Desktop verfügbar ist.
public ref class SpeechRecognizer : IDisposable
public class SpeechRecognizer : IDisposable
type SpeechRecognizer = class
interface IDisposable
Public Class SpeechRecognizer
Implements IDisposable
- Vererbung
-
SpeechRecognizer
- Implementiert
Beispiele
Das folgende Beispiel ist Teil einer Konsolenanwendung, die eine Spracherkennungsgrammatik lädt und asynchrone emulierte Eingaben, die zugeordneten Erkennungsergebnisse und die zugehörigen Ereignisse veranschaulicht, die von der Spracherkennung ausgelöst werden. Wenn die Windows-Spracherkennung nicht ausgeführt wird, startet diese Anwendung auch die Windows-Spracherkennung. Wenn sich die Windows-Spracherkennung im Ruhezustand befindet, EmulateRecognizeAsync gibt immer NULL zurück.
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;
}
}
}
Hinweise
Anwendungen verwenden die freigegebene Erkennung, um auf die Windows-Spracherkennung zuzugreifen. Verwenden Sie das SpeechRecognizer -Objekt, um der Windows-Sprachbenutzeroberfläche hinzuzufügen.
Diese Klasse bietet Kontrolle über verschiedene Aspekte des Spracherkennungsprozesses:
Verwenden Sie zum Verwalten von Spracherkennungsgrammatiken , LoadGrammar, UnloadGrammarLoadGrammarAsyncund GrammarsUnloadAllGrammars.
Um Informationen zu aktuellen Spracherkennungsvorgängen abzurufen, abonnieren Sie die SpeechRecognizerEreignisse ", SpeechDetectedSpeechHypothesized" , SpeechRecognitionRejectedund SpeechRecognized ".
Verwenden MaxAlternates Sie die -Eigenschaft, um die Anzahl der von der Erkennung zurückgegebenen alternativen Ergebnisse anzuzeigen oder zu ändern. Die Erkennung gibt Erkennungsergebnisse in einem RecognitionResult Objekt zurück.
Um auf den Zustand der freigegebenen Erkennung zuzugreifen oder diesen zu überwachen, verwenden Sie die AudioLevelEigenschaften , AudioPosition, EnabledAudioState, PauseRecognizerOnRecognitionRecognizerAudioPosition, und State sowie die AudioLevelUpdatedEreignisse , AudioSignalProblemOccurred, AudioStateChangedundStateChanged.
Verwenden Sie die -Methode, um Änderungen mit der RequestRecognizerUpdate Erkennung zu synchronisieren. Die freigegebene Erkennung verwendet mehr als einen Thread zum Ausführen von Aufgaben.
Verwenden Sie die Methoden undEmulateRecognizeAsync, um Eingaben für die EmulateRecognize freigegebene Erkennung zu emulieren.
Die Konfiguration der Windows-Spracherkennung wird mithilfe des Dialogfelds Spracheigenschaften im Systemsteuerung verwaltet. Diese Schnittstelle wird verwendet, um die Standardmäßige Desktop-Spracherkennungs-Engine und -Sprache, das Audioeingabegerät und das Ruhezustandsverhalten der Spracherkennung auszuwählen. Wenn die Konfiguration der Windows-Spracherkennung während der Ausführung der Anwendung geändert wird (bei instance, wenn die Spracherkennung deaktiviert oder die Eingabesprache geändert wird), wirkt sich die Änderung auf alle SpeechRecognizer Objekte aus.
Verwenden Sie die -Klasse, um eine prozessinterne Spracherkennung zu erstellen, die von der SpeechRecognitionEngine Windows-Spracherkennung unabhängig ist.
Hinweis
Rufen Sie immer auf, Dispose bevor Sie Ihren letzten Verweis auf die Spracherkennung freigeben. Andernfalls werden die verwendeten Ressourcen erst freigegeben, wenn der Garbage Collector die Methode des Erkennungsobjekts Finalize
aufruft.
Konstruktoren
SpeechRecognizer() |
Initialisiert eine neue Instanz der SpeechRecognizer-Klasse. |
Eigenschaften
AudioFormat |
Ruft das Audioformat ab, das von der Spracherkennung empfangen wird. |
AudioLevel |
Ruft den Level des Audiosignals ab, das von der Spracherkennung empfangen wird. |
AudioPosition |
Ruft die aktuelle Position im Audiostream ab, die durch das Gerät generiert wird, das die Spracherkennung mit Eingaben versorgt. |
AudioState |
Ruft den Status des von der Spracherkennung empfangenen Audiosignals ab. |
Enabled |
Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob dieses SpeechRecognizer-Objekt für die Sprachverarbeitung bereit ist. |
Grammars |
Ruft eine Auflistung der Grammar-Objekte ab, die in diese SpeechRecognizer-Instanz geladen werden. |
MaxAlternates |
Ruft die Höchstzahl alternativer Erkennungsergebnisse ab, welche die gemeinsame Erkennung für jeden Erkennungsvorgang zurückgibt, oder legt diese fest. |
PauseRecognizerOnRecognition |
Ruft einen Wert ab, bzw. legt diesen fest, der angibt, ob das gemeinsame Erkennungsmodul Erkennungsvorgänge anhält, während eine Anwendung ein SpeechRecognized-Ereignis verarbeitet. |
RecognizerAudioPosition |
Ruft die aktuelle Position der Erkennung in der Audioeingabe ab, die verarbeitet wird. |
RecognizerInfo |
Ruft Informationen über die freigegebene Spracherkennung ab. |
State |
Ruft den Zustand eines SpeechRecognizer-Objekts ab. |
Methoden
Dispose() |
Gibt das SpeechRecognizer-Objekt frei. |
Dispose(Boolean) |
Verwirft das SpeechRecognizer-Objekt und gibt Ressourcen frei, die während der Sitzung verwendet werden. |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
Emuliert die Eingabe bestimmter Wörter für die freigegebene Spracherkennung. Dabei wird Text statt Audio für die synchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen den Wörtern und den geladenen Spracherkennungsgrammatiken behandelt. |
EmulateRecognize(String) |
Emuliert die Eingabe eines Ausdrucks für die freigegebene Spracherkennung. Dabei wird Text statt Audio für die synchrone Spracherkennung verwendet. |
EmulateRecognize(String, CompareOptions) |
Emuliert die Eingabe eines Ausdrucks für die freigegebene Spracherkennung. Dabei wird Text statt Audio für die synchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen dem Ausdruck und den geladenen Spracherkennungsgrammatiken behandelt. |
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Emuliert die Eingabe bestimmter Wörter für die freigegebene Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen den Wörtern und den geladenen Spracherkennungsgrammatiken behandelt. |
EmulateRecognizeAsync(String) |
Emuliert die Eingabe eines Ausdrucks für die freigegebene Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet. |
EmulateRecognizeAsync(String, CompareOptions) |
Emuliert die Eingabe eines Ausdrucks für die freigegebene Spracherkennung. Dabei wird Text statt Audio für die asynchrone Spracherkennung verwendet und festgelegt, wie die Erkennung Unicode-Vergleich zwischen dem Ausdruck und den geladenen Spracherkennungsgrammatiken behandelt. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
LoadGrammar(Grammar) |
Lädt eine Spracherkennungsgrammatik. |
LoadGrammarAsync(Grammar) |
Lädt asynchron eine Spracherkennungsgrammatik. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
RequestRecognizerUpdate() |
Fordert an, dass die freigegebene Erkennung anhält und ihren Zustand aktualisiert. |
RequestRecognizerUpdate(Object) |
Fordert an, dass die freigegebene Erkennung anhält, um den Zustand zu aktualisieren und stellt ein Benutzertoken für das zugeordnete Ereignis bereit. |
RequestRecognizerUpdate(Object, TimeSpan) |
Fordert an, dass die freigegebene Erkennung anhält, um den Zustand zu aktualisieren und stellt ein Offset für das zugeordnete Ereignis bereit. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
UnloadAllGrammars() |
Entlädt alle Spracherkennungsgrammatiken aus dem freigegebenen Erkennungsmodul. |
UnloadGrammar(Grammar) |
Entlädt eine angegebene Spracherkennungsgrammatik aus dem freigegebenen Erkennungsmodul. |
Ereignisse
AudioLevelUpdated |
Tritt auf, wenn die freigegebene Erkennung die Ebene ihrer Audioeingabe meldet. |
AudioSignalProblemOccurred |
Tritt auf, wenn in der Erkennung ein Problem beim Audiosignal auftritt. |
AudioStateChanged |
Tritt bei Zustandsänderungen im Audio auf, das von der Erkennung empfangen wird. |
EmulateRecognizeCompleted |
Tritt auf, wenn die freigegebene Erkennung einen asynchronen Erkennungsvorgang für emulierte Eingabe abgeschlossen hat. |
LoadGrammarCompleted |
Tritt auf, wenn die Erkennung das asynchrone Laden einer Spracherkennungsgrammatik beendet. |
RecognizerUpdateReached |
Tritt auf, wenn die Erkennung anhält, um Erkennungs- und andere Vorgänge zu synchronisieren. |
SpeechDetected |
Tritt auf, wenn die Erkennung eine Eingabe erkennt, die sie als Sprache identifizieren kann. |
SpeechHypothesized |
Tritt auf, wenn die Erkennung ein Wort oder Wörter erkannt hat, die möglicherweise eine Komponente von mehreren vollständigen Ausdrücken in einer Grammatik sind. |
SpeechRecognitionRejected |
Tritt auf, wenn die Erkennung Eingaben empfängt, die mit keiner der Spracherkennungsgrammatiken übereinstimmen, die sie geladen hat. |
SpeechRecognized |
Tritt auf, wenn die Erkennung Eingaben empfängt, die mit einer ihrer Spracherkennungsgrammatiken übereinstimmen. |
StateChanged |
Tritt auf, wenn sich der Ausführzustand der Erkennungs-Engine von Windows Desktop Speech Technology ändert. |