SAPI ISpeechRecognizer(要約)

ISpeechRecognizerオートメーションインターフェイスは音声認識エンジンを表します。認識装置は、SRエンジンです。エンジンは、一般的に2つの主な特徴によって分類される:最初は言語によるものです。言語は、製造業者によって提供されており、変更されなくてもよいです。同時にコンピュータは、エンジンの多くの種類がインストールされている可能性があります。しかし、エンジンの使用が制限され、そして同定のタイプに依存します。第2の主な特徴は、認識のタイプです。すなわち、排他的または共有モードのようなエンジンのインスタンスかどうか、です。

SR音声コントロールパネルで、デフォルトのプロパティを選択し、このアプローチは、利便性をユーザーに提供し、デフォルトのエンジンは他のタイプに使用される特定の状況です。多くの場合、ユーザの要求は、単一のエンジンが満たすべき。ただし、アプリケーションはデフォルトのエンジンに限定されることはありません。必要な場合、あなたは他のエンジンを使用することができます。対照的に、エンジンは、例の活動の一例であり、少なくとも1つの認識コンテキストで使用されます。

複数のインスタンスを持つことができるエンジンを使用することができます。各アプリケーションは、独自のインスタンス識別子が属する有していてもよく、多くの状況であります。識別された各コンテキストインスタンスは、独自のエンジンを持つことができます。アプリケーションは、排他的な認識がすべてのインスタンスを持っている必要があります使用しています。より多くの細かさに識別する必要がある場合、むしろ、複数の認識器を使用するよりも、異なるコンテキストを特定する必要があります。

次のコードは、暗黙的に共有認識を識別する共有コンテキストおよびタイプを宣言する

公共WITHEVENTS RCとしてSpSharedRecoContext

RC =新SpSharedRecoContextを設定します。

しかし、いくつかのケースでは、我々は標準識別子の宣言モードに応じて、この目的を達成するためには、免責認識コンテキスト識別子の前に宣言する必要があります

SpSharedRecognizerとしてSharedRecognizer薄暗いです

設定しSharedRecognizer =のCreateObject( "SAPI.SpSharedRecognizer")

認識のタイプ:

一个识别引擎可能是以下两种类型的其中之一:独占型和共享型。第一、独占型,就是在一个应用程序中的同一个过程。一个独占型识别器限制只有一个应用程序来进行访问。例如:同一个系统麦克风可能被一个独占型识别器占用,禁止别的应用程序来使用。当其他的应用程序可以运行它们自己的独占识别器的实例的时候,没有资源是相同的。例如,当从一个Wav文件进行识别时,一个独占型引擎可以被使用。实际上,一个共享型引擎将不会使用Wav文件作为输入。

第二种类型识别器是共享型识别器。它在运行时作为一个应用程序的分离进程。因此,其他应用程序可以在同一时间使用引擎的资源。例如,同一个系统麦克风可以被所有的开放应用程序使用。反之,从引擎得来的识别结果可以被任何应用程序所使用。实际上,共享型引擎工作地范围非常广泛,竟然可以在一个识别结果不适合应用程序的时候通知它们。

对于共享引擎,当一个识别上下文产生时就会产生一个识别器实例。在这种情况下,识别器的类型将会和识别上下文的类型一致。这就是,一个共享识别上下文将会产生和活动引擎类型一样的共享识别器。然而,所有使用共享引擎的应用程序必须产生这种引擎类型的实例。一个应用程序可以不使用一个共享引擎,并且第二个应用程序使用另一种引擎类型。

独占引擎产生的方式是相似的,当一个独占型的识别上下文产生时,一个独占引擎实例被产生。每一个应用程序可能只有一个独占引擎实例在这个时候处于活动状态。然而,尽管一个应用程序可能每次只有一个独占引擎实例,甚至在同一时间有不同的应用程序开放,可能每一个都有不同的活动引擎。比如,一个应用程序可能从一个独占的英语引擎中得到识别,另一个应用程序可能从一个独占的汉语引擎中得到识别。

不管怎样,识别器和识别上下文必须是同一类型的。如果一个识别器作为一个共享资源产生,与识别器相关联的识别上下文也必须是共享的。对于独占型的识别器和识别上下文也是如此。

ISpeechRecognizer自动化接口包括以下元素:

AllowAudioInputFormatChangesOnNextSet属性:表示识别器是否可以在随后的音频流中改变音频输入格式。当这个属性被设置为True时,识别器的输入流格式被重新设置,目的是符合SR引擎首先的格式。当这个属性是False时,不需要去设置音频流的格式。这个属性的默认值是True。

AudioInputStream属性:得到或设置识别器音频输入流。使用AudioInputStream可以使一个应用程序使用一个文件流或者其他的流对象作为输入,而不是使用音频设备。

AudioInputStream只被独占识别器使用,企图在一个共享环境中使用它将会得到一个SPERR_NOT_SUPPORTED_FOR_SHARED_RECOGNIZER错误

IsShared属性:表示一个识别引擎是共享型还是独占型的。

Profile属性:指定SR引擎的当前识别属性。

一个识别属性描述一个单独用户和一个在系统上的训练对话。一个用户可以通过控制面板中的的语音属性可以手工地产生、删除、设置当前的属性。

当引擎在活动状态时,不能设置一个属性。如果在引擎活动状态下进行设置,将会得到意外的结果,这个结果依赖于SR引擎何时、如何访问属性信息。

一个最新安装的属性不是永久不变的,但是其的有效性只存在识别器的生命周期之内。

Recognizer属性:指定关于活动识别器的特性。

识别器和与其相关的属性被储存在语音配置数据库中作为一系列的令牌。每一个令牌代表一个属性,识别器可以回收有能力去访问识别器属性的对象(SpObjectToken),附加的或者更多的关于这些令牌的细节信息,这些表征在和SpObjectToken相关的方法中是可用的。

状態プロパティ:認識エンジンの現在の状態を返します。

ステータス属性:状態を説明したオブジェクト識別子を返します。

この方法の特徴静的SRエンジン(例えば、など、音声をサポートする)情報を提供し、それはまた、動特性を提供する(例えば、エンジンが現在のストリームの位置を特定しており、ストリームがアクティブである場合、それはエンジンに送られる)情報。

方法:

CreateRcoContext方法:レコグナイザコンテキストオブジェクトから識別子を生成します。

DisplayUI:指定されたUIを表示するために開始します。

SRおよびTTSエンジンは、音声環境の異なる側面に貢献するUIの多様性を、表示し、実行することができます。

ユーザートレーニング。

マイクトレーニングウィザード。

単語を追加または削除します。

エンジン制御を設定します。

音声属性内のコントロールパネルで設定することができ、これらのUIの多くは。また、エンジンは、状況を改善するために、特別な操作UIを必要とする能力を持っています。効果が不十分な場合には特定された場合、SRエンジンは、より多くのトレーニングユーザーが必要な場合があります。エンジンは、UIをサポートするために必要とされてはならない、とすべてのエンジンは、同じUIを持つことになりません。ISpeechRecognizer.ISUISupportedを呼び出すことができますアプリケーションは、目的は、特別なUIエンジンがそれをサポートして呼び出す前に判断することです。エンジンによってサポートされていないコールは、ランタイムエラーが発生します。UIが利用可能な場合は、このショーを呼び出すためにISpecchRecognizer.DisplayUIを使用しています。

EmulateRecognitionの方法:テキストベースのリソースからではなく、リソースの種類から音声認識をシミュレートします。

EmuleRecognition、音声またはテキスト入力からリソースを受信するためのアプリケーションを使用してください。すべてのイベントは、完全に戻ってアプリケーションに通常認識と同じになります。句の結果が同じ結果の音声プロパティ設定を持つことになります。テキストのみのアクティビティがルールで分析したときの認識イベントが生成されます(ディクテーションがアクティブなルールならば、任意のテキストが分析されます)。

この識別は、オーディオデータ、例えば干渉仮説を使用しようとしないので、AudioLevelが発生することができません。

注意:

言語およびパラメータTextElementsのElementsDisplayAttributesを収容しながら、音声認識アプリケーションを検出するために使用されるこの方法(アナログ音声)を用いて、単語にスペースで区切られていません。

GetAudioInputsの方法:使用可能なオーディオ入力デバイスのリターンを選択します。

オーディオ入力デバイス(例えば、サウンドカード)は、音声データベース構成におけるトークンの系列として格納されます。各トークンは、音声入力装置に対応します。すべての利用可能なオーディオトークンが回復GetAudioInputsは、リストISpeechObjectTokensオブジェクトを返します。

さらに洗練された、とだけ指定RequiredAttributesに完全に準拠していてもよいRequiredAttributesとOptionAttributesプロパティ検索を使用して、トークンの検索は、プロパティが返されるトークンを検索します。コンプライアンスRequiredAttributesキー、デバイスのOptionalAttributesリストはOptionalAttributesのためにこれらのトークンを満たしています。何の検索属性が提供されていない場合は、すべてのトークンが返されます。何のオーディオデバイスが基準を満たしていないがある場合は、GetAudioInputsは、空の選択肢を返します。それはISpeechObjectTokensがISpeechObjectTokensを設定し、ある::プロパティが0でカウントします。

クラスのgetFormatメソッド:現在の入力のオーディオ形式を返します。

フォーマットを鳴らしたり、プロセスの異なる点で異なる時間に異なるものになります。例えば、入力は、サウンドデバイス(サウンドカード)、オーディオフォーマットに到達したときには、異なるSRエンジン音フォーマットに到達することができます。テストされるべきステップを指定し、その位置のためのオーディオ形式を返すのgetFormat。

GetProfiles方法:利用可能な音声属性を選択するようにユーザーを返します。

属性は、音声データベース構成におけるトークンの一連の属性に対応するトークンとして記憶されます。GetProfilesリストISpeechObjectTokensオブジェクトを返し、使用可能なすべての属性のトークンを回復します。

さらに洗練された、とだけ指定RequiredAttributesに完全に準拠していてもよいRequiredAttributesとOptionAttributesプロパティ検索を使用して、トークンの検索は、プロパティが返されるトークンを検索します。コンプライアンスRequiredAttributesキー、デバイスのOptionalAttributesリストはOptionalAttributesのためにこれらのトークンを満たしています。何の検索属性が提供されていない場合は、すべてのトークンが返されます。何のオーディオデバイスが基準を満たしていないがある場合は、GetAudioInputsは、空の選択肢を返します。それはISpeechObjectTokensがISpeechObjectTokensを設定し、ある::プロパティが0でカウントします。

GetPropertyNumber方法:数値で指定したキー名を返します。SR SRエンジンは、プロセス仕様テーブルを設定するために保持されています。これらのコントローラは、名前と平行に配置されているコントローラに対応した値に応じて、属性。

GetRecognizers方法:音声設定データベース内の音声認識の選択したオブジェクトを返します。

認識は、トークンの一連として配置音声データベースに格納されています。各トークンは、すべての利用可能なトークン識別子を回収GetRecognizers(またとしてSRエンジンと呼ぶ)の識別子に対応し、ISpeechObjectTokensオブジェクトを返します。

さらに洗練された、とだけ指定RequiredAttributesに完全に準拠していてもよいRequiredAttributesとOptionAttributesプロパティ検索を使用して、トークンの検索は、プロパティが返されるトークンを検索します。コンプライアンスRequiredAttributesキー、デバイスのOptionalAttributesリストはOptionalAttributesのためにこれらのトークンを満たしています。何の検索属性が提供されていない場合は、すべてのトークンが返されます。何のオーディオデバイスが基準を満たしていないがある場合は、GetAudioInputsは、空の選択肢を返します。それはISpeechObjectTokensがISpeechObjectTokensを設定し、ある::プロパティが0でカウントします。

IsUISupported:指定されたUIをサポートするかどうかを決定します。

SR和TTS引擎能够显示和运行各种各样的UI,这些有助于语音环境的不同方面。例如用户训练、麦克风训练向导、添加或删除单词、设置引擎控制等。这些UI里面的很多可以通过控制面板里面的语音属性进行设置。另外,引擎有能力去要求运行特殊的UI去改善状况。例如,如果识别的效果如果很差,SR引擎可以要求更多的用户训练。

引擎不被要求必须支持UI,并且不是所有的引擎都会有相同的UI。一个应用程序可以通过调用ISpeechRecognizer.ISUISupported,目的是在调用一个特殊的UI之前去判断引擎是否支持它。调用不支持的引擎将会引起一个运行时错误。如果UI是可用的,使用ISpecchRecognizer.DisplayUI去调用这个显示。

SetPropertyNumber方法:设置与指定的名称相应的数字属性。

SetPropertyString方法:设置与指定的名称相应的文本属性。

转载于:https://www.cnblogs.com/succ/archive/2010/03/12/1684389.html

おすすめ

転載: blog.csdn.net/weixin_33709609/article/details/93612856