Introduction: Google Voice Search-O-Matic
This is a converted old video intercom, with modern search functions added!
It connects to a PC or laptop and lifting the phone handset automatically launches Chrome on the computer and activates Google Voice Search. Speak your search into the handset microphone and the results appear on screen, with audio feedback through the handset's speaker.
I use voice search on my phone a lot and this gives me the same capability on my workshop PC, but using adapted old technology to make it fun!
The first two red buttons are programmable, and are currently set up to Skype call my wife and shut down the PC, respectively. The other red buttons control the inbuilt digital photo frame, which displays a slideshow of appropriate images - one to power it on/off and the other to manually advance the image.
Step 1: The Big Idea
I wanted to reuse this old intercom phone, but in a project more interactive than I'd built before - it sat around for almost a year waiting for an idea. Initially I thought of just putting a photo frame in it for decoration, but after reading this instructable about repurposing keyboard keys and this lifehacker article about Google Voice Search I was inspired!
I found out more about AutoHotkey (which is awesome) and did some experiments using hotkey scripts to launch Chrome and send the Voice Search keyboard shortcut (CTRL + SHIFT + .), which worked well, but which keyboard button to re-use to fire the script? I didn't want to run loads of wires from the existing keyboard, or remap a key that would be needed in everyday use, also keyboard guts would be too big to build into the case. Next I tested it with a mouse, thinking the middle button could be used - this worked too, but I wanted to have multiple buttons!
Reading through the AutoHotkey commands list I spotted that you can use Joypad buttons, and this was the perfect solution - multiple buttons in a small package, using a standard plug & play USB connection.
Step 2: Taking the Things Apart
It was obviously a real stretch designing an intercom to hold a CRT tube & components this size at the time it was sold (Guessing 1970s/80s), and the case was very deep at the back to hold the "tail" of the tube. It dismantled into front and rear sections though, and as the front section alone was 2 inches deep in places I was confident the modern innards would fit.
The digital photo frame was found in a junk box at a sale, but cleaned up OK and snapped apart. Thankfully I kept the case so I could still figure out the button functions later on!
I had the usb joypad already, something I haven't used in years. Dismantling it showed that most of the buttons were pcb-mounted, but the four "trigger" buttons (5-8) were separately wired, so I was able to attach flying leads from their cables to attach to the intercom and phone receiver buttons.
Step 3: Handset Head-Scratching
I wanted the handset to function "properly", so the search command would be picked up by the microphone, with audio feedback ("Here are some pictures of old radios!") in the earpiece. In testing I'd used a webcam microphone, but wanted the finished product to have a normal phone experience. I did some testing with a butchered standard audio lead and got both the microphone and earpiece speaker working, each connected to the PC with an individual 3.5mm plug. I dismantled the phone and traced the coloured leads back through the receiver switch, experimenting with wiring combinations until they functioned properly.
The other thing I wanted the handset to do was to launch the Voice Search script as soon as it was lifted from the receiver, to make the process smooth and save having to press additional buttons. I puzzled over the existing receiver button for a while, and figured it was really just a weird push-to-make switch (I think), held in the "Open" position with the handset down, independently breaking the microphone and speaker circuits. This makes sense, as you don't want them listening or playing audio when the handset is down! There were spare terminals on the switch which followed the same function so I wired in a cable from here to one of the joypad buttons - this would then send the "Joypad Button 5 Pressed" signal to the PC as soon as the handset was lifted and the circuit completed.
Step 4: Paint It Black
I debated using a more interesting colour, but already had a can of direct-to-plastic paint in black, so went with that. I also liked the idea of the black contrasting with the large red buttons.
It sprayed up OK, but the paint was a bit fussy, the surfaces have to be really clean to get a decent finish, which I learned the hard way!
Step 5: Getting Connected
The frame I used needs a button to be pressed to start its slideshow, so I soldered flying leads from the button connectors on the frame's circuit board, for both the "Power Toggle" and "Next Image" buttons - these would be connected to two of the red buttons on the case. The connectors were tiny and delicate so I used blu-tac to secure the cables from jiggling around and breaking the connections.
The frame was hotglued in place, using a plastic surround from another dismantled photo frame to fill in the gaps on either side. I found the large red buttons in the local Maplin store, which helpfully needed a 15mm cutout, the same size as the existing holes in the case.
Below the button-holes were slits for the old volume and contrast sliders, which I split in two using plastic spacers, leaving gaps below each button. I then superglued clear plastic across the holes, and printed out icons I created on the PC to indicate the function of the button above. The icons are backlit by two 5v white LEDs mounted in a u-shaped piece of conduit and powered from the USB port of the photo frame
The stripped-down joypad circuit was connected to the buttons and taped in place, and the cables routed as tidily as possible around the case.
With all the bits fixed into the case the final wires were soldered together and tidied up with electrician's tape. The back cover thankfully covers up the mess!
Step 6: The Scripts
The AutoHotkey scripts turned out to be the easiest part of this build, it's a really simple platform for automating PC functions, quick learning curve but lots of depth and complexity if you need it - the documentation is here, I started by looking at the quick start guide then scrolling the command list for inspiration.
The code of the scripts I used is as follows - some of this has been copied & pasted from examples on the site:
Launch Google Voice Search when the Handset is Lifted:
Joy5:: Run www.google.co.uk/ Sleep 1500 Send,^+. return
Launch Skype and call a contact when the Skype button is pressed
Joy7:: Run C:\Program Files\Skype\Phone\Skype.exe /callto:XXXXXXX return
Close down the PC when the Shutdown button is pressed
Joy8:: Shutdown, 5 return
There's so much you can do with Autohotkey, I especially love the potential of retro hardware & buttons performing specific PC functions alongside a keyboard and mouse.
I considered giving one of the buttons a "Publish Instructable" function, with robot icon naturally - pressing it while on the site could maximise the browser window, move the mouse pointer to the co-ordinates of the "Publish" button and Click!
Step 7: Alternative Engines?
I've used Google Voice Search here - I did do some research on performing the same function with Bing and Ask Jeeves but had no luck - still I included their images on the frame's slideshow for the sake of diversity.
Step 8: Final Testing
With everything secured it was time to test it! The back of the case is flat as I plan to wall-mount it next to my desk in the man-cave, but I brought it indoors and propped it up to take pictures and test it as the light is better. Another benefit of using standard Mic, Speaker and USB connections is that this can be used on different PCs really easily. You can also compile AutoHotKey scripts into .exe files with a couple of clicks, then run them on any computer you like.
The final test: could a 5 year old child use it? I just happened to have one handy - some search results in the images, and a video of it in action with my son taking it for its first post "Hello World" test drive
This build took a while, doing little bits of an evening - lots of individual tasks and some real head-scratching to get ithe individual parts working together just right - I've learned a lot about the potential to control stuff on the PC from hardware switches, as well as how phones work
It's not exactly the kind of product to get featured at Google I/O but there does seem to be a general move to integrate more household objects with our phones and computers, and voice search just keeps getting better all the time - I think when I find an appropriate case at the sales I'll try and build a cordless one next, maybe using a wireless headset and gamepad. It'd be cool to make a splashproof wall-mounted case for quick searching from the kitchen or bathroom when you don't have your phone handy (or have dirty/wet hands) "How do I remove tree sap from hy hands!?".
Step 9: Wall Mounted
Added a couple of pics of it wall mounted in its final location - it looks much more at home here than in the dining room!