This is the first demo of the phone more-of-less complete. You can see a video over at my facebook page. Apologies for those who don’t use facebook, but the raw video is too big for wordpress to handle.
After the demo, I decided that it was time to tear the phone apart and try interfacing with the phone hardware. Below you see roughly how the parts fit together inside the phone.
The guts of the phone
There isn’t a lot of room in there to maneuver, but I managed to get the switches for the hook (the bar in the back) and the PTT button (the leaf switch in the center) hooked up for XIO-P6 and XIO-P7 respectively. It looks like:
The wires for the hook switch and the PTT button.
It ain’t pretty, and the wires don’t stay in very well, but once it’s all wedged into the phone, it works reasonably well.
My first pass at having the code react to these switches is pretty crude, but I have an idea of how to improve it.
So, after a several month hiatus, I’m back at it. I managed to get all the parts into the phone, though to make room I had to remove the bells from the ringer mechanism, which makes me sad.
You’ll notice the USB cord hanging out the back: that’s for charging the on-board 1,100 mAh LiPoly battery (and gives me a serial console if I plug it into my laptop or desktop), but the phone can run for hours without charging.
The software remains problematic. The speech recognition is still hit-or-miss. I need to give it more context about what words are likely, and to do that I think I’m going to have to implement a z-code interpreter in python, but that’s a non-trivial undertaking.
So it turns out that the transformer wasn’t necessary. I broke out a pocket oscilloscope, and it boosted the voltage from 1.5V pp, to 7.5V pp, and the resulting volume in the earpiece was VERY LOUD, so I tried without the transformer, and it worked perfectly, and at a much more reasonable volume with the alsamixer controls on the computer set to mid-range.
Since that worked so well, I decided to try hooking the phone’s mouthpiece/mic straight up to the mic jack, and that worked like a charm as well. I was able to play the game with only a few problems with the STT engine due to slightly noisy input. I think I can tune that away using alsamixer again.
Lesson learned. A standard, cheap sound card/dongle is capable of interfacing with an old phone directly.
Here is a mostly complete list of offline text-to-speech engines I have at my disposal. I have cleaned up the text somewhat from the last time, so they should be easier to understand. Let me know what your favorite is in the comments.
Espeak is a very robotic, but relatively lightweight engine:
Festival is a quirky, but also lightweight engine. It was developed at the University of Edinburg, so it has a distinctly Scottish accent, which is cool:
Pico was developed by a company called SVOX, and was chosen by Google to be the voice of Android 1.6 “Donut”:
There is also Festival Light developed at CMU, it has a variety of voices available to it:
Wow, it really has been a while, but improvements in technology have given me an idea of how to improve upon the original Dial-a-Grue phone.
The idea is to use a small embedded computer, this time a $9 “chip” computer and actually embed it into a gutted phone. From there I can use text-to-speech (tts) and speech-to-text (stt) engines to allow you to play Zork, Adventure, and a variety of other games just by listening to the descriptions in the handset and speaking the commands back to the phone.
I’ve already got a passable prototype of the software running by building modules for Jasper. I’m using the pocketsphinx stt engine currently, and the results are acceptable, but not stellar. I’ll try to get some samples up soon.
It’s been a while since I’ve posted. Once the Maker Faire was over, I kinda lost steam, but it’s time to sum up. It was great to see all of you out there, and I had a great time showing the device off.
I got a little media coverage. HackADay wrote up a short piece, and that lead to a small write-up in Engadget. I appreciate the notoriety. I don’t know who this “Ulysses” is, but it’s not me. My name is Mitch, and you can contact me at email@example.com.
More importantly, Dial A Grue will be displayed at the upcoming Penny Arcade Expo. I won’t be there, but the folks from the Digital Gaming Museum have agreed to take it up and display it. They hope to have to functional, so that you can actually play it. Feel free to tell me if you see it.
That’s all for now. Maybe I’ll write up some more soon.
This post is long overdue. The hardware has been complete (enough) for weeks now, and the software has been improving incrementally. It is the impending arrival of the Maker Faire that finally prodded me enough to finish writing this up. I’ll be there showing this off. Here’s what the completed project (mostly) looks like: (more details after the break)