[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: tamagoについて
- To: bep@argv.org
- Subject: Re: tamagoについて
- From: Koichi INOUE <inoue@argv.org>
- Date: 31 Jul 2000 10:36:01 +0900
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
- Organization: Accessibility Research Group for the Visually Impaired(ARGV)
- User-Agent: T-gnus/6.14.4 (based on Gnus v5.8.6) (revision 03) REMI/1.14.0 (Uragawara) FLIM/1.13.2 (Kasanui) APEL/10.0 Emacs/20.4 (sparc-sun-solaris2.6) MULE/4.0 (HANANOEN)
井上です。
なかなかご本人からの返事がこないのですが、情報の価値が高いので無断転載
します。
MLに流れたメールなので罪は軽いかな、と。
----
From: KATAYAMA Yoshio <kate@...>
Subject: [tamago:00329] Re: voice feedback of IM
To: tamago@...
Date: Fri, 28 Jul 2000 19:12:20 +0900
Reply-To: tamago@...
Message-Id: <200007281012.AA03462@sims211.tokyo.pfu.co.jp>
片山@PFUです。
Date: 25 Jul 2000 00:37:44 +0900
From: Koichi INOUE <inoue@...>
>現在私たちはBilingual Emacspeak ProjectというEmacs音声化プロジェクトを行っ
>ています。
>http://www.argv.org/bep/
見てみましたが、非常に面白そうなプロジェクトですね。
>Emacs側のinput methodという機構そのものにはキー入力を受け取ったり候補を
>表示する等のインターフェースは含まれていないような印象を受けたので、実相
>はEGGの内部関数にadviseする形になるかと思います。
>そこで質問なのですが、
>EGGから変換候補を表示に即応して受け取るコードを書くには、どのあたりから
>読み始めるのが適当でしょうか。
egg-cnv.el が漢字変換部分で、egg/*.el が変換サーバーと通信する部
分です。今回の目的では、egg-cnv.el の関数に advise するだけでよ
いと思います。変換関して対象となりそうな所は、
変換開始(egg-convert-region)
前/次候補(egg-next-candidate-internal)
メニューによる候補選択(egg-select-candidate-internal)
文節延ばし/縮め(egg-enlarge-bunsetsu-internal)
だと思いますが、メニューによる候補選択は使われないかも知れないで
すね。
この他にカーソルの移動時も読み上げが必要ではないかと思いますが、
如何でしょうか。
tamago の中身に手を付けず、advise で行なうのでしたら、
[変換開始]
egg-convert-region で挿入されたテキストから先頭文節((point) の
文節)を取り出すのがよいと思います。この文字列は、
(egg-get-major-bunsetsu-converted
(egg-get-major-bunsetsu (point)))
で取得できます。
[その他]
egg-insert-new-bunsetsu でテキストの置換えを行なっていますから、
これを advise するのがよいと思います。特に、変換対象の文節の特定
が容易ですので、大文節変換対象の問題(*)が回避できます。
新しい文節の情報は第3引数(new-b)で、
(対象文節 前文節 次文節)
というデータ構造になっていますから、新しい文節の文字列は、
(egg-get-major-bunsetsu-converted (car new-b))
で取得できます。
この関数は egg-hiragana(平仮名へ変換)や egg-katakana(片仮名へ
変換)でも使われています。これらのコマンドでは読み上げが行なわれ
ない方がよいのでしたら、一時的に読み上げを抑制するなどして下さい。
*****************************************************************
大文節変換対象の問題
Wnn は大文節と小文節の2レベルの文節があります。例えば、「だいさ
んかいたいかい」を変換すると、
|第-三-回 大会|
のように表示されます。ここで、“-”が小文節区切りで、“ ”が大文
節区切りです。
2レベルになっているのは、“第三回”をあたかも一つの文節のように
扱えるようにしながら、辞書の語数を抑えられるようにするためです。
上記のように表示されている状態で、“三”の位置で M-n(小文節次候
補)、C-n(大文節次候補)、C-n すると、次のように表示が変わりま
す。
↓ M-n
|第 さん 回 大会|
↓ C-n
|第-三-回 大会|
↓ C-n
|第 算 回 大会|
小文節次候補を行なうと“さん”になり、前後の小文節と結合が切れて
単独で大文節を構成するようになります。
この状態で大文節次候補を行なうと“さん”が“三”になり、前後の小
文節と結合して大文節を構成します。通常、“三-回”の“三”の位置
で大文節次候補を行なうと“三回”が変換対象となるのですが、大文節
次候補を連続した場合は、変換対象は前回のまま変わらず“三”となり
ます。
このため、文節情報だけでは変換対象を同定することができません。
*****************************************************************
>また、IMレベルでは本当に候補の表示方法とうに関するインターフェースは規定
>されていないのでしょうか。
Emacs 20 には LEIM (libraries of Emacs input methods) があるので
すが、tamago は activate/inactivate のためにしか LEIM を使ってい
なくて、殆んど分かっていません。(^^;;
>できればEGGには手を加えずにきれいな形で実装したいと思っています。
>よいアイデア、あるいは不明な点がありましたら、よろしくお願いします。
できるだけ御協力したいと思いますが、なかなか時間が取れず応答時間
が非常に長くなっていますので、その点は御容赦下さい。
--
片山@PFU
--
Koichi Inoue, ARGV
E-Mail: inoue@...
ICQ UIN: 74900690