How to Upgrade Jasper’s Voice Recognition with AT&T’s Speech-to-Text API

Jarvis upgrade

Jasper is an open-source platform for developing always-on voice-controlled applications — you talk and your electronics listen! It’s designed to run on a Raspberry Pi. [Zach] has been playing around with it and wasn’t satisfied with Jasper’s built-in speech-to-text recognition system. He decided to take the advice of the Jasper development team and modify the system to use AT&T’s speech-to-text engine.

The built-in system works, but it has limitations. Mainly, you have to specify exactly which keywords you want Jasper to look out for. This can be problematic if you aren’t sure what the user is going to say. It can also cause problems when there are many possibilities of what the user might say. For example if the user is going to say a number between one and one hundred, you don’t want to have to type out all one hundred numbers into the voice recognition system in order to make it work.

The Jasper FAQ does recommend using the AT&T’s speech-to-text engine in this situation but this has its own downsides. You are limited to only one request per second and it’s also slower to recognize the speech. [Zach] was just fine with these restrictions but he couldn’t find much information online about how to modify Jasper to make the AT&T engine work. Now that he’s gotten it functional, he shared his work to make it easier for others.

The modification first requires that you have at AT&T developer account. Once that’s setup, you need to make some changes to Jasper’s mic.py module. That’s the only part of Jasper’s core that must be changed, and it’s only a few lines of code. Outside of that, there are a couple of other Python scripts that need to be added. We won’t go into the finer details here since [Zach] goes into great detail on his own page, including the complete scripts. If you are interested in using the AT&T module with your Jasper installation, be sure to check out [Zach's] work. He will likely save you a lot of time.

 

Controlling RC Toys With The Raspi

signal

An interesting trick you can do with a a fast CPU and a GPIO pin mapped directly to memory is an FM transmitter. Just toggle a pin on and off fast enough, and you have a crude and kludgy transmitter. [Brandon] saw a few builds that turned a Raspberry Pi into an FM radio transmitter and realized a lot of toy remote control cars use a frequency in the same range a Pi can transmit at. It’s not much of a leap to realize the Pi can control these remote control cars using only a length of wire attached to a GPIO pin.

The original hack that turned a Pi GPIO pin into an FM transmitter mapped a GPIO pin to memory, cycled through that memory at about 100 MHz, and added a fractional divider to slightly adjust the frequency, turning it into an FM transmitter. Cheap RC cars usually listen for radio signals at 27 and 49 MHz. It doesn’t take much to realize commanding RC cars with a Pi is possible.

The only problem with this idea is that most RC cars use pulse modulation. For an RC transmitter to send the command for ‘forward’, a synchronization pulse is sent, then a series of pulses and pauses. The frequency doesn’t change at all, something the originally FM code doesn’t do. [Brandon] realized that if he just moved the frequency up to something the RC car wasn’t listening to, that would register as a zero.

All that was left was to figure out the command codes for his RC truck. For this, [Brandon] decided brute force would be the best option. Armed with a script and a webcam, he cycled through all possible combinations until the webcam detected a moving truck. Subtlety brilliant, if you ask us. Of course more complex commands required an oscilloscope, but now [Brandon] has a git full of all the code to control a cheap RC car with a Pi.

Original NES Guts Upgraded with RetroPie

NES RetroPi

If you have an old broken NES lying around and have no idea what to do with it, you may want to check out [snoius's] latest project. He replaced the guts of his old NES with a Raspberry Pi. [snoius] started out by removing most of the electronics from his original NES to make room for the Pi. He left the original control panel board so he would be able to use the original power button and power LED. The NES power switch is an on/off toggle switch. [snoius] decided to just route the 5V USB power input directly through this switch. The result is a hard power switch for the tiny computer. The original power LED is wired up to the Pi’s 3.3V GPIO header through a 330 ohm resistor. Now when the Pi has power, the LED lights up.

The next step was controllers. It looks like [snoius] is using some USB SNES controller clones. He wanted to use the original NES controller ports but obviously the NES did not utilize USB. [snoius] used a saw to cut the backs off of the controller ports, leaving a flat surface. He then used a utility knife to carve out a hole in the shape of a female USB port. He mounted some ports in place and then wired the inside up to some short USB cables with male ends. These were plugged into a USB hub that is hidden inside of the NES case.

The Pi is also hooked up to a short HDMI cable and a short power cable. The loose ends of the cables are mounted to a small block of wood. Notches are cut out of the wood to better fit the cable ends. The rear of the NES has two holes cut out where the original connectors used to be in order to accommodate the new connectors.

With all of the hardware taken care of, [snoius] still needed a way to actually play his games. That’s where RetroPie saved the day. RetroPie is a Linux distribution for the Raspberry Pi that is specifically created to make it easy to play old video games. It includes emulators for many old systems including NES, SNES, SEGA Genesis, Gameboy, etc. [snoius] installed RetroPie onto an 8GB SD card and copied over all of the ROMs he could find. The end result is what appears to be an original NES at a glance, but is in fact multiple retro gaming systems in one. It also contains hundreds of video games in on board memory instead of requiring a large library of physical cartridges.

[via Reddit]

Wiimote Controlled Extermination: Dalek-Style

Dalek Build

Convention-goers have likely strolled past a number of Daleks: the aliens drive around the event space, spouting threats of extermination and occasionally slapping folks with a rotating eyestalk. [James Bruton] has been hard at work building this Wii-remote-controlled Dalek with his fellow hackers at the SoMakeIt Hackerspace (you may remember our write-up from earlier this year).

Most Dalek builds seat a driver inside the body at the helm of a salvaged electric wheelchair, where they plunk around using a joystick control and simmer in an increasingly potent aroma. This version started like most, with a wooden structure from plans sourced at Project Dalek. Inside, however, [James] and his crew have tapped into the wheelchair’s motor controller to feed it a PWM signal from an Arduino Shrimp, which is linked to a Raspi. The Pi receives a Bluetooth signal from a Wiimote, and, through their custom Python script, directs the Dalek with ease.

They’re still working on finishing the Dalek’s body, but they’re using some clever tactics to push onward: using a 3D-printer to solve some of the nuanced styling choices. They’ve uploaded a gallery with additional photos on Facebook, and you can watch them goofing around with their creation (losing their balance and nearly exterminating themselves) in a video after the break.

[Read more...]

HAL is Duct Tape for Home Automation

HAL Home Automation

When it comes to home automation, there are a lot of different products out there that all do different things. Many of them are made by different companies, and they don’t often play very well together. This frustration ultimately led [Daniel] to develop his own Python based middleware solution to get these various components to work as a single cohesive system. What exactly did [Daniel] want to control?

First up was the door lock. [Daniel] lives in an apartment building, so there are actually two locks. First, a visitor must be allowed into the building by pressing a button on the intercom system in the apartment. Second, the apartment door has its own dead bolt lock that needs to be opened and closed. [Daniel] was able to control the building’s front door using just a transistor hooked up to an Arduino to simulate the press of the physical button. The original button remains in tact so [Daniel] can still easily “buzz” in a visitor.

The apartment’s dead bolt was a bit trickier. There are off-the-shelf solutions to control a dead bolt, but they are often expensive. [Daniel] built his own solution using a simple servo motor bolted to the door. The servo is controlled by the Arduino which is in turn controlled via two broken intercom buttons that already existed within the apartment. The buttons were originally used to either speak to or listen to a visitor before buzzing them into the building. They had never worked for [Daniel] so he re-purposed them for his own project. The whole DIY door locker is enclosed in a custom-made laser cut wooden box.

Click past the break for the rest of [Daniel's] story.

[Read more...]

Never Miss a Thing With This Programmable Vacuum Fluorescent Display Ticker

VFD Ticker

[Coyt] wanted a more convenient way to keep up to date with the ever-changing Bitcoin exchange rates, as well as weather and other useful information. He realized that the vacuum fluorescent display (VFD) he had purchased a couple of years ago would be perfect to display small amounts of information.

[Coyt] discovered that the VFD had a serial interface. The problem was that the VFD was looking for a 12V serial signal but the Raspberry Pi he wanted to use runs at a 3.3V. Upon closer inspection [Coyt] discovered that the VFD actually ran at lower levels as well, but it had a level converter chip installed in front of the main connector. He simply bypassed the level converter and was then able to get the RasPi speaking directly to the VFD.

The brain running this display is a Raspberry Pi. The Pi runs a Python script that pulls down all of the relevant information from the internet and displays it on the VFD. [Coyt] didn’t stop there, though. He knew that having the screen on all of the time would be somewhat of a waste, so he hooked up a PIR sensor to automatically turn on the display only when needed. The PIR sensor can detect motion in the room and will disable the display after a set period of inactivity. Most of this is powered by an LM7805 voltage regulator. While [Coyt] admits a linear regulator is not his ideal solution, it does get the job done. The metal stand acts as a nice heat sink for the regulator.

[Coyt] also wanted his project to have a certain aesthetic. He started by bending a metal plate into a stand for the electronics. He then mounted the VFD on the front of the stand and the RasPi on the back. He also mounted green LEDs between the two plates to light up the edges for a little extra pizzazz. [Coyt] believes he can use the RasPi to PWM the LEDs but this has not yet been implemented. This would allow him to pulse the light for added effect.

Since the whole thing is run by a Python script, it would be trivial to modify it to display other kinds of information. What would you do if you had a motion sensitive automatic ticker?

 

Rackmount RasPi Leaves No Excuse to Lose Data

RasPi backup server

[Frank] knows how important backups are for data security, but his old method of plugging a hard drive in to take manual backups every so often is not the most reliable or secure way of backing up data. He realized he was going to need a secure, automated solution. He didn’t need a full-sized computer with a ton of power; why waste electricity for something so simple? His solution was to use a Raspberry Pi as the backup computer.

The main problem he faced with the Pi was finding a way to make it rack mountable. [Frank] started with an empty 1U server case. He then had to bend a few metal plates in order to securely mount the backup drive into the case. A couple of small rubber pads help dampen any vibrations caused by the hard drive.

The computer power supply was able to put out the 12V needed for the hard disk, but not the 5V required to run the Pi. [Frank's] solution was to use an LM2596 based switching supply to turn the 12V into 5V. He soldered the power supply wires directly to the Pi, thinking that a USB plug might vibrate loose over time. Mounting the Pi to the computer case should have been the trickiest part but [Frank] made it easy by simply gluing the Pi’s plastic case to the inside of the computer case. When all was said in done, the backup server pulls 29W under full load, 9W with the disk spinning, and only about 2W in an idle state.

On the software side of things, [Frank's] backup box uses bash shell scripts to get the job done. The Pi connects to his main server via VPN and then the bash scripts use rsync to actually collect the files. The system not only saves backups every night, but also keeps week old backups just in case. If you are really paranoid about your backups, try hooking up a custom battery backup solution to your Pi. If a Pi just isn’t doing it for you, you can always try one of many other methods.