[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:453]For visual sense handicapped people, temporal measures



Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx> writes:

> まあ、通常はDynamic Loadingでやった方がいいでしょうね。
> もちろん、ユーザーが自分でDLLを書いて行うことが出来ます。
> 
> > 日本語windows95スクリーンリーダである95Reader(日本障害者職業総合セン
> > ター)は、プログラム作成者のために以下のような関数を提供しています。
> > 
> > BOOL WINAPI SoundMessage (LPCSTR, int);
> > BOOL WINAPI dic_regist (VOID);
> > BOOL WINAPI dic_regist_detail (VOID);
> > BOOL WINAPI dic_reg_from_file (VOID);
> > BOOL WINAPI dic_text_out (VOID);
> > 
> >  このうち、SoundMessage() は、しゃべってほしい文字列へのポインタと読
> > み上げモード指定(なめらか読み、1文字詳細読みなど)を与えて、任意の文
> > 字列を発声させることができます。wz editorでは、この関数を使って音声化
> > を行っています。
> 
> なるほど。Export Libraryは用意されているんですよね?
> 95readerとやらは、どこで手に入るのですか
> 
> こういうものが使えるのなら、WM_TEXTをだます必要はないですね。
> さっきの計画は止めましょう。汎用性もなさそうですし。

検索エンジンでちょろっと探してみると確かに見つかりますね。
この中のsoundp.h, soundp.libがあれば、開発できるでしょう。
多分、soundp.dllをLoadLibraryして、上の関数を呼び出せばいいだけだと思う。

## それにしても、別に95Readerを私は持ってないし、
## サポートする義理はないような気がしてきたので、
## サンプルとして、「東芝音声システム」なるものでサポートしてみましょうか?

#### たまたま手元にあるのでした。^^;;;;

まあ、どっちにしろ、読み上げって、実際にはWindowsに将来的には組み込まれる
のでしょうね。そうなると、そっちをサポートした方が遥かに効率的ですね。
## 手元にサンプルソースがあるな。

しかし、それじゃあ、今困っている人が浮かばれんので、
ちょっとこんなEmacs Lispを思い付きました。
井上さん。これでポインタの文字がよめますか?
読めるんなら、これで後はほかの人が幸せになるように
お好みで体裁を調えてください。私が後は適当に処理します。

使い方は分かりますよね。point-char-to-title-stringを適当に
global-set-keyしてください。読み上げのタイミングはどのように制御しているのか
私にはわからないので、お困りでしたら、詳しいことを教えてください。

(defun set-string-to-title-string (string)
  (modify-frame-parameters (selected-frame)
			   (list
			    (cons 'name
				  string))))
(defun region-to-title-string (begin end)
  (interactive "r")
  (set-string-to-title-string
   (buffer-substring begin end)))

(defun point-char-to-title-string (point)
  (interactive "d")
  (set-string-to-title-string 
   (char-to-string 
    (char-after point))))

(defun point-word-to-title-string (point)
  (interactive "d")
  (save-excursion
    (let (begin end)
      (forward-word 1)
      (setq begin (point))
      (backward-word 1)
      (setq end (point))
      (region-to-title-string begin end))))

From himi