80

.NET の音声認識には、2 つの類似した名前空間とアセンブリがあります。違いと、どちらを使用するのが適切なのかを理解しようとしています。

アセンブリ System.Speech (System.Speech.dll 内) から System.Speech.Recognition があります。System.Speech.dll は、.NET Framework クラス ライブラリ 3.0 以降のコア DLL です。

アセンブリ Microsoft.Speech (microsoft.speech.dll 内) からの Microsoft.Speech.Recognition もあります。Microsoft.Speech.dll は UCMA 2.0 SDK の一部です

ドキュメントがわかりにくく、次の質問があります。

System.Speech.Recognition は「Windows Desktop Speech Technology」用であると言っていますが、これはサーバー OS では使用できない、または大規模なアプリケーションには使用できないということですか?

UCMA 2.0 Speech SDK ( http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx ) には、前提条件として Microsoft Office Communications Server 2007 R2 が必要であると記載されています。ただし、カンファレンスや会議で、プレゼンスやワークフローなどの OCS 機能が必要ない場合は、OCS なしで UCMA 2.0 Speech API を使用できると言われました。これは本当ですか?

サーバー アプリケーション用の単純な認識アプリを構築しており (たとえば、ボイス メールを自動的に文字起こししたいと考えていました)、OCS の機能は必要ありません。2 つの API の違いは何ですか?

4

4 に答える 4

103

簡単に言うと、Microsoft.Speech.RecognitionはサーバーバージョンのSAPIを使用し、System.Speech.RecognitionはデスクトップバージョンのSAPIを使用します。

APIはほとんど同じですが、基盤となるエンジンが異なります。通常、サーバーエンジンは、コマンド&コントロールアプリケーション用の電話品質のオーディオを受け入れるように設計されています。デスクトップエンジンは、コマンド&コントロールとディクテーションアプリケーションの両方で高品質のオーディオを受け入れるように設計されています。

System.Speech.RecognitionはサーバーOSで使用できますが、Microsoft.Speech.Recognitionほど拡張できるようには設計されていません。

違いは、サーバーエンジンはトレーニングを必要とせず、低品質のオーディオで動作しますが、デスクトップエンジンよりも認識品質が低くなることです。

于 2010-06-06T02:39:04.147 に答える
53

エリックの答えは本当に役に立ちました。見つけた詳細を追加したかっただけです。

System.Speech.Recognition を使用して、デスクトップ認識エンジンをプログラムできます。SAPI およびデスクトップ レコグナイザーは、次の製品に同梱されています。

  • Windows XP: SAPI v5.1 およびレコグナイザーなし
  • Windows XP タブレット版: SAPI v5.1 および Recognizer v6.1
  • Windows Vista: SAPI v5.3 および Recognizer v8.0
  • Windows 7: SAPI v5.4 と Recognizer v8.0?

サーバーには SAPI が付属していますが、レコグナイザーはありません。

  • Windows Server 2003: SAPI v5.1 および認識機能なし
  • Windows Server 2008 および 2008 R2: SAPI v5.3? 認識機能なし

デスクトップ認識機能は、Office などの製品にも搭載されています。

  • Microsoft Office 2003: レコグナイザー v6.1

Microsoft.Speech.Recognition を使用して、サーバー レコグナイザーをプログラムできます。サーバー レコグナイザーは、次の製品に同梱されています。

  • Speech Server (各種バージョン)
  • Office Communications Server (OCS) (さまざまなバージョン)
  • UCMA – 再配布可能なレコグナイザーを含む (私が信じている) OCS 用の管理された API です。
  • Microsoft Server Speech Platform – レコグナイザー 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 の情報とダウンロードについては、次を参照してください。

デスクトップ認識エンジンは、インプロセスまたは共有で実行するように設計されています。共有認識エンジンは、音声コマンドを使用して開いているアプリケーションを制御するデスクトップで役立ちます。サーバー認識機能は、インプロセスでのみ実行できます。インプロセス レコグナイザーは、単一のアプリケーションがレコグナイザーを使用する場合、または wav ファイルまたはオーディオ ストリームを認識する必要がある場合に使用されます (共有レコグナイザーはオーディオ ファイルを処理できず、入力デバイスからのオーディオのみを処理できます)。

デスクトップの音声認識エンジンのみにディクテーション文法 (フリー テキストのディクテーションに使用されるシステム提供の文法) が含まれています。クラス System.Speech.Recognition.DictationGrammar は、Microsoft.Speech 名前空間に補完機能がありません。

API を使用してクエリを実行し、インストールされているレコンナイザーを特定できます

  • デスクトップ: System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()
  • サーバー: Microsoft.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()

レジストリ キーを調べると、インストールされているレコグナイザーも確認できることがわかりました。

  • デスクトップ認識エンジン: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers\Tokens
  • サーバー認識エンジン: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v10.0\Recognizers\Tokens

- - アップデート - -

Microsoft Speech Recognitionで説明されているように、どの参照を追加する必要がありますか? 、Microsoft.Speech は、Kinect 認識エンジンに使用される API でもあります。これは、MSDN の記事http://msdn.microsoft.com/en-us/library/hh855387.aspxに記載されています。

于 2010-06-08T15:50:12.007 に答える
7

音声ライブラリ (MS Server Speech Platform) のリンクは次のとおりです。

Microsoft Server Speech Platform 10.1 リリース (26 言語の SR および TTS)

于 2010-10-01T19:02:27.317 に答える