Catawalkのページを改めて眺めてみると、下の方にCatwalkのSDKが公開されていることに気がつきました。
試用版なのでアナウンス無しで変更の可能性があると断り書きがあるのですが、自己責任で使ってよく、CWKManip.dllは再配布可能とありますので、いろいろ遊べそうです。
早速、以前(一年半前に)中村 典嗣さんのページを参考にして作ったテストプログラムを再びCatwalk用に作ってました。
Delphi6Personalで作ってみました。uses節のoleautoをComobjに置き換えて、該当する部分を以下のように書き換えます。
function CatwalkSimpleSpeechA(lpText:LPCSTR;nVoiceByRole:Integer;dwFlags:DWORD;nPriority:Integer): boolean; Stdcall;
external 'CWKManip.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
CatwalkSimpleSpeechA('こんにちは', 0, 1, 0);
end;
難なく発音してくれました。
定数部分は本格的なプログラミングをする場合は、ちゃんと名前で定義するべきでしょうが、SDK付属のC用のヘッダファイルを眺めて数値におこしました。
なおCatwalkを起動させていないと使えません(スクリーンリーダーモードでなくても可)。そしてSAPI4もしくはSAPI5の日本語音声合成エンジンが組み込まれていなくてはいけません。
ちゃんとCatwalkがしゃべっているのか直接音声エンジンに命令しているのか分かりませんので、Catwalkのメニューから音声の設定を選び、違う音声に切り替えてみたりします。するとCatwalkのシステムがしゃべっていることが分かります。
(気が向いたら開発室の方でまとめページを作ってみます。)
