SpeechRecognizer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Windows デスクトップで使用できる共有音声認識サービスへのアクセスを提供します。
public ref class SpeechRecognizer : IDisposable
public class SpeechRecognizer : IDisposable
type SpeechRecognizer = class
interface IDisposable
Public Class SpeechRecognizer
Implements IDisposable
- 継承
-
SpeechRecognizer
- 実装
例
次の例は、音声認識文法を読み込み、非同期エミュレートされた入力、関連する認識結果、および音声認識エンジンによって発生する関連イベントを示すコンソール アプリケーションの一部です。 Windows 音声認識が実行されていない場合、このアプリケーションを起動すると、Windows 音声認識も開始されます。 Windows 音声認識が スリープ 状態の場合は、常に null を EmulateRecognizeAsync 返します。
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;
}
}
}
注釈
アプリケーションでは、共有認識エンジンを使用して Windows 音声認識にアクセスします。 オブジェクトを SpeechRecognizer 使用して、Windows 音声ユーザー エクスペリエンスに追加します。
このクラスは、音声認識プロセスのさまざまな側面を制御します。
音声認識文法を管理するには、および を使用LoadGrammarUnloadAllGrammarsLoadGrammarAsyncUnloadGrammarします。Grammars
現在の音声認識操作に関する情報を取得するには、 の SpeechDetected、SpeechHypothesizedSpeechRecognitionRejectedおよび SpeechRecognized イベントをSpeechRecognizerサブスクライブします。
認識エンジンから返される代替結果の数を表示または変更するには、 プロパティを MaxAlternates 使用します。 認識エンジンは、認識結果を RecognitionResult オブジェクトで返します。
共有認識エンジンの状態にアクセスまたは監視するには、、AudioPositionAudioState、、、Enabled、PauseRecognizerOnRecognitionRecognizerAudioPosition、および の各プロパティとState、、AudioSignalProblemOccurred、AudioStateChanged、および イベントをAudioLevelUpdatedStateChanged使用AudioLevelします。
認識エンジンへの変更を同期するには、 メソッドを使用します RequestRecognizerUpdate 。 共有認識エンジンは、複数のスレッドを使用してタスクを実行します。
共有認識エンジンへの入力をエミュレートするには、 メソッドと EmulateRecognizeAsync メソッドをEmulateRecognize使用します。
Windows 音声認識の構成は、コントロール パネルの [音声プロパティ] ダイアログを使用して管理されます。 このインターフェイスは、既定のデスクトップ音声認識エンジンと言語、オーディオ入力デバイス、音声認識のスリープ動作を選択するために使用されます。 アプリケーションの実行中に Windows 音声認識の構成が変更された場合 (たとえば、音声認識が無効になっている場合や入力言語が変更された場合)、変更はすべての SpeechRecognizer オブジェクトに影響します。
Windows 音声認識に依存しないインプロセス音声認識エンジンを作成するには、 クラスを使用します SpeechRecognitionEngine 。
Note
音声認識エンジンへの最後の参照を解放する前に、必ず を呼び出 Dispose してください。 それ以外の場合、ガベージ コレクターが認識エンジン オブジェクトの Finalize
メソッドを呼び出すまで、使用しているリソースは解放されません。
コンストラクター
SpeechRecognizer() |
SpeechRecognizer クラスの新しいインスタンスを初期化します。 |
プロパティ
AudioFormat |
音声認識エンジンによって受け取られるオーディオの形式を取得します。 |
AudioLevel |
音声認識エンジンによって受け取られるオーディオのレベルを取得します。 |
AudioPosition |
音声認識エンジンに入力を提供しているデバイスによって生成されているオーディオ ストリーム内の現在の位置を取得します。 |
AudioState |
音声認識エンジンによって受け取られるオーディオの状態を取得します。 |
Enabled |
この SpeechRecognizer オブジェクトが音声を処理する準備ができたかどうかを示す値を取得または設定します。 |
Grammars |
この Grammar インスタンスに読み込まれる SpeechRecognizer オブジェクトのコレクションを取得します。 |
MaxAlternates |
共有認識エンジンが各認識操作に対して返す代替認識結果の最大数を取得または設定します。 |
PauseRecognizerOnRecognition |
アプリケーションが SpeechRecognized イベントを処理している間、共有認識エンジンが認識操作を一時停止するかどうかを示す値を取得または設定します。 |
RecognizerAudioPosition |
処理中のオーディオ入力内の認識エンジンの現在の位置を取得します。 |
RecognizerInfo |
共有音声認識エンジンに関する情報を取得します。 |
State |
SpeechRecognizer オブジェクトの状態を取得します。 |
メソッド
Dispose() |
SpeechRecognizer オブジェクトを破棄します。 |
Dispose(Boolean) |
SpeechRecognizer オブジェクトを破棄し、セッション中に使用するリソースを解放します。 |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
同期音声認識にオーディオではなくテキストを使用して、共有された音声認識エンジンに対する特定の語の入力をエミュレートし、語と読み込まれている音声認識文法との間で認識エンジンが Unicode 比較をどのように行うかを指定します。 |
EmulateRecognize(String) |
同期音声認識に音声ではなくテキストを使用して、共有音声認識エンジンに対する語句の入力をエミュレートします。 |
EmulateRecognize(String, CompareOptions) |
同期音声認識にオーディオではなくテキストを使用して、共有された音声認識エンジンに対するフレーズの入力をエミュレートし、フレーズと読み込まれている音声認識文法との間で認識エンジンが Unicode 比較をどのように行うかを指定します。 |
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
非同期音声認識にオーディオではなくテキストを使用して、共有された音声認識エンジンに対する特定の語の入力をエミュレートし、語と読み込まれている音声認識文法との間で認識エンジンが Unicode 比較をどのように行うかを指定します。 |
EmulateRecognizeAsync(String) |
非同期音声認識に音声ではなくテキストを使用して、共有音声認識エンジンに対する語句の入力をエミュレートします。 |
EmulateRecognizeAsync(String, CompareOptions) |
非同期音声認識にオーディオではなくテキストを使用して、共有された音声認識エンジンに対するフレーズの入力をエミュレートし、フレーズと読み込まれている音声認識文法との間で認識エンジンが Unicode 比較をどのように行うかを指定します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
LoadGrammar(Grammar) |
音声認識文法を読み込みます。 |
LoadGrammarAsync(Grammar) |
非同期的に音声認識文法を読み込みます。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
RequestRecognizerUpdate() |
共有認識エンジンがその状態を更新および停止するように要求します。 |
RequestRecognizerUpdate(Object) |
共有認識エンジンがその状態を停止および更新し、関連イベントのユーザー トークンを提供するように要求します。 |
RequestRecognizerUpdate(Object, TimeSpan) |
共有認識エンジンがその状態を停止および更新し、関連イベントのオフセットとユーザー トークンを提供するように要求します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
UnloadAllGrammars() |
共有認識エンジンから、すべての音声認識文法をアンロードします。 |
UnloadGrammar(Grammar) |
共有認識エンジンから、指定された音声認識文法をアンロードします。 |
イベント
AudioLevelUpdated |
共有認識機能がオーディオ入力のレベルを報告すると発生します。 |
AudioSignalProblemOccurred |
認識機能がオーディオ信号で問題を検出したときに発生します。 |
AudioStateChanged |
オーディオの状態変化が認識機能によって受け取られると発生します。 |
EmulateRecognizeCompleted |
共有認識機能がエミュレートされた入力の非同期認識操作を終了すると発生します。 |
LoadGrammarCompleted |
認識機能が音声認識文法の非同期読み込みを終了すると発生します。 |
RecognizerUpdateReached |
認識機能が認識と他の操作を同期するために一時停止すると発生します。 |
SpeechDetected |
認識機能が音声として識別できる入力を検出すると発生します。 |
SpeechHypothesized |
認識機能が文法の複数の完全な語句のコンポーネントである可能性がある単語を認識した場合に発生します。 |
SpeechRecognitionRejected |
認識機能が読み込んだ音声認識文法のいずれにも一致しない入力を受け取ると発生します。 |
SpeechRecognized |
認識機能が読み込んだ音声認識文法のいずれかに一致する入力を受け取ると発生します。 |
StateChanged |
Windows Desktop Speech テクノロジ音声認識エンジンの実行状態が変更されると発生します。 |
適用対象
こちらもご覧ください
.NET