Update – I’ve done something similar more recently.
Danbri made one of these and I was so impressed I had a go myself, with a couple of tweaks. It’s very easy to do. He did all the figuring out what needed to be done – there’s something similar here which did the rounds recently. Others have done the really heavy lifting – in particular, making tensorflow work on the Pi.
Barnoid has done lovely things with a similar system but cloud based setup for his Poetoid Lyricam – he used a captioner similar to this one that isn’t quite on a pi with python hooks yet (but nearly) (Barnoid update – he used Torch with neuraltalk2.
The gap between taking a photo and it speaking is 3-4 seconds. Sometimes it seems to cache the last photo. It’s often wrong 🙂
I used USB audio and a powerfulish speaker. A DAC would also be a good idea.
Instructions
Image the pi and configure
diskutil list diskutil unmountDisk /dev/diskN sudo dd bs=1m if=~/Downloads/2016-09-23-raspbian-jessie.img of=/dev/rdiskN
log in to the pi, expand file system, enable camera
sudo raspi-config
optionally, add in usb audio or a DAC
Test
speaker-test
install pico2wave (I tried espeak but it was very indistinct)
sudo pico /etc/apt/sources.list # Uncomment line below then 'apt-get update' to enable 'apt-get source' deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi sudo apt-get update sudo apt-get install fakeroot debhelper libtool help2man libpopt-dev hardening-wrapper autoconf sudo apt-get install automake1.1 # requires this version mkdir pico_build cd pico_build apt-get source libttspico-utils cd svox-1.0+git20130326 dpkg-buildpackage -rfakeroot -us -uc cd .. sudo dpkg -i libttspico-data_1.0+git20130326-3_all.deb sudo dpkg -i libttspico0_1.0+git20130326-3_armhf.deb sudo dpkg -i libttspico-utils_1.0+git20130326-3_armhf.deb
test
sudo apt-get install mplayer pico2wave -w test.wav "hello alan" | mplayer test.wav
install tensorflow on raspi
sudo apt-get install python-pip python-dev
wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/raw/master/bin/tensorflow-0.10.0-cp27-none-linux_armv7l.whl sudo pip install tensorflow-0.10.0-cp27-none-linux_armv7l.whl
install prerequisitites for classify_image.py
git clone https://github.com/tensorflow/tensorflow.git # takes ages sudo pip install imutils picamera sudo apt-get install python-opencv
test
cd /home/pi/tensorflow/tensorflow/models/image/imagenet
install danbri / my hacked version of classify_image.py
mv classify_image.py classify_image.py.old curl -O "https://gist.githubusercontent.com/libbymiller/afb715ac53dcc7b85cd153152f6cd75a/raw/2224179cfdc109edf2ce8408fe5e81ce5a265a6e/classify_image.py"
run
python classify_image.py
done!