Speech Application Programming Interface
処理中、認識エンジンや合成エンジンもイベントを生成することがある(例えば、発声を認識したことを示す場合や、合成音声内の単語境界を示す場合など)。そのような逆方向の経路で、エンジンから dll を経由してアプリケーションにイベントが通知される。
実際のAPIと sapi.dll に加えて、Speech SDK を構成する他のコンポーネントが SAPI の一部としてリリースされている。ほとんどのバージョンの Speech SDK に以下のコンポーネントが含まれている。
API定義ファイル - MIDL(Microsoft Interface Definition Language)とC/C++用ヘッダファイル
ランタイムコンポーネント - sapi.dll
コントロールパネル・アプレット - デフォルトの音声認識/音声合成エンジンを選択/設定するのに使う。
音声合成エンジン - 各種言語用がある。
音声認識エンジン - 各種言語用がある。
再配布可能コンポーネント - アプリケーションに同梱可能なエンジンとランタイム。
サンプルコード - アプリケーションとエンジンのサンプルコード。エンジンの方はインタフェースが定義されているだけで中身はなく、既存のエンジンのSAPIへの移植サンプルとなっている。
文書
複数のアプリケーションが1つの認識エンジンを共有して使うことができる。リソースが共有できるようになり(例えばマイク入力の奪い合いがエンジン側で調停される)、制御用インタフェースが共通化できる。
認識処理の明確な制御を必要とするアプリケーションでは、プロセス内で動作する認識エンジンを使うこともできる。
音声認識エンジンが単語を識別するための文法。SAPI 5 では文法をXMLマークアップで定義でき、コード内でそれを動的に生成可能である。音声認識エンジンに組み込みの口述言語モデルをロードさせるメソッドもある。
テキストからの音声合成を行うオブジェクト。合成処理の制御にマークアップ言語(XMLに類似しているが厳密にはXMLではない)を使うことができる。
マイクやファイルからの音声入力やスピーカー(または任意のサウンドデバイス)やファイルへの音声出力を行うオブジェクトがランタイムに含まれている。標準的でない場所と音声ストリームをやり取りするためのカスタムオブジェクトを書くこともできる。
ユーザー定義の単語や発音を語彙として追加可能。