Scroll to navigation

eBook-speaker(1) Linux Reference Manual eBook-speaker(1)


eBook-speaker - read aloud eBooks and other text formats using a software speech-synthesizer


eBook-speaker [eBook_file | URL | -s [-r resolution]] [-o language-code] [-h] [-i] [-d pulseaudio_sound_device] [-t TTS_command] [-b n | y] [-c]


eBook-speaker reads aloud eBooks and other text formats and even scanned documents using a software speech-synthesizer. By default the tool espeak is used for speech output. eBook-speaker can read from http://, https:// and ftp:// URLs using the tool wget. eBook-speaker also can scan a documant by itself using the scanimage application.

A list of items on the eBook will appear. Press <ENTER> to start reading. When reading of an item has finished, eBook-speaker will read the next item and the cursor will automatically skip to that item, so that an attached braille-terminal will display the name of that item.


Give an eBook_file as argument to eBook-speaker. Many eBook formats are supported. eBook-speaker also tries to read scanned documents through Optical Character Recognition.

Supported formats
AppleSingle encoded Macintosh
ASCII mail text
ASCII text
awk script text
Bourne-Again shell script text
Broadband eBooks (BBeB)
C source text
Composite Document File (Microsoft Office Word)
EPUB ebook data
GIF image data
GNU gettext message catalogue
GutenPalm zTXT
HTML document
ISO-8859 text
JPEG image data
Microsoft Reader eBook Data
Microsoft Windows HtmlHelp Data
Microsoft Word 2007+
Mobipocket E-book
MS Windows HtmlHelp Data
Netpbm PPM data
OpenDocument Text
Pascal source
PDF document
PeanutPress PalmOS
Perl script text
PNG image data
POSIX shell script text
PostScript document
Python script
Rich Text Format
Tenex C shell script text
troff or preprocessor text (e.g. Linux man-pages)
UTF-8 Unicode mail text
UTF-8 Unicode text
XML document text
When no input-file is supplied, eBook-speaker will bring up a file-manager. See KEYBOARD COMMANDS IN THE FILEMANAGER.
-b n | y
Set the initial break_on_EOL. After quitting eBook-speaker. this setting will be saved and used as default for future books. It can be overruled with the 'b'-command for each individual book. See the 'b' command.
eBook-speaker use tesseract for OCR by default. This option forces eBook-speaker to use cuneiform instead.
-d pulseaudio_sound_device
eBook-speaker will play on this sound device. Default is "0". (The first soundcard) This option overrules the value in the ~/.eBook-speaker.xml config file. Be sure the user is a member of the group audio.

Print this usage message.
Ignore reading of the bookmark.
Deprecated. eBook-speaker now determines the file-type using the libmagic library.
-o language-code
The language code for OCR to use. (typically an ISO 639-1 two-letter code. See <>). If this option not is specified, the language is determined according to the current locale.
-r resolution
By default the option "-s" will scan at a resolution of 400 DPI. With this option one can force another resolution.
Scan a document using a hardware scanner and OCR it with either tesseract or cuneiform.
-t TTS-command
Be sure that the TTS reads from the file eBook-speaker.txt and that it writes to the file eBook-speaker.wav.


  • eBook-speaker some.epub -t "espeak -f eBook-speaker.txt -w eBook-speaker.wav -v nl"
  • eBook-speaker some.epub -t "flite eBook-speaker.txt eBook-speaker.wav"
  • eBook-speaker some.epub -t "text2wave eBook-speaker.txt -o eBook-speaker.wav"


The name and version of this program and the name of the author is displayed left aligned at the top of the screen. The name of the current loaded book is displayed right aligned.

The second row of the screen displays the number of pages of the current loaded book (if any), the current selected level and the total number of levels, the total number of phrases and the current displayed screen and the total number of screens.

The spoken phrase will be displayed on the bottom-line of the screen, so one can follow along on a braille-terminal what he/she hears.

The next rows displays the title of the item, the first page of the item within brackets (if there are pages) and the total number of phrases in this item. Items in higher levels are indented. (Three spaces each level.) When "just reading this item" is active, a "J" is viewed at the first column of that item.


eBook-speaker recognizes the following keyboard-commands:

Move cursor to the next item.
Move cursor to the previous item.
Skip to next phrase.
Skip to previous phrase.
View next screen.
View previous screen.
Start reading.
Pause/resume reading.
Read on normal speed.
Search for a label.
Store current item to disk in ASCII-format.
Set a phrase-break at the end of a line?. When set to 'y'es, eBook-speaker will start a new phrase after each New-Line character. When set to 'n'o, each New-Line character will be seen as a space, so that two or more lines are concatenated to one phrase.
Move cursor to the last item.
Store current item to disk in WAV-format.
Decrease reading speed.
Find the currently reading item and place the cursor there.
Go to phrase in current item.
Go to page number. (if there are pages)
Give this help.
Just read current item and place a "J" at the first column.
Switch to next level.
Switch to previous level.
Search forewards.
Search backwards.
Select an output sound device.
Place a bookmark.
Quit eBook-speaker. The reading-point is saved as bookmark.
Rotate the scanned document. If the document is accidentally placed upside-down on the scanner, it can not be OCR'ed correctly. This command will rotate the scanned document 90 degrees.
Stop reading.
Select a TTS.
Move cursor to the first item.
Increase reading speed.
Increase playback volume. (beware of Clipping)
Decrease playback volume.
Go to the file-manager.


Start eBook-speaker with current file as input.
Select previous directory and open it.
Move cursor to the next file.
Move cursor to the previous file.
View next page.
View previous page.
Search for a file.
Move cursor to the last file.
Give this help.
Toggle hidden files displaying on or off.
Search next.
Search previous.
Quit eBook-speaker.
Move cursor to the first file.


When pressing the 't'-command, the TTS-selector appears. A few TTS-applications are defined by default. The first TTS in the TTS-selector will be espeak with option -v set according to the current locale.

  • Choose one by moving the cursor with the cursor-keys and select it by pressing the ENTER-key.
  • To delete a TTS-command press the DEL-key.
  • A new TTS-command can be provided by adding the TTS-command to the TTS-line.
  • To edit an existing TTS-command one has to edit the ~/.eBook-speaker.xml file by hand.

Be sure that the new TTS reads its information from the file eBook-speaker.txt and that it writes to the file eBook-speaker.wav.


Here are some examples to insert into the TTS-selector:

espeak -f eBook-speaker.txt -w eBook-speaker.wav
espeak -f eBook-speaker.txt -w eBook-speaker.wav -v mb-en1
espeak -f eBook-speaker.txt -w eBook-speaker.wav -v de
espeak -f eBook-speaker.txt -w eBook-speaker.wav -v pt
espeak -f eBook-speaker.txt -w eBook-speaker.wav -v nl
espeak -f eBook-speaker.txt -w eBook-speaker.wav -v mb-nl2
flite eBook-speaker.txt eBook-speaker.wav
swift -n Lawrence -f eBook-speaker.txt -o eBook-speaker.wav
text2wave eBook-speaker.txt -o eBook-speaker.wav
text2wave -eval '(voice_en1_mbrola)' eBook-speaker.txt -o eBook-speaker.wav
pico2wave -w eBook-speaker.wav "`cat eBook-speaker.txt`"


On some soundcards (especially onboard cards) the alsa driver only can play one file at a time. eBook-speaker crashes sometimes on these cards. From this version on the pulseaudio sound-driver will be used instead. The pulseaudio sound system has no problems with these cards.

I don't know how to play with pulseaudio in the C function sox_open_write (). For now, the external command sox will be used instead.


for the XML2 library.
for sox.


This directory contains the bookmarks in XML-format. Each file has the name of the book and contains the name of the current item, the start-phrase of that item, the current level, the desired TTS and the desired reading speed.
This file, in XML-format, contains the name of the desired audio device, the desired OCR language and the TTS's to use. (See TTS EXAMPLES)
eBook-speaker makes use of a temporary directory. It is removed after quitting.


ebook-convert(1), pandoc(1), calibre(1), iconv(1), lowriter(1), tesseract(1), cuneiform(1), espeak(1), flite(1), text2wave(1), mbrola(1), pico2wave(1), scanimage(1), pnmflip(1), gif2png(1), man2html(1), unar(1), swift(1), unrtf(1), wget(1), sox(1), magic(5), locale(7)


Jos Lemmens <>


Copyright (C)2011-2018 Jos Lemmens <>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program (see the file COPYING); if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA

06 May 2018 ebook-speaker-5.0