System.speech.RecognitionとMicrosoft.speech.Recognitionの違いは何ですか?
-
24-10-2019 - |
質問
.NETには、音声認識のための2つの同様の名前空間とアセンブリがあります。違いを理解しようとしています。また、どちらか一方を使用することが適切な場合です。
Assembly System.speech(System.speech.dll)からのSystem.speech.Recognitionがあります。 System.speech.dllは、.NETフレームワーククラスライブラリ3.0以降のコアDLLです
Assembly Microsoft.speechからのMicrosoft.speech.Speech.Excognition(Microsoft.speech.dll)もあります。 Microsoft.speech.dllは、UCMA 2.0 SDKの一部です
ドキュメントが混乱していると思いますが、次の質問があります。
System.speech.Recognitionは、「Windows Desktop Speech Technology」用であると述べています。これは、サーバーOSで使用できないこと、または高度なアプリケーションに使用できないことを意味しますか?
UCMA 2.0スピーチSDK( http://msdn.microsoft.com/en-us/library/dd26409%28v=office.13%29.aspx )前提条件としてMicrosoft Office Communications Server 2007 R2が必要だと言います。ただし、会議や会議で、OCSのないOCSを使用せずにUCMA 2.0の音声APIを使用できる場合、OCS機能を必要としない場合は会議や会議で言われました。これは本当ですか?
サーバーアプリケーション用のシンプルな認識アプリを構築している場合(ボイスメールを自動的に転写したいと思っていた場合)、OCSの機能は必要ありませんが、2つのAPIの違いは何ですか?
解決
簡単な答えは、Microsoft.speech.RecognitionはSAPIのサーバーバージョンを使用し、System.Speech.RecognitionはSAPIのデスクトップバージョンを使用するということです。
APIはほとんど同じですが、基礎となるエンジンは異なります。通常、サーバーエンジンは、コマンドおよび制御アプリケーション用の電話品質のオーディオを受け入れるように設計されています。デスクトップエンジンは、コマンドとコントロールおよびディクテーションの両方のアプリケーションの両方で高品質のオーディオを受け入れるように設計されています。
System.speech.RecognitionはサーバーOSで使用できますが、Microsoft.speech.Recognitionとほぼ同様にスケーリングするようには設計されていません。
違いは、サーバーエンジンがトレーニングを必要とせず、低品質のオーディオで動作するが、デスクトップエンジンよりも認識品質が低いことです。
他のヒント
私は見つけました エリックの答え 本当に役に立ちましたが、私が見つけた詳細をいくつか追加したかっただけです。
System.speech.Recognitionを使用して、デスクトップ認識者をプログラムできます。 SAPIおよびデスクトップ認識者が製品に出荷されました。
- Windows XP:SAPI V5.1および認識者なし
- Windows XP Tablet Edition:SAPI V5.1およびRecoldizer V6.1
- Windows Vista:SAPI V5.3およびRecoldizer V8.0
- Windows 7:SAPI V5.4とRecoldizer V8.0?
サーバーにはSAPIが付属していますが、認識者はありません。
- Windows Server 2003:SAPI V5.1および認識者なし
- Windows Server 2008および2008 R2:SAPI V5.3?そして、認識者はありません
デスクトップ認識者もオフィスなどの製品に出荷されています。
- Microsoft Office 2003:認識v6.1
Microsoft.speech.Recognitionを使用して、サーバー認識者をプログラムできます。サーバー認識者が製品に出荷されました:
- 音声サーバー(さまざまなバージョン)
- Office Communications Server(OCS)(さまざまなバージョン)
- UCMA - これは、再配布可能な認識者を含む(私が信じているOCSのマネージドAPIです
- Microsoft Server Speech Platform - Recoldizer V10.2
Microsoft Server Speech Platform 10.2バージョン用の完全なSDKが利用可能です http://www.microsoft.com/downloads/en/details.aspx?familyid=1B1604D3-4F66-4241-9A21-90A294A5C9A4. 。スピーチエンジンは無料でダウンロードされています。バージョン11をで利用できるようになりました http://www.microsoft.com/download/en/details.aspx?id=27226.
Microsoft Speech Platform SDK 11情報とダウンロードについては、以下を参照してください。
- 言語パック -http://www.microsoft.com/en-us/download/details.aspx?id=27224
- ランタイムエンジン - http://www.microsoft.com/en-us/download/details.aspx?id=27225
- SDK-http://www.microsoft.com/en-us/download/details.aspx?id=27226
- MSDNドキュメント - http://msdn.microsoft.com/en-us/library/dd266409
デスクトップ認識者は、inprocまたは共有を実行するように設計されています。共有認識者は、オープンアプリケーションを制御するために音声コマンドが使用されるデスクトップで役立ちます。サーバー認識者はinprocのみを実行できます。 InProc Recoldizersは、単一のアプリケーションが認識機を使用するとき、またはWAVファイルまたはオーディオストリームを認識する必要があるときに使用されます(共有認識者は、オーディオファイルを処理できません。
デスクトップスピーチ認識者のみが含まれています。DictationGrammar(無料のテキストの口述に使用される文法を提供するシステム)が含まれます。 class System.speech.Recognition.DictationGrammarは、Microsoft.Speech Namespaceに補完されていません。
APIを使用して、インストールされているレミザーを決定するためにクエリを使用できます
- デスクトップ:system.speech.recognition.speechecognitionEngine.installedecognizers()
- サーバー:Microsoft.speech.Recognition.SpeechCognitionEngine.installeDecognizers()
レジストリキーを見ることで、どのような認識機がインストールされているかも確認できることがわかりました。
- デスクトップ承認者:hkey_local_machine software microsoft speech repordizers tokens
- サーバー認識者:hkey_local_machine software microsoft speech server v10.0 repordizers tokens
- - アップデート - -
議論されているように Microsoftの音声認識 - どの参照を追加する必要がありますか?, 、Microsoft.Speechは、Kinect Recoldizerに使用されるAPIでもあります。これは、MSDNの記事に記載されています http://msdn.microsoft.com/en-us/library/hh855387.aspx
これは、音声ライブラリのリンクです(MSサーバースピーチプラットフォーム):
Microsoftは、Microsoft Speech PlatformとWindows Sapiの違いに関して物事を解消する記事を書いたようです。 https://msdn.microsoft.com/en-us/library/jj127858.aspx. 。 Microsoft.speechからsystem.speechにkinectの音声認識コードを変換しながら、私が見つけた違い(参照 http://github.com/birbilis/hotspotizer)前者はSGRSグラマーをTag-format = semantics/1.0 riteralsでサポートしているが、後者はx = "x"に変更してセマンティクス/1.0に変換する必要があるということでした。タグで