Speech Application Programming Interface
SAPIは言わば、アプリケーションと音声(合成/認識)エンジンの間のインタフェースあるいはミドルウェアである。SAPIバージョン1から4では、アプリケーションは直接エンジンとやり取りできる。APIには、アプリケーションとエンジンが準拠すべき抽象「インタフェース定義」も含まれる。アプリケーションはエンジンのメソッドを直接呼び出す代わりに、単純化された高レベルのオブジェクトを使うこともできる。
一方、SAPI 5 ではアプリケーションとエンジンは直接やり取りできない。その代わり、両者が1つのランタイムコンポーネント(sapi.dll)とやり取りする。このコンポーネントにアプリケーション向けAPIとエンジン向けインタフェースが実装されている。
SAPI 5 アプリケーションは、認識文法のロード、認識開始、合成すべき文を提供するなどといった作業にこのAPIを使う。sapi.dll はそのコマンドを解釈して処理し、必要に応じてエンジンインタフェースを通してエンジンを呼び出す(例えば、ファイルからの文法のロードは sapi.dll で行われるが、文法データは実際に認識を行う認識エンジンに渡される)。
1996年リリース。
SAPI 5.0 ランタイムを含む Speech SDK version 5.0 は2000年にリリースされた。従来のバージョンとは完全に異なる設計で、従来の SAPI 用アプリケーションやエンジンはかなり改造しないと使えないようになっていた。
設計思想として、エンジンとアプリケーションを厳密に分離しようとしたため、全ての呼び出しはランタイムである sapi.dll を経由するようになった。これによってAPIがエンジン独立になり、アプリケーションが不用意に特定のエンジンの機能に依存してしまうようなことがなくなった。また、管理や初期化のコードがランタイムに移されたことで、音声技術を使ったアプリケーションが書きやすくなった。
新APIは当初 COM API のみであり、C/C++ からのみ使えるようになっていた。VB やスクリプト言語のサポートは後から追加された。OSとしては、Windows 98 と NT 4.0 以降でサポートされた。
主な機能は以下の通り:
独立したプロセス(sapisvr.exe)として動作する音声認識エンジン。