eBook-speaker - read aloud eBooks and other text formats
using a software speech-synthesizer
ebook-speaker [eBook_file | URL | -s [-r resolution]] [-b n | y | position] [-c] [-d pulseaudio_sound_device] [-h] [-H] [-i] [-o language-code] [-S] [-t TTS_command] [-v]
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.
- eBook_file
- 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
AportisDoc 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) DAISY3 DTBook
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 WordPerfect 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 | position
- Set the initial break_on_EOL or position. After quiting
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.
- -c
- 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/* config file. Be sure the user is a member of the group
"audio".
- -h
- Print this usage message.
- -H
- Show "hidden" files in the file-manager.
- -i
- Ignore reading of the bookmark.
- -l
- 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 <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>). 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.
- -s
- Scan a document using a hardware scanner and OCR it with either tesseract
or cuneiform.
- -S
- Do not display the phrase-numbers passing during playback.
- -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. To add the TTS-command permantly one
has to edit the ~/.eBook-speaker.xml file by hand.
- -v
- Be more verbose, so one can se what's going on.
Examples:
- 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 next rows displays the title of the item, the first page of
that 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.
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.
eBook-speaker recognizes the following keyboard-commands:
- cursor
down,2
- Move cursor to the next item.
- cursor
up,8
- Move cursor to the previous item.
- cursor
right,6
- Skip to next phrase.
- cursor
left,4
- Skip to previous phrase.
- page-down,3
- View next screen.
- page-up,9
- View previous screen.
- enter
- Start reading.
- space,0
- Pause/resume reading.
- home,*
- Read on normal speed.
- /
- Search for a label.
- A
- Store current item to disk in ASCII-format.
- b
- Set a phrase-break at the end of a line or position. 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. Or
set a break at the Nth position.
- B
- Move cursor to the last item.
- d
- Store current item to disk in WAV-format.
- D,-
- Decrease reading speed.
- f
- Find the currently reading item and place the cursor there.
- g
- Go to phrase in current item.
- G
- Go to page number. (if there are pages)
- h,?
- Give this help.
- j,5
- Just read current item and place a "J" at the first column.
- l
- Switch to next level.
- L
- Switch to previous level.
- m
- mute sound on/off.
- n
- Search forewards.
- N
- Search backwards.
- o
- Select an output sound device.
- p
- Place a bookmark.
- q
- Quit eBook-speaker. The reading-point is saved as bookmark.
- r
- 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.
- s
- Stop reading.
- S
- Toggle show progress on/off.
- t
- Select a TTS.
- T
- Move cursor to the first item.
- U,+
- Increase reading speed.
- v,1
- Decraese playback volume.
- V,7
- Increase playback volume. (beware of Clipping)
- x
- Go to the file-manager.
- enter,cursor
right,6
- Start eBook-speaker with current file as input.
- cursor
left,4
- Select previous directory and open it.
- cursor
down,2
- Move cursor to the next file.
- cursor
up,8
- Move cursor to the previous file.
- page-down,3
- View next page.
- page-up,9
- View previous page.
- /
- Search for a file.
- end,B
- Move cursor to the last file.
- h,?
- Give this help.
- H,0
- Toggle hidden files displaying on or off.
- i
- Give some information about current file.
- n
- Search next.
- N
- Search previous.
- q
- Quit eBook-speaker.
- home,T
- 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 or add a TTS-command one has to edit the file
~/.eBook-speaker.xml by hand and follow the instructions.
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 ~/.eBook-speaker.xml
file:
- 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`"
- ~/.eBook-speaker/
- 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, the desired
reading speed and the name of the desired pulseaudio device.
- ~/.eBook-speaker.xml
- This file, in XML-format, contains the desired OCR language and the TTS's
to use. (See TTS EXAMPLES)
- /tmp/eBook-speaker.XXXXXX
- eBook-speaker makes use of a temporary directory. It is removed after
quitting.
An EPUB-book has two index-files for navigation, a NCX and an OPF
file. eBook-speaker tries to detemine which of these two files give the best
result. But sometimes eBook-speaker is not able to make the best choice.
When in doubt use option "--N" to force the use of NCX or
"-O" to force the OPF.
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), pulseaudio(1),
pactl(1), magic(5), locale(7), usermod(8)
Jos Lemmens <jos@jlemmens.nl>
Copyright (C)2011-2020 Jos Lemmens <jos@jlemmens.nl>
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