いままでの記事と趣が違うので、
この記事は読み飛ばしてもらってもかまわない。
最終更新日が5年前のページだが、
Windows95上での音声化ライブラリ使用記というページを見つけた。
このブログで紹介したVE2000の前身のソフトに、
Ve98というのがある。
これは、機能的にはVE2000に及ばないが、
SAPI音声さえあればWinodwsXPでも動く。
このソフトではSAPIを操作するために sapiw.dllというDLLが使われている。
他のプログラムからでも、このDLLを利用するとSAPI音声を簡単に操作することができる。
sapiw.dllの入手先は、VE2000の置いてあるVIPS(リンク切れ)のページ。
「Windows95上での音声化ライブラリ使用記」では、sapiw.dll関連で2つの記事がある。
VisualBasic4.0を利用するものと、Delphi2.0を利用するもの。
このバージョンより新しいものを両方とも持っているが、Delphiの方が好きなので、
こっちをやってみる。
ページの最後の方に、Delphiのプロジェクトファイルなどが置いてあるので、
全部ダウンロードし、コンパイルしてみる。
コンパイルエラー。
調べてみるとuses節にoleautoユニットを並べてあるが、
Delphi3以降でコンパイルする場合はこれをComobjで置き換えないといけない。
書き替えて、難なくコンパイル完了。
EXEファイルができるフォルダにsapiw.dllをコピーしておいて、実行すると、
「こんにちは」としゃべってくれた。
ほんの少し改造してみる。
implementation の次に、次の行を入れて、
uses Clipbrd;
ボタンを押したときの処理のところを次のように書き替える。
procedure TForm1.Button1Click(Sender: TObject);
begin
if Clipboard.HasFormat(CF_TEXT) then
SAPI_Speech(1, PChar(Clipboard.AsText) )
end;
他のところも、例えば、ボタンが”こんにちは”のままだから、適当に書き替える。
そして、コンパイル。
そうすると、「簡易クリップボードリーダー」のできあがり。
今回はできるだけ手を加えないような形で紹介したが、sapiwユニットを作って、dllの関数全部そこで宣言しておけば、以後uses節で参照するだけになるので、記述が楽になるだろう。
Delphi 6 Personalは、ここでダウンロードできる。
ただし、利用するにはボーランドのサイトで、使用者登録(無料)が必要。
今度ひまなときに、Dwlphi6以外のフリーのコンパイラを使った、誰でも試せる単純なプログラムを作って、ここで公開してみよう。