Thursday, November 25, 2010

Talk to me baby




I finally got running on my n900 code that converts text to voice. For it, I'm using eSpeak, which "is a compact open source software speech synthesizer for English and other languages, for Linux and Windows."
Today I will explain the steps I took to accomplish this.
One can first check out examples of this software in action by downloading from the application manager of the n900 espeak applications. I downloaded the server and the client, which includes a nifty UI with some mad and sexy lips MMMMm!
If you want to create your own application that does similar things to what eSpeak does,one must:
  1. Install PortAudio. Download PortAudio from: http://www.portaudio.com/download.html But pick the 18th version portaudio_v18_1.zip, since the 19th one has problems with the code from eSpeak and you will get many random errors. ( A coffee and a beautiful afternoon later I figured that out :(
  2. Copy the zip file to your scratch box and unzip it with:
    unzip -a portaudio_v18_1.zip
  3. Then do: ./configure && make
  4. type:make install
  5. type:ldconfig
With that you should have portaudio working within scratchbox, and you are now ready to start working with eSpeak!
  1. Download eSpeak from http://espeak.sourceforge.net/download.html. I personally picked the latest stable version they were offering.
  2. Uncompress it and move it to scratchbox .
  3. Enter the src folder and the easiest thing to do is to modify the Makefile, change the binDirectory and the LibDirectory so it points to where you have your PortAudio folder. In my case, I changed it to something like:
    BINDIR="/home/saiphcita/portaudio_v18_1/bin" and
    LIBDIR="/home/saiphcita/portaudio_v18_1/lib"
  4. Type: Make

With that you should have been able to compile eSpeak, you can now send to the n900 the eSpeak binary you have just created, execute it and test it out!
You can now modify the code and do as you please n_n.
i'm using this for an awesome eyes free application! =D (you know because instead of having to display the text or what not to the user, one can now read back to the user, and allow for their eyes to concentrate on more important things, such as driving or their lover's lovely smile! <3 ;)
Let me know if you have any troubles and we can try to solve them.