12

My first post here. (I sincerely hope it's within the scope of allowed posts I didn't know where else to turn).

I plan to do a project for a ninety-year old mother who is rapidly losing her eyesight and leads a relatively cheerless life.

She sits alone at home watching basic cable and doesn't have an internet connection. She has a huge remote control with 60 tiny buttons and is basically confused by the whole thing.

I just want to put on a hard disk a library of films and/or audiobooks so that she can navigate through them and watch at her leisure.

I've decided she needs a simple joystick with 6 large configurable buttons. I would need to find out some way that titles might be automatically read to her (as she scrolls down prior to selection).

A GUI providing HUGE text on the monitor might suffice...but I believe the text-to-speech feature might be the most difficult problem.

If the titles are read to her, a GUI is almost a moot point.

XBMC, I see, has some text-to-speech features...although I cannot determine whether it would be something that would require her sight to navigate through the interface to "get to" the content. (Further, I cannot determine whether the menu itself is read by the gui--allowing for "sightless" navigation)

I need a GUI to open with a list immediatey upon booting (through which she can simply scroll and select content).

My simple question is whether it is possible with the PI and whether it seems like this is an achievable goal.

On the off-chance that someone could point me in the right direction, I would endlessly appreciate it.

Many thanks.

  • Have you tried to search for "speech" on this Forum. There are a few links (I haven't actually tried any) e.g. raspberrypi.stackexchange.com/questions/1015/… – Milliways Nov 24 '15 at 0:07
  • I am not sure if you have posted this on the Rapsberry org forums. If you have not then do so, it is the sort of question which is asked there reasonably often. – joan Nov 28 '15 at 13:53
  • Although there is a tag for "speech-recognition" there was not the reverse for "speech-generation" which is a discrete topic itself. It is part of what is often referred to as "text-to-speech" (the second part) and all of these are often associated with matters that are generally referred to as "accessibility" that relate to making things easier to use for both fully capable humans and also those who have some degree of impairment who may require additional functionality to achieve the same results. This answer has been used to create these three tags. – SlySven Dec 23 '15 at 3:40
  • 3
    I love the idea of this project so much, I have just nominated it for the Best Original Raspberry Pi Project Idea in the Christmas Give-away competition on Raspberry Pi Meta. – Phil B. Dec 25 '15 at 13:53
  • 1
    To all who have posted: I am very touched and encouraged by the response to this. I am a neophyte and have never seen a PI with my own eyes. I'm very grateful for the kind responses and have renewed my resolve to pursue this because of them. I have also shared the news with my mom--who says she prefers apple to raspberry pie and doesn't really know what I'm talking about anyway...but that's that's alright for now :) . – LeoFib Dec 27 '15 at 20:20
8
+50

I am not sure how to make the gui, but I know how to do text-to-speech. You can use espeak:

sudo apt-get install espeak
espeak 'Hello world'

By default, espeak's voice is hard to understand (for me). To find a voice, use:

sudo apt-cache search espeak

Then, find a voice. Install it. Then, run

man espeak

to find how to change the voice. It should be simple.

Here is an example of something I made using espeak: https://github.com/Merlin04/robotthingy

Edit: I think you could make a GUI with Kivy. It uses python.

7

I only have limited experience with XBMC but strongly believe that that might already be over-complicated for 'the target audience' (this 90-year old woman).

However, I believe that this project is most certainly achievable on a RasPi. As I'm a webdeveloper I would suggest to build a simple webapp. I have no clue whatsoever if something like this exists, but I can't imagine it to be too hard to develop.

Basic idea:

  1. RasPi with Raspbian.
  2. Webapp running apache.
  3. Some backend (PHP for example) indexes the files on the hard disk, formats the name to some readable format and outputs them as a list.
  4. Use javascript to control the joystick-input and make the titles of movies/books be read with the HTML5 Speech Synthesis API (example: http://creative-punch.net/2014/10/intro-html5-speech-synthesis-api/).
  5. On selection of a movie/book, simply open the file in the browser. (This way you won't have to open a new window so she can just return to the menu by pressing the back button.)
  • OSMC (kodi) exposes some rest api. Maybe you could use that to build your own front-end/gui. However I agree with Rien that this sounds overly complex for your audience. I don't suppose a human could be near to assist with starting/stopping audiobooks for her? – Havnar Dec 28 '15 at 13:17
  • Hi Havnar, Nope, actually. She's got two dogs in the house and that's just about it... One thing I neglected to mention, I believe, is that she doesn't have an internet connection either. – LeoFib Dec 30 '15 at 0:51
  • Okay a few Qs. I'll keep them short due for brevity's sake. 1) RasPi 2 for this, correct? 2) What OS would you recommend for this? 3) Do you think this would be doable without WIFI? --She has no net connection, alas. 4) Apache is used to run a server or is it an OS? 5) Should I begin to familiarize myself with linux and its commands to prepare myself? Here's one idea: youtube.com/watch?v=NCVWX4suGE4 What do you think? Should I just go with a generic RPI 2 kit? --Many thanks and Happy New Year. – LeoFib Dec 30 '15 at 2:47
  • 1
    1) the pi2 is a lot more powerful, this will benefit you either way you go. 2) raspbian is the most user friendly one and most used, so easy to find guides and help on 3) you can have wifi without an internet connection, wireless setup is not needed if you go with an infra red remote 4) you can use lots of web servers apache beeing a widely used one 5) yes, a useful skillset none the less ! 5B) you can start of with a pi2 with sdcard, hdmi cable, power adaptor and start playing with it. Some application development skills can ofcourse be handy. – Havnar Dec 30 '15 at 11:41
  • 1
    I have a someone different view on things than Havnar I guess, so my answers here: 1) Not necessary, 1B should be powerful enough too I think, but 2 is safe nonetheless 2) Raspbian indeed, most known thus most support 3/4) Apache is webserver software, thus you can run your own websites on a system (raspi in this case). Meaning that you don't need an internet conneciton at all since the webpage will be running on your RasPi. 5) Yes, some basic commandline is useful to get raspbian and apache running I think. – Rien Heuver Dec 30 '15 at 21:18
4

I have done some light digging for you since most things can become overly complex fairly quickly for your target audience.

From my personal experience, buttons and gui's (no matter how simple in your dev eyes) can come across as confusing to the elderly.

I don't know how good your skills are with (web) development, or if you can get a skilled dev motivated to help you achieve your goals, but simplicity to the end user is key here.

There fore "The One Button Audiobook Player" might be what you are looking for. Or maybe an adaptation to it.

extract below:

It basically consists of:

1 Raspberry Pi
1 ModMyPi enclosure
1 button
2 resistors (330 Ohm, 10 Kilo-Ohm)
1 blue LED
1 (slow) 8GB SD-Card
some wire
a pair of speakers

The following software has been used:

Raspbian minimal image (http://www.linuxsystems.it/2012/06/raspbian-wheezy-armhf-raspberry-pi-minimal-image)
mpd (music player daemon)
mpc
mpd-python
pyudev (for USB access)
a self-written python script

The features are the following:

  • always on: When you power on the raspberry, it will boot up and start the python script with the audio book in pause

  • one button usage: The button pauses and unpauses the audio book or goes back one track when you press the button longer than 4 seconds

  • remembers position: It will always remember the last played position

  • only one audiobook: There will always be only one audio book on the Raspberry

  • easy audio book deployment: When you plug in a USB thumb drive with a special name/label, the Raspberry will stop playing, mount the thumb drive, deletes the old audio book, copies the new one, rebuilds the playlist and – after unplugging the thumb drive – starts the new audiobook in pause mode

  • multi format: Since it uses mpd, the player supports Ogg Vorbis, FLAC, OggFLAC, MP2, MP3, MP4/AAC, MOD, Musepack and wave

>>> source <<< --- all credit goes there!

github link

  • Using a Joystick one might be able to expand the control interface if it is done carefully to present a consistent and simple UI for the target audience - one commentator on the linked-to site noted that it only remembered the playing position whilst the RPi was powered - that may be something to revise - though I am sure when I did some experiment with a LAN music server the mpd remembered where it was in a long play-list, mayhaps there is an option for it... – SlySven Dec 30 '15 at 15:14
  • There is no reason to not leave a pi powered, its better for the Pi's sd card anyways, its not build to be shut down. – Havnar Dec 30 '15 at 17:57
  • "...its not build to be shut down." Perhaps it is better to say, "it is not tolerant of having power removed without being properly shut-down." - A UPS for a Pi I have has the facility to start-up and shutdown the Pi on a timer cycle of anything between 2-1000 minutes ON and 2-1000 minutes OFF - which would have applications in time-lapse photography - and there is no indications that this is inherently harmful - though I agree that the SD Card might "wear-out" a little faster from those extra log-file writes. – SlySven Dec 30 '15 at 20:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.