1. ホーム
  2. .net

[解決済み] System.Speech.RecognitionとMicrosoft.Speech.Recognitionの違いは何ですか?

2023-07-29 06:57:43

質問

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

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

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

私はドキュメントが分かりにくいので、次のような質問があります。

System.Speech.Recognition は "The Windows Desktop Speech Technology" 用とありますが、これはサーバー OS では使用できない、または大規模なアプリケーションには使用できないという意味でしょうか。

UCMA 2.0 スピーチ 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 の違いは何ですか?

どのように解決するのですか?

簡単に言うと、Microsoft.Speech.Recognition は SAPI の Server 版を使用し、System.Speech.Recognition は SAPI の Desktop 版を使用する、ということです。

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

サーバー OS 上で System.Speech.Recognition を使用することはできますが、Microsoft.Speech.Recognition ほどうまくスケールするように設計されてはいません。

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