Emacspeak
- 輪講資料(1998/04/15) by T.Nishimoto
- 出典 : CHI'96
- http://cs.cornell.edu/home/raman/
Abstract
従来の screen-reader は、画面に表示された文字列を読み上げていた。
Emacspeak は、アプリケーションを
使用するための適切なフィードバックを返すことにより、
ユーザの認知的負荷を軽減する。
Introduction
視覚障害者にとって音声フィードバックは重要。
さまざまな画面読み上げアプリケーションが
作られてきた
- テキスト画面用
- GUI 用
(IBM Screenreader/2 など)
GUI 情報から off-screeen model を作成し、提示する
Shortcoming of Reading The Screen
- 画面読み上げでは、画面内の情報の構造がわからない
- その情報が、なぜそこに表示されているのか知りたい
例:カレンダー
- || を pipe pipe と読む
もともと視覚的補助だったものが、雑音に
- カーソル上の文字「1」をただ「one」と読む
本当は Sunday, Jan, 1, 1995 という意味
- 画面読み上げは、真の音声 I/F ではない
- Emacspeak では、アプリケーションと密に音声フィードバックを
統合する
A Different Approach
- 音声フィードバックルーチンは
カレンダーのランタイム環境にアクセスし、情報を取得
- 画面表示を読むのではなく、
現在の日付が Sun, Jan. 1, 1995 であることを音声で伝える
- 従来の画面読み上げ:indirect
本手法:direct access to information
Motivation
- すべてのコンピュータアプリケーションに共通な構造
- ユーザの入力を受理
- データを計算する
- 結果をディスプレイに表示
- (1) と (3) が Human Computer Interaction
- WIMP: Windows, Icons, Menus, Pointer =視覚に依存
- 視覚的レイアウトは音声インタラクションには最適ではない
- Emacspeak はより「有用な」出力を行なう
Implementation
- GNU Emacs の各操作に聴覚フィードバックを付加した
- Emacs Lisp の advice 機能を用いる
各操作の before, after, around に音声 advice を付加
- キー操作で(interactive-p) next-line したら
操作の後で speak-line を行なう
Examples of Common Computer Tasks
共通な項目
- 音声出力は常に割り込み可能であること
新たな優先事項が発生したら、それを先に言う/実行する
- 情報の構造を伝えるために、複数の声質を使い分ける
テキストの強調や引用など
- auditory icon の利用
0.25-0.5 秒程度の短い音によって、
選択/開く/閉じる、などのイベントを伝える
一貫性を持たせる
聴覚アイコン → 音声応答
もし聴覚アイコンだけで状況が把握できたら、
音声を遮って次の操作を実行できる
→ 操作をスピードアップできる
Editing Documents
- キャラクタを押すと、その文字を読み上げる
- スペースを押すと、直前の1単語を読み上げる
- カーソルを移動すると、カーソル行を読み上げる
読み上げ中にカーソルをさらに移動すると、
その行の読み上げを中断し、次の行に移動して読み上げる
- Emacs で可能なカーソル操作すべてに適切なフィードバック
- Emacs はファイルの種類によって構文情報を使い分けている
例えば C 言語のソースなら
- キーワードのみ別の声質で読み上げる
- "}" が関数の終りなら " brace that closes function " と読む
- これらは、視覚で得られる情報と等価
Spell Checking
- ispell における音声フィードバック
- 従来の画面読み上げでは、
(1) カーソル位置を確認 (2) 間違いを探し (3) 訂正候補を選ぶ
- Emacspeak では、
(1) 間違っている単語を「強調して」読み上げる
(2) 訂正候補のリストを読み上げる
- 「文字列を確認しながら置換する作業」も同様
置換される単語のある行を読み上げる
置換される単語は強調して読む
- 元の文: Change this food, but do not touch this fool.
- 最初の foo だけを bar に置換するように指示
- 確認音声: Change this food, but do not touch this fool.
Electronic Mail
- ヘッダをそのまま読むようなことはしない
- ヘッダの読み上げ音声: [送信者名] on [題名]
- メールにおける対話の部分構造を、
引用マーク (>) によって判断する
- 部分メッセージごとに異なる声で読み上げる
- キー操作で、次の部分メッセージへスキップする
Usenet News
GNUS に基づく拡張
- カーソルキーでグループの階層を「開く」「閉じる」
- カーソル位置のグループの説明と未読数を音声で読み上げる
- 各発言ヘッダの読み上げ: [発言者名] on [題名], [行数]
- 「開く」操作を実行したら、中身を読む
- 聴覚アイコンは特にここで有効
Surfing The WWW
W3 (Emacs WWW 拡張)に基づく
- ハイパーリンクは別の声質で読み上げる
- 割り込み操作によって、最後に読まれたリンクを選択する
- ページ内でリンク間を移動するときは、移動量に応じた聴覚アイコン
- リンクの選択は「開く」聴覚アイコン
- 新しいページを表示したら、タイトルを読み上げる
Interactive WWW Documents
- フォームの処理:W3 によるページ内容の解析結果を利用
- Text Field
- フォーカスされたら:「text field XXX set to XXX」
- Check Box
- フォーカスされたら:「check box XXX is checked」
Enter でボタンクリック
変更後:「unchecked check box XXX」
- Radio Button
- 「is checked」のかわりに「is pressed」と読む
Navigating The File System
dired に基づく
- ファイルの種類によって声質を変える
ディレクトリ、実行ファイル、シンボリックリンク
- ファイルを開く:「開く」聴覚アイコン → 開いたファイル名の読み上げ
- dired の表示をそのまま読み上げない
まずファイル名だけ読む
TAB を押すと順番に、パーミッション、リンク、オーナーなどを読む
- Emacspeak は表示内容を理解しており、それに
応じて適切な言い方で読み上げる
Conclusion
- 健常者が音声を付加的なモダリティとして使ううえでも、
本手法のような direct アプローチは望ましい。
- Emacspeak は PC ではなく UNIX のための音声 I/F としては
最初のものである
Last modified: Mon Feb 14 18:01:39 2000