The Complete Magazine on Open Source

BookRead: Software that reads books aloud for you

, / 845 0

Book Read

This software is a boon to the visually challenged as well as readers who want to avoid the strain of spending long hours reading text. It can provide the much-needed rest for tired eyes, and the visually challenged need not have to depend on a caretaker to have books read to them.

The revolution began with the Internet, and there was no stopping the pace of change in the online world. Then came e-books, which revolutionised reading habits. There is, however, a clear difference between dead-tree paper and on-screen text. One can comfortably read for hours on normal paper while this is not advised nor safely possible on laptops and desktop screens.
Since I have to read a lot of books and research papers in my field, the online availability of books is a boon, but I find reading on screen a bottleneck. I can only read for so long before my eyes need a rest. This is the issue that BookRead (also called BKRD) tries to solve. It reads books aloud for you.
BKRD depends on the Espeak module for now, but plans to include other more natural speakers in the future. It is as simple to use as it is elegant. In order to read any book, one simply has to get a plain text copy of it. Conversion to .txt files is a simple enough copy-paste job on most operating systems. After that, BookRead takes care of it all.
Let us try and read a sample book which I have in a file called sample.pdf. First, we need to convert this to a .txt file.
1. Open sample.pdf with Acrobat (or any other) PDF reader
2. Copy all the text (Ctrl+A, then Ctrl+C)
3. Open Notepad/Gedit
4. Paste the text with Ctrl+V
5. Save the Notepad/Gedit file (we will assume it is saved as mysample.txt)
Now that we have a text file to read, we need to install BookRead. Let’s use an Ubuntu 14 laptop for this demonstration. Open your terminal window (Ctrl+T, or search for Terminal after pressing the Windows key) and enter the following commands. You might be asked for your user password when executing the commands starting with sudo.

~ $ cd ~
~ $ sudo apt-get install git
~ $ git clone
~ $ cd BookRead
~ $ sudo chmod u+x bkrd
~ $ sudo ln -s bkrd /usr/bin
~ $ sudo apt-get install espeak

The first command makes sure we are in the home directory of the current user. The second gets Git from the Internet. Git is the software used to do version control for the BookRead software. The third command gets the BookRead software from the Internet and stores it in a folder called BookRead. We then navigate to the newly created folder and make the BKRD file executable. Then we make a link to it in the user’s binary folder. As a last step, we install Espeak on the machine to allow BookRead to synthesise sound.
Now, to have the book read out to us by BookRead, open a terminal and navigate to the folder where you saved your mysample.txt file. Since we have saved it on the Desktop, let’s type the following command in the terminal:

cd ~/Desktop.

Next, let’s type:

bkrd mysample.txt.

When BookRead is reading a book, it prints out information about what it is reading. The usual format is:

[Line Number] [% done] [text]

The line number is the line (position) in the book being read. ‘% done’ indicates what percentage of the book has already been read out. The ‘text’ is a truncated and cleaned version of what is being read. With this information, you can control BookRead with a few simple commands.
Pressing the spacebar acts as a Play/Pause toggle. The software completes the current line and then pauses/plays as per the situation. You can stop and go for a tea break, and come back and resume playing.
Pressing the p key prints the entire text of the line being read aloud. This is useful in case you find some words are hard to understand, which is often the case in scientific articles.
Pressing the s key prints the sentence number of the current line. This is the same as the line number already printed on the screen while reading.
Pressing the r key instructs BookRead to remember the current position. The next time you tell BookRead to read the same book, it will continue from this line. It is useful if you are reading a story and want to continue from where you stopped, the following day. BookRead will remember this position and start from here the next time.
Pressing the q key causes BookRead to close. It will print the last line read and remember it. Then it will finish reading the current line and quit after that.
To make BookRead start from a specific line, instead of typing bkrd mysample.txt in the terminal, you can simply type bkrd mysample.txt 501 to make BookRead start from line 501. By default, BookRead starts from the place you stopped reading last.
That completes the general use of BookRead. Hope you enjoy the software. For any complaints, the link can be used.