[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lojban] Re: Lojread!



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 <your build directory>
 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.