Fenrir is a promising new user mode screen reader. It is primarily written in python 3. Here are my instructions to install it on a raspberry pi.
I am assuming that you are using RASPBIAN JESSIE LITE and are at a terminal prompt.
Updating your installation
You must update your installation of raspbian otherwise components like espeak will not install correctly.
sudo apt-get update
Let the update finish. The above command just fetches the listing of packages that need to be updated. Now do the actual upgrade.
sudo apt-get upgrade -y
This is going to take a while to complete.
You now have to install several dependencies for fenrir to work.
Espeak
This is the speech synthesizer fenrir will use.
sudo apt-get install libespeak-dev
Python 3
sudo apt-get install python3-pip -y
Fenrir is written in python 3.
The python daemon package
sudo apt-get install python-daemon -y
A package that allows fenrir to run as a service.
evdev
sudo pip3 install -evdev
A python package that handles keyboard input.
The speech-dispatcher package
sudo apt-get install speech-dispatcher -y
The above package is required to get fenrir to talk to a speech synthesizer such as espeak.
The ConfigParser package
sudo pip3 install configparser
You may need this dependency to parse the fenrir configuration file.
A module for checking spelling
sudo apt-get install enchant -y
sudo pip3 install pyenchant
An optional package to handle spell checking.
Git
sudo apt-get install git -y
Git is a version control system which you will use to pull down the latest source code of fenrir.
It is now time to install fenrir. Execute the following command.
git clone https://github.com/chrys87/fenrir.git
You now need to start configuring the pi for fenrir to work.
Execute the following command.
sudo spd-conf
You will be asked a series of questions. The main thing you need to change is the kind of sound output technology to use. You need to use alsa if you are using the 3.5MM headphone jack of the pi like I am doing. When you are asked about using pulseaudio type “alsa” without the quotes. Hit enter to move to the next prompt after each question. Do not forget to adjust the speed and pitch to your liking.
You now need to test your speech synthesizer configuration. Do ensure that you have your headphones or speakers ready.
sudo spd-say testing
If you hear the word “testing” you are good to start fenrir. If not, look through your logs and seek support.
To start fenrir, execute the following command.
Warning: You will need to change terminals once you execute the below command so you may want to open a new terminal and keep it handy.
Assuming you are in your home directory type the following commands.
cd fenrir/src/fenrir
sudo python3 ./fenrir
You should hear a stack of startup messages which signifies that fenrir is running.
Usage
I am still playing with fenrir therefore cannot comment much. The key bindings appear to be similar to those of the speek up screen reader. If you want to check them out, take a look at the config file in your installation directory or at the following link.
There is a tutorial mode available accessed with the fenrir key and h. The fenrir key is the insert key by default.
Acknowledgements
Thanks to the following people for helping me get fenrir talking and for raspberry pi advice.
Michael A. Ray
Storm Dragon
Other members on the IRC channel called #a11y at the Server: irc.netwirc.tk; specifically:
PrinceKyle, Jeremiah, chrys and southernprince.
Tess says
Hi Pranav! Is there a direct email address I could reach you at with a tech-related question?? Thank you so much!
Pranav says
Hi, there is a contact form on techesoterica.com
chrys says
Howdy my frind,
I just need to make a comment on your wonderfull tutorial.
I currently working hard on improving fenrir.
points for version 2.0 are:
– PTY input/screen driver (to make fenrir work on terminal emulators and BSD)
– Braille
– autodetect plugged devices
– Event Based/ Multi threaded
– Generic Speech Driver
– I18n
– improve accuracy
and a lot more…
I currently write an user manual:
https://a11y.ga/fenrir_user_manual
Can i link to your article in my manual in install section? Or maybe you want to help writing the documentation ;)?
Anyway, i m also interested in what you think abour fenrir. Can you give me some feedback? whats good? what needs to be improved? (i know there is a lot to improve lol, its still a very young project).
by the way really interesting blog.
cheers chrys
Pranav says
Hi Chrys,
Many thanks for your message. I am still testing fenrir and will get back to you with feedback. The first thing to be improved is the installation procedure. We need a way to have a more automatic installation. You are free to link to my post and I’ll checkout the manual you are writing. Thanks for starting this project. It is very significant that we have a screen reader now working in user space.
Richard says
I am Still trying to get it working but still have no luck. A more guided installation process and automatically installation of missing dependencys would be very helpfull. Some of the dependencys in this article are unavailable from my distro as it seems.
Pranav says
Hi Richard,
I need to update those instructions. They worked for earlier versions of raspbian on a raspberry pi 3. I got fenrir working about 8 hours ago on my raspberry pi 4 on raspbian buster aftr a bunch of packages got updated. A better approach for you would be to clone the fenrir repository and then do a sudo pip install -e requirements.txt from the folder which git has created. That should pull all the dependencies down. It may fail to pull the right version of espeak which is what happened to me so let me know where you get stuck. What Linux distribution are you using?