I am a programmer in the US who is looking for someone to collaborate with in developing an open-source Audio Book player for Android. I need this personally for my own use, since I have a progressive vision impairment and now listen to all my books. The primary missing feature of existing applications is high quality voice output at high speed, meaning more than 2X speed up. Osplay works, but the distortion is unacceptable at 2X and above. I speed-listen to audio books at 3X and faster. I would like to make this open source so that other people with vision impairments may benefit from the work. I have written the JNI interface to libsonic, an open-source speech speed up library I wrote. Libsonic's home page is:
[url removed, login to view]
I would like to hire a Java programmer skilled at Android GUI development. For comparison, check out the Ambling Book player, which is good enough, except for the lack of speed control. An initial version needs to present a list of audio books on the phone so I can select which one to play. This should lead to a chapter list, so I can select the chapter to play. Each chapter will be an MP3 encoded audio file, but I'll take care of the decoding in C so I can speed up the speech with libsonic. All I really want help with is the Java GUI code. The player needs the following controls, similar Ambling Book player:
- Title of book, in a button to go to the library
- A chapter title, in a button to go to the chapter list
- A slider to select a place in the chapter
- Two buttons to go forward/backward 20 seconds
- Two buttons to go forward/backward one chapter
- Two buttons to increase/decrease the speed
- A Play/Pause button that changes to indicate whether we're playing or paused
- Time indicator showing total progress in the book in hh:mm:ss format
- Time indicator showing progress in the chapter in hh:mm:ss format
We'll do this in multiple stages. The payment for this project will be for completing the first stage. The first stage is to create a working audio book player without using any JNI plug-in. Instead just use the standard media player classes. Audio books will be mp3 files in a directory which is the book name, and mp3 files will be chapter-name.mp3. The speed buttons do not need to do anything in the first stage, other than set a variable. Keep the GUI simple for the first stage.
The first stage will be considered complete when I'm able to install and the audio book application on my Google Nexus One phone and listen to librivox audio books that I copy onto the phone using the features described above. I'll need the full source for the project, which I will copyright as myself (but give you credit as author) and put on github under GPL v2 license.
Once the first stage is completed and paid for, I will modify your Java code to use my JNI interface to load and speed up the mp3s. I will make this app available for free through Google's Android Market.
If the first stage goes well, we might do a second and even a third stage. The second stage might focus on nicer looking GUI with some animations and/or skins. We might enhance it to also have an e-book reader screen where we use the TTS sub-system to read and my JNI to speed up speech to faster than the TTS system normally goes. This is a very important feature to vision impaired speed listeners. We might integrate support for browsing and downloading librivox audio books and [url removed, login to view] e-books. As Android tablets become popular, I may want the GUI overhauled to work better on tablets, and the e-book capability will become more important.