Speech Application Programming InterfaceSpeech APISAPI)は、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 に以下のコンポーネントが含まれている。

バージョン

[編集]

SAPI 1-4 API ファミリ

[編集]
SAPI 1
1995年にリリースされた最初のバージョン。Windows 95Windows NT 3.51 上でサポート。
SAPI 2
1996年リリース。
SAPI 3
1997年リリース。口述音声認識(連続的でない発声を認識できる)を限定的にサポート。サンプルコードが追加。
SAPI 4
1998年リリース。COM API、C++ ラッパークラス、Visual Basicでドラッグ・アンド・ドロップ開発を可能にするActiveXコントロールを含む。認識/合成エンジンを含むSDKの一部として出荷された。また、合成エンジンは Windows 2000 にも含まれていた。

SAPI 4 API(C++、COM、ActiveX)の主なコンポーネントは以下の通り。

SAPI 5 API ファミリ

[編集]

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 以降でサポートされた。

主な機能は以下の通り:

SAPI 5.0
2000年後半、Speech SDK version 5.0 の一部として出荷された。アメリカ英語だけでなく、日本語と簡体字中国語に対応。米語版では、子供の音声用と電話音声用の特別な音響モデルも用意された。合成エンジンは英語と中国語に対応。このバージョンのAPIと認識エンジンは Microsoft Office XP にも同梱された(2001年)。
SAPI 5.1
2001年後半、Speech SDK version 5.1 の一部として出荷。Visual Basic や JScriptなどのスクリプト言語、マネージコードから使えるAPIが用意された。このバージョンのAPIと合成エンジンは Windows XP に同梱された。また、強化された認識エンジンと共に Office 2003 と Windows XP Tablet PC Edition にも同梱された。
SAPI 5.2
2004年、Microsoft Speech Server の一部としてのみ出荷された。SRGSとSSMLをサポートし、サーバ機能をサポートし、性能を強化している。
SAPI 5.3
Windows Vista に新たな認識/合成エンジンと共に同梱されたバージョン。Windows Speech Recognition がオペレーティングシステムに統合されると同時に、Speech SDK と API は Windows SDK の一部となっている。

Windows Vista の音声機能

[編集]

Windows Vista には、以下のような音声関連の新たな機能が含まれている。

互換性

[編集]

以下のオペレーティングシステムの SAPI は互換性がある。

SAPI を使っている主なアプリケーション

[編集]

関連項目

[編集]

脚注

[編集]
  1. ^ Speech synthesis and recognition in .NET - Give applications a voice: Redmond Developer News

外部リンク

[編集]