Paul's Programming Notes     Archive     Feed     Github

Raspberry Pi Text To Speech IRC Service

These are my notes for installing Eastein's announce. It's a IRC bot that will receive a message and do text to speech on the message: https://github.com/eastein/announce

Installation:

  1. Download announce and extract it to it's own folder.
  2. apt-get install python-irclib
  3. apt-get install python-pip
  4. sudo apt-get install python-dev
  5. apt-get install festival festlex-cmu festlex-poslex festlex-oald libestools1.2 unzip
  6. apt-get install speech-tools
  7. pip install pyzmq --install-option="--zmq=bundled"
    or (if you have easy_install installed):
    easy_install pyzmq
  8. download mediorc and move mediorc into directory
  9. easy_install dnspython
  10. apt-get install mplayer
  11. apt-get install sox
  12. Fix permissions:
    chmod 777 saypitchprase
    chmod 777 pitchphrase2wav

Running The Program:

Run process in background by starting a screen (first navigate to the Announce folder):
  1. (start a new screen)
  2. python announced "tcp://*:4900"
  3. (detach from screen)
  4. (start a new screen)
  5. python announcebot "chat.freenode.net" "voicebot" "#yourircchannel" "tcp://0:4901"
  6. (detack from screen)
Starting the program using mp3 files in the JSON file (as always, start in the folder which has Announce):

  1. wget http://fake.com/fake/eye_tiger.mp3 (use a real URL with an mp3 file)
  2. nano default.json
  3. enter into the json file: [ ["eye of the tiger", "eye_tiger.mp3"] ]
  4. ctrl+x and save
  5. (start a new screen)
  6. python announced "tcp://0:4900" default.json
  7. (detach from screen)
  8. (start a new screen)
  9. python announcebot "chat.freenode.net" "voicebot" "#yourircchannel" "tcp://0:4900"
  10. (detach from screen)
  11. now "!say eye of the tiger" in the IRC channel will trigger the mp3

Troubleshooting:

Ensure your Raspberry Pi audio is working: http://jeffskinnerbox.wordpress.com/2012/11/15/getting-audio-out-working-on-the-raspberry-pi/

Testing Festival (create a text file named mytext.txt with some words first):
echo "This is a test." | festival --tts
echo "this is a test" > mytext.txt
text2wave -o myaudio.wav mytext.txt
aplay myaudio.wav

adjust the volume:
http://blog.scphillips.com/2013/01/sound-configuration-on-raspberry-pi-with-alsa/
or use amixer?