|
Speech Application Programming Interface(Speech API、SAPI)は、Windowsアプリケーションで音声認識や音声合成を使うためにマイクロソフトが開発したAPI。このAPIには様々なバージョンがあり、Speech SDK の一部として出荷されたものもあれば、Windows OS 自体の一部としてリリースされたものもある。SAPI を使ったアプリケーションとしては、Microsoft Office、Microsoft Agent、Microsoft Speech Server などがある。 一般にどのバージョンのAPIであっても、様々な言語で音声合成/認識機能を使ったアプリケーションを書くための標準インタフェースを提供している。また、サードパーティがSAPI対応の音声認識エンジンや音声合成エンジンを開発することも可能となっている。原則として、それらエンジンが定義されたインタフェースに準拠している限り、マイクロソフト提供のエンジンの代替として使うことが可能である。 Speech API は自由に再配布可能なコンポーネントであり、それを使っているアプリケーションと同梱させることが可能である。音声認識/合成エンジンの多くも自由に再配布可能である。 SAPI には2つのファミリがある。バージョン1から4までは互いによく似ていて、新しいバージョンほど新機能が追加されている。しかし2000年にリリースされた SAPI 5 のインタフェースは従来とは全く異なる。その後、SAPI 5 のマイナーチェンジ版がいくつかリリースされている。 == 基本アーキテクチャ == SAPIは言わば、アプリケーションと音声(合成/認識)エンジンの間のインタフェースあるいはミドルウェアである。SAPIバージョン1から4では、アプリケーションは直接エンジンとやり取りできる。APIには、アプリケーションとエンジンが準拠すべき抽象「インタフェース定義」も含まれる。アプリケーションはエンジンのメソッドを直接呼び出す代わりに、単純化された高レベルのオブジェクトを使うこともできる。 一方、SAPI 5 ではアプリケーションとエンジンは直接やり取りできない。その代わり、両者が1つのランタイムコンポーネント(sapi.dll)とやり取りする。このコンポーネントにアプリケーション向けAPIとエンジン向けインタフェースが実装されている。 SAPI 5 アプリケーションは、認識文法のロード、認識開始、合成すべき文を提供するなどといった作業にこのAPIを使う。sapi.dll はそのコマンドを解釈して処理し、必要に応じてエンジンインタフェースを通してエンジンを呼び出す(例えば、ファイルからの文法のロードは sapi.dll で行われるが、文法データは実際に認識を行う認識エンジンに渡される)。処理中、認識エンジンや合成エンジンもイベントを生成することがある(例えば、発声を認識したことを示す場合や、合成音声内の単語境界を示す場合など)。そのような逆方向の経路で、エンジンから dll を経由してアプリケーションにイベントが通知される。 実際のAPIと sapi.dll に加えて、Speech SDK を構成する他のコンポーネントが SAPI の一部としてリリースされている。ほとんどのバージョンの Speech SDK に以下のコンポーネントが含まれている。 * API定義ファイル - MIDL(Microsoft Interface Definition Language)とC/C++用ヘッダファイル * ランタイムコンポーネント - sapi.dll * コントロールパネル・アプレット - デフォルトの音声認識/音声合成エンジンを選択/設定するのに使う。 * 音声合成エンジン - 各種言語用がある。 * 音声認識エンジン - 各種言語用がある。 * 再配布可能コンポーネント - アプリケーションに同梱可能なエンジンとランタイム。 * サンプルコード - アプリケーションとエンジンのサンプルコード。エンジンの方はインタフェースが定義されているだけで中身はなく、既存のエンジンのSAPIへの移植サンプルとなっている。 * 文書 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Speech Application Programming Interface」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Microsoft Speech API 」があります。 スポンサード リンク
|