ebook-speaker(1)
π ebook-speaker(1) π β Linux Reference Manual
okay bestie, sit down, hydrate, and let me tell you about ebook-speaker β a whole icon of a program from the Linux Reference Manual. she reads books out loud. to you. like a tiny robotic bestie with a speech synthesizer. no cap. β¨
πΈ NAME πΈ
eBook-speaker β read aloud eBooks and other text formats using a software speech-synthesizer π£οΈπ
π¦ SYNOPSIS π¦
ebook-speaker [eBook_file | URL | -s [-r resolution]] [-b n | y | position] [-c] [-d audio_device:audio_type] [-h] [-H] [-i] [-o language-code] [-S] [-t TTS_command] [-v]
β¨ DESCRIPTION β¨
eBook-speaker reads your eBooks and other text formats out loud, and honestly? it will even read scanned documents, using a software speech-synthesizer. by default the tool espeak does the talking. π£οΈ
she can also read straight from http://, https:// and ftp:// URLs using the tool wget. and because she's that girl, eBook-speaker can also scan a document by itself using the scanimage application. π
a list of items on the eBook will pop up. press ENTER to start reading. when the reading of an item has finished, eBook-speaker reads the next item and the cursor automatically skips to that item β so an attached braille-terminal will display the name of that item. it's giving accessible AND cute. π«Ά
π OPTIONS π
eBook_file
eBook_fileβ give aneBook_fileas the argument toeBook-speaker. so many eBook formats are supported, it's honestly iconic.eBook-speakeralso tries to read scanned documents through Optical Character Recognition (OCR πβ¨).
π Supported formats
AportisDocAppleSingle encoded MacintoshASCII mail textASCII textawk script textBourne-Again shell script textBroadband eBooks (BBeB)C source textComposite Document File (Microsoft Office Word)DAISY3 DTBookEPUB ebook dataGIF image dataGNU gettext message catalogueGutenPalm zTXTHTML documentISO-8859 textJPEG image dataMicrosoft Reader eBook DataMicrosoft Windows HtmlHelp DataMicrosoft Word 2007+Mobipocket E-bookMS Windows HtmlHelp DataNetpbm PPM dataOpenDocument TextPascal sourcePDF documentPeanutPress PalmOSPerl script textPNG image dataPOSIX shell script textPostScript documentPython scriptRich Text FormatTenex C shell script texttroff or preprocessor text(e.g. Linux man-pages)UTF-8 Unicode mail textUTF-8 Unicode textWordPerfectXML document text
when you don't supply an input file at all, eBook-speaker will bring up a file-manager. see KEYBOARD COMMANDS IN THE FILEMANAGER for the whole vibe. ποΈ
The rest of the flags, mwah
-b n | y | positionβ set the initialbreak_on_EOLor position. this kicks in after quittingeBook-speaker. the setting gets saved and used as the default for future books, and it can be overruled with theb-command for each individual book. see thebcommand below. πΎ-cβeBook-speakerusestesseractfor OCR by default. this option forces her to usecuneiforminstead. switching teams, we respect it. π-d audio_device:audio_typeβeBook-speakerwill play on this sound device of the givenaudio_type. the value must be of the form"audio_device:audio_type". example:"-d default:alsa","hw:0:alsa"or"0:pulseaudio". this option overrules the value in the~/.eBook-speaker/*config file. and bestie, 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-speakernow determines the file-type using thelibmagiclibrary. (it's giving retirement party π)-o language-codeβ the language code for OCR to use. typically an ISO 639-1 two-letter code, seehttps://en.wikipedia.org/wiki/List_of_ISO_639-1_codes. if this option is not specified, the language is determined according to the current locale. π-r resolutionβ by default the option-swill 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 eithertesseractorcuneiform. π-Sβ do not display the phrase-numbers passing during playback. shhh. π€«-t TTS-commandβ be sure that the TTS reads from the fileeBook-speaker.txtand that it writes to the fileeBook-speaker.wav. to add the TTS-command permanently one has to edit the~/.eBook-speaker.xmlfile by hand. βοΈ-vβ be more verbose, so one can see 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"
π SCREEN π
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. aesthetic. π
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
- the current displayed screen and the total number of screens
the next rows display the title of the item, the first page of that item in 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. π«Ά
π CONTROL KEYS π
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-speakerwill 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 forwards.Nβ search backwards.oβ select an output sound device.pβ place a bookmark. πqβ quiteBook-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β decrease playback volume.V,7β increase playback volume. (beware of Clipping β οΈ)wβ store whole book to disk in WAV-format.xβ go to the file-manager.
ποΈ KEYBOARD COMMANDS IN THE FILEMANAGER ποΈ
enter,cursor right,6β starteBook-speakerwith 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β quiteBook-speaker.home,Tβ move cursor to the first file.
ποΈ TTS ποΈ
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.xmlby 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. π
π TTS EXAMPLES π
here are some examples to insert into the ~/.eBook-speaker.xml file:
espeak -f eBook-speaker.txt -w eBook-speaker.wavespeak -f eBook-speaker.txt -w eBook-speaker.wav -v mb-en1espeak -f eBook-speaker.txt -w eBook-speaker.wav -v deespeak -f eBook-speaker.txt -w eBook-speaker.wav -v ptespeak -f eBook-speaker.txt -w eBook-speaker.wav -v nlespeak -f eBook-speaker.txt -w eBook-speaker.wav -v mb-nl2flite eBook-speaker.txt eBook-speaker.wavswift -n Lawrence -f eBook-speaker.txt -o eBook-speaker.wavtext2wave eBook-speaker.txt -o eBook-speaker.wavtext2wave -eval '(voice_en1_mbrola)' eBook-speaker.txt -o eBook-speaker.wavpico2wave -w eBook-speaker.wav "`cat eBook-speaker.txt`"
π THANKS TO π
- Daniel Veillard
daniel@veillard.comβ for the XML2 library. π«Ά - Chris Bagwell
cbagwell@users.sourceforge.net - Rob Sykes
aquegg@yahoo.co.ukβ forsox. - Didier Spaier
didier@slint.frβ for the TTS enhancements. ποΈ
π FILES π
~/.eBook-speaker/β okay bestie this is where your bookmarks live, in XML format β¨. Every single file in here is named after a book, and inside it's keeping track of everything: the name of the current item, the start-phrase of that item, the current level, which TTS you wanted, the reading speed you wanted, the phrase-break point you wanted, and the current sink in the list of available sound devices. It's giving β¨*receipts*β¨, fr fr.~/.eBook-speaker.xmlβ this file, also in XML format, holds a whole list of the TTS's you've got available π. (peep the TTS EXAMPLES section if you wanna see how it's done, iykyk)/tmp/eBook-speaker.XXXXXXβ eBook-speaker makes a lil temporary directory for itself here π«Ά. It gets yeeted the moment you quit. No leftover mess, no cap π .
π NOTES π
So an EPUB-book has two index-files for navigation: a NCX and an OPF file. eBook-speaker tries its absolute best to figure out which one of these two gives the best result π§ β but sometimes it just can't make the best choice, and that's not a vibe π.
When in doubt, use option--Nto force the use of NCX, or-Oto force the OPF. Periodt.
π SEE ALSO π
The friend group of other programs that hang out with this one π:
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), amixer(1), alsamixer(1), magic(5), locale(7), usermod(8)
π AUTHOR π
Jos Lemmens <jos@jlemmens.nl> β the icon, the legend, the moment π
βοΈ COPYRIGHT βοΈ
Copyright (C)2011-2021 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 π«Ά
<div align="center">i know that's a lot of caps lock bestie but it literally means what it means π</div>
okay that's the whole page!! you read ALL of it, main character energy fr π
β¨ this was ebook-speaker-6.2, dated 02 February 2026, and honestly? iconic. go read a book, you earned it πππ¦
π¦ where this page comes from
- ubuntu resolute: ebook-speaker 6.2.0-7build1 Β· GPL-2.0-or-later
- ubuntu stonking: ebook-speaker 6.2.0-7build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms