From nobody@digitalkingdom.org Mon Feb 19 11:26:43 2007 Received: with ECARTIS (v1.0.0; list lojban-list); Mon, 19 Feb 2007 11:26:43 -0800 (PST) Received: from nobody by chain.digitalkingdom.org with local (Exim 4.63) (envelope-from ) id 1HJE9W-00044o-Gr for lojban-list-real@lojban.org; Mon, 19 Feb 2007 11:26:22 -0800 Received: from cpe-69-205-32-54.nycap.res.rr.com ([69.205.32.54] helo=rattlesnake.com) by chain.digitalkingdom.org with esmtp (Exim 4.63) (envelope-from ) id 1HJE9S-00044b-LJ for lojban-list@lojban.org; Mon, 19 Feb 2007 11:26:22 -0800 Received: by rattlesnake.com via sendmail from stdin id (Debian Smail3.2.0.115) Mon, 19 Feb 2007 19:25:04 +0000 (UTC) Message-Id: Date: Mon, 19 Feb 2007 19:25:04 +0000 (UTC) From: "Robert J. Chassell" To: lojban-list@lojban.org CC: Timothy Hobbs Subject: [lojban] Re: Lojread! X-Spam-Score: 1.0 X-Spam-Score-Int: 10 X-Spam-Bar: + Todo: I need to make a port for windows, if possible. make it so that each sentence is read aloud by a lojban tts engine. X-archive-position: 13575 X-ecartis-version: Ecartis v1.0.0 Sender: lojban-list-bounce@lojban.org Errors-to: lojban-list-bounce@lojban.org X-original-sender: bob@rattlesnake.com Precedence: bulk Reply-to: lojban-list@lojban.org X-list: lojban-list Please remember that Emacspeak is an audio desktop, not merely a screen reader. Emacspeak uses the current Emacs (I updated it to use the CVS Emacs this morning; as far as I know, it can run on older versions, too.) You do not need to give up your and others' freedom. (I am presuming that by the word `windows' you are referring to a restricted operating system and restricted programs to run on in, not `X Windows' or something like that.) In addition, presuming you go for freedom, you can get what may well be technically better software; and you can run it at the same time you run Emacs. The permanently blind, who currently are the predominant users of this interface, listen to good hardware text-to-voice synthesizers that produce nice voices. They listen to different voice for difference `faces'; they listen at 500 words per minute. In other words, they have learned to listen at the same speed that sighted people read. (A regular person speaks at 180 words per minute. The speed-up involves cutting out bits of the sound stream. It does not require an increase in the frequency, so the new voices are not squeaky.) In addition to hardware text-to-voice synthesizers, two software text-to-voice synthesizers are available. (I use eflite.) I am told the software synthesizers are not as good as the hardware ones. (I have never listened to a hardware synthesizer.) But the software is readily available. This means that any existing computer that can play a song and work with Emacs can run Emacspeak. (As for me, I occasionally use Emacspeak to listen to Jane Austen. I find I tend to read her text too quickly to really enjoy her language but I have not learned to listen as quickly as I read.) Here are notes on installing Emacspeak, presuming you are using software that preserves your and others' rights, such as GNU/Linux: According to my notes, in Debian, as of April 2003, to install Emacspeak using the eflite software text-to-speech synthesizer, type the following in a shell: apt-get install emacs21 emacs21-el emacspeak eflite That is all you must do besides learning the commands. There may be mouse commands for the sighted; I have never noticed. I use the keyboard commands: `Control-h Control-e' Give a brief overview of Emacspeak. I use this command all the time, to remind me of other commands. (In most Emacs documentation, this command, `Control-h Control-e' is written as `C-h C-e'.) `Control-e' is the major prefix. Thus `Control-e left-brace' Speak paragraph. I have not installed Emacspeak from Debian since 2003, so I don't know the current state. It worked fine then. Instead, I build from source. For a text-to-speech synthesizer, I use eflite. Here are my notes: ## for eflite, as of 2007 Jan 19 ## [as user `bob', i.e., a regular user, in Emacs] obtained from http://eflite.sf.net using Emacs w3m-goto-url and downloaded source into /usr/local/src/ ## Presumably, the following in a shell works just as well; but I have ## not done it: pushd wget http://internap.dl.sourceforge.net/sourceforge/eflite/eflite-0.4.1.tar.gz ## [as user `bob', in a shell; I could have done this in Emacs, too] pushd /usr/local/src/ # i.e. my build directory is /usr/local/src/ # it and its contents are owned by me tar tvzf eflite-0.4.1.tar.gz # just because I am careful ... tar xvzf eflite-0.4.1.tar.gz cd eflite-0.4.1/ ./configure make popd ## [as user `root'] pushd /usr/local/src/eflite-0.4.1/ make install popd ## Emacspeak with eflite works fine I get Emacspeak itself from a subversion respository. To checkout the code, follow the instructions on http://code.google.com/p/emacspeak/source ## Basically, as a regular user do the following in a shell: pushd /usr/local/src/ ## can take ten minutes time svn checkout http://emacspeak.googlecode.com/svn/trunk/ emacspeak ## To update: pushd /usr/local/src/emacspeak/ svn update ## To update and compile in Emacs evaluate the following: (progn (unless (fboundp 'vc-svn-update) (load "vc-svn")) (cd "/usr/local/src/emacspeak/") (call-process "svn" nil '("*svn update information*" t) t "update") (pop-to-buffer "*svn update information*")) (progn (cd "/usr/local/src/emacspeak/") ;; the *compilation* buffer is usually smaller than 50k (compile "sudo chown -R bob.users . && \ time make -k config && \ time make -k emacspeak && \ time find . -name '*.el' -print | etags - && \ time sudo make -k install")) ;; to see the times used for compiling (let ((this-buffer (current-buffer))) (pop-to-buffer "*compilation*") (re-search-forward "^real") (switch-to-buffer-other-window this-buffer)) I copied /usr/bin/emacspeak into /usr/local/bin/emacspeak-eflite-current and modified the former a bit to create a program I call: emacspeak-eflite-current You will note that besides ... site-lisp/emacspeak/lisp/emacspeak-setup.el which is installed by Emacspeak, I load, evaluate, and visit a good number of my own files. You will not have them. For example, I load a .emacs initialization file called .emacs_short. So you will want to vary this program for your own use. Remember to chmod the command 777; I always forget and then cannot figure why it is not working ... #!/bin/sh # /usr/local/bin/emacspeak-eflite-current CL_ALL="" for CL in $* ; do if [ "$CL" = "-o" ]; then DTK_PROGRAM=outloud export DTK_PROGRAM elif [ "$CL" = "-d" ]; then DTK_PROGRAM=dtk-soft export DTK_PROGRAM elif [ "$CL" = "-q" ]; then INITSTR="" else CL_ALL="$CL_ALL $CL" fi done export EMACS_UNIBYTE=1 export DTK_PROGRAM=/usr/local/bin/eflite export DTK_TCL=/usr/local/bin/eflite # foreground and background are set in ~bob/.emacs_short # (set-foreground-color "white") # (set-background-color "darkblue") # use the updated CVS version of Emacs ... could use the installed version exec /usr/local/src/emacs/src/emacs -q --no-site-file \ -fn '-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-1' \ -l /home/bob/.emacs_short \ -l /usr/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.el \ -l /home/bob/.emacs-neutral-for-emacspeak \ -l /home/bob/.emacs-for-blue-emacspeak \ --eval "(desktop-save-mode 0)" \ --eval '(dtk-chunk-only-on-punctuations)' \ --eval "(dtk-set-punctuations 'some t)" \ --eval "(setq frame-title-format '(\"Emacspeak eflite current: %b\"))"\ --eval '(set-frame-name "Emacspeak eflite current")' \ --visit /usr/local/bin/emacspeak-eflite-current \ --visit /home/bob/.emacs_short \ --visit /home/bob/.emacs-for-blue-emacspeak \ --visit /home/bob/.emacs-neutral-for-emacspeak \ --visit /home/bob/how-to-emacspeak \ --visit /u/misc/Austen-Pride-and-Prejudice \ --eval '(forward-line 3)' \ $INITSTR $CL_ALL ### end /usr/local/bin/emacspeak-eflite-current `emacspeak-eflite-current' worked with this morning's CVS snapshot of Emacs and this morning's Subversion snapshot of Emacspeak. -- Robert J. Chassell GnuPG Key ID: 004B4AC8 bob@rattlesnake.com bob@gnu.org http://www.rattlesnake.com http://www.teak.cc To unsubscribe from this list, send mail to lojban-list-request@lojban.org with the subject unsubscribe, or go to http://www.lojban.org/lsg2/, or if you're really stuck, send mail to secretary@lojban.org for help.