smythp / eloud

Lightweight, interactive screen reader for Emacs
25 stars 6 forks source link

Eloud

A lightweight, interactive screen reader for Emacs. View the demo here.

Overview

Eloud works on Linux and OSX versions of Emacs and uses the espeak speech synthesizer as the backend. It's designed to respond to user input, so if you move a word, character, or sentence, Eloud will read that segment as you move.

MELPA install

After installing Eloud from package-list-packages, add this line to your .emacs:

(require 'eloud)

If you don't hear a voice after calling M-x eloud-mode, you need to manually set the path to the Espeak speech synthesizer.

(setq eloud-espeak-path "/usr/local/bin/espeak")

See below for instructions on installing Espeak.

Manual install

1. Install espeak

First, install espeak. On Ubuntu or Debian, you likely already have espeak. If that's not the case, run:

sudo apt-get install espeak 

On OSX, use:

brew install espeak 

You can try the compiled version here, but it's difficult to install. I recommend installing Homebrew and running the above command instead.

2. Install the package

Clone this repo:

cd ~
git clone https://github.com/smythp/eloud.git

Add the load path to your .emacs and require the code:

(add-to-list 'load-path "~/eloud/")
(require 'eloud)

Finally, set the path to espeak in your .emacs:

Debian/Ubuntu:

(setq eloud-espeak-path "/usr/bin/espeak")

OSX:

(setq eloud-espeak-path "/usr/local/bin/espeak") 

Your espeak may be located elsewhere. In that case, use which espeak in the terminal to find where the executable is located.

Quick install

cd ~
git clone https://github.com/smythp/eloud.git

Add to .emacs:

(add-to-list 'load-path "~/eloud/") 
(require 'eloud)
(setq eloud-espeak-path "/usr/bin/espeak")

Using Eloud

Enable Eloud with M-x eloud-mode. Once enabled, use normal Emacs navigation keys to move around the buffer. As you move over characters, words, lines, and sentences, Eloud will read with you. To read the whole buffer, use the beginning-of-buffer function (bound to M-< by default). Eloud will also read minibuffer prompts, dabbrev completion, and spellcheck.

There are still many edge cases and interactions with modes and packages that Eloud doesn't handle properly. Please open issues or make pull requests when you encounter these situations.

Eloud or Emacspeak?

Use Eloud if:

Use Emacspeak if: