Here is small video that explains what I have managed to build:
Remove these ads by
Signing UpStep 1: Get Device's Components
Vintage phone for project enclosure. I was very attracted by the esthetics of this old device. Mix of materials, rich textures and shapes certainly add to the experience. I found a reasonably priced candlestick phone and a ringer box on eBay.
Archos 28 as a driving device. Archos 28 is a reasonably priced tablet that has all the features I need: 4Gb of internal memory, Wi-Fi, microphone, audio out and 800Mhz CPU.
One might ask: why not use a micro controller and a set of chips? It looked a bit simpler and more efficient to use Archos 28, as it has all components on its board and also comes with OS Android. Since my phone has to work 24/7 it has to remain plugged in all the time, so power consumption is not an issue.
IOIO Board to interact with hardware. IOIO Board is an amazing device: it plugs into Android device via USB. Android device discovers it as an ADB host. There is a nice little API that allows any Android application read line state (either digitally or do analog read) and generate either digital or PWM signal on a line.
One might ask: why not use Android ADK? Unfortunately, ADK has been added only in Android 2.3. Archos 28 is running 2.2.










































Visit Our Store »
Go Pro Today »




I found an old phone at the Goodwill, but the wall current wouldn't power the ringer anymore.
I like it very much, good work!
With kind regards,
Horatius Steam
It sounds like adding contacts could be a laborious affair, though, can you train additional names without having to take it all apart? I guess getting your friend to record new names every time you meet new people could be the hardest step anyway :)
You are also right, adding new contacts is a lot of pain. I think that if I find that I add new contacts all the time, I would update language model with a list of default names. That would ensure easy recognition. I would also have to put capability to revert to robotic voice if name is not found.