Project Alias
Intro: Project Alias
Alias is a teachable “parasite” that is designed to give users more control over their smart assistants, both when it comes to customisation and privacy. Through a simple app the user can train Alias to react on a custom wake-word/sound, and once trained, Alias can take control over your home assistant by activating it for you.
In this instructions, we will walk you through the main steps to complete your own Alias and start training a new wake-up-word for your smart device.
STEP 1: Requirements and Materials
The main components used in this build are:
- 1x Raspberry Pi3 A+
- 1x Raspberry Pi charger 5v (white)
- 1x ReSpeaker 2-Mics Pi HAT
- 2x Tiny Speaker 16mm, example
- 4x small wood screws (ca. 2 x 10mm)
- Micro SD card
- Wires
JST 2.0 connector or an old Jack cable
Tools needed for this project are:
- Access to a 3d printer
- Soldering iron
- Wire stripper
- Screwdriver
- A way to flash a micro SD card on your computer
Note: this project has only been tested with these components.
STEP 2: 3D Printing the Shell
For this step, we will be 3D printing the shell
For now, we have provided 2 options:
- Google Home (original)
- Amazon Echo
1. Print the shell and speaker holder in any color on a 3D printer. Because of the mesh in the object, it is important to keep the support material at a minimal. We had the best result printing it on its back-side. (See picture)
2. Use sandpaper to give the shell a nice and smooth surface. (optionally give it an acetone bath)
STEP 3: Wiring and Assembly
Before assembling the Alias we need to connect the speakers to the ReSpeaker audio shield and a power supply to the Raspberry Pi.
1. The speaker wires are stripped and soldered on to a JST 2.0 connector or an old Jack cable. The speakers and wires snap into the 3D printed speaker holder. (See picture above).
Note: We have found that the wires could trigger the Google Home when placed in the center. So for a better result on a Google Home try to route the wires down the sides.
2. Next, we need to supply 5V to the Raspberry Pi. Since there is not much space inside the shell, we decided to solder the 5V and Ground to the GPIO pins directly. You could try with an angled or modified micro USB cable. There is a small dent in the shell to route the wire out. Depending on your wire some fitting may be required.
3. Mount the speaker holder and Raspberry Pi to the shield with 4 small wood screws. (Tighten gently to prevent the 3D print to crack)
4. Place the assembled Alias on your device. If the fit is not smooth give the inside edge some sandpaper. It's important to align the speakers with the microphones of your device.
STEP 4: Software
In this step, we will be adding the software to the Raspberry Pi.
Please follow the steps on the projects GitHub page.
The code is set to be used with a Google Home from default. If you plan to use it on an Amazon Echo please change line 21 in app.py to use the alexa.wav file.
Amazon: sound.audioPlayer("data/alexa.wav",0,"wakeup", False)
Google Home: sound.audioPlayer("data/google_home.wav",0,"wakeup", False)
STEP 5: Train and Calibrate
In this step, we will train Alias with a custom wake-up word.
1. To train Alias, use the browser on your phone and open raspberrypi.local:5050
2. Hold down the record button while saying the new name about 4-6 times. A small bar should indicate the 2 seconds recording window. Each name should fit within this timeframe.
3. Under the menu, click Train Alias and wait a few seconds for the model to learn the name. This name does not necessarily need to be a word but can be a sound and any language. So be creative! You can always reset your name on the menu. Tip: it helps to record the name from different locations in your home.
4. Try it out! Say the name and ask your question once you see a blue light on the device or on your phone.
Note: once trained there is no need to have the phone connected anymore.
If you find Alias is not responding correctly, try to train a few more examples. Or if you find Alias is triggering to often, you can go to the menu and turn background sound ON. This toggles the background mode and adds any new recordings to the background examples. Record and train just as before, but try to capture unique sounds in your environment or even words that sound similar to your chosen name.
105 Comments
eckhard2808 3 months ago
Thanks in advance,
ElliotB17 4 months ago
its December 2023 and I'm wondering if this project still works?
will I be able to get the code to work?
I have spare RPi3s and a google home mini.
any chance the original google home print fits a Pi3 and a home mini?
EddiT1 1 year ago
Greetings
nktine 2 years ago
Any idea please ? ( i heard nose but never stop, i did n’y do vocal training but if i anderstand well not needed now. Whatever i say never stop .)
nathral02 3 years ago
nathral02 3 years ago
1. I used the Easy Setup Method from the Github Page. I am able to observe the yellow light and in general have the speakers working correctly.
2. I can type in alias.local or "IP address of the pi" and it will bring me to the setup pages that look like this https://github.com/bjoernkarmann/project_alias/blo...
3. The speakers are outputting white noise and I can add new commands using the alias.local which it will then run, I just can't get to the training section like we see on step 5 on this page
4. Typing in raspberrypi.local or raspberrypi.local:5050 causes a timeout.
5. Putting my computer on the alias wifi network, I was able to PuTTY in with the IP address. raspberrypi.local and alias.local don't work in typing in the Host Name or IP address for PuTTY but 192.168.4.1 does.
6. When I run sudo apt-get install avahi-daemon it says its already installed, but I thought this is what allows us to get in raspberrypi.local? So it should hypothetically already be working.
7. I want to use avahi-browse --all to see what the active avahi configuration is but "command not found"
8. So I need to sudo apt-get install avahi-utils, but it can't because this isn't installed already and the pi isn't connected to the internet so it can't get this command
9. So next steps will be to figure out how to connect the pi to the net, get this update and then see what the avahi configuration is?
Open to suggestions
I found this thread very helpful
https://www.raspberrypi.org/forums/viewtopic.php?t=61368
Other ideas:
Does the manual install method fix this?
Changed my DNS server from automatic to Google (8.8.8.8) - didn't work
tinkering_guy 3 years ago
nathral02 3 years ago
tinkering_guy 3 years ago
Buy the speakers from DIGI. They ship fast (in the US) and aren't expensive. Ebay has them but they all take a few months to get from other countries.
A 4GB SD card will work.
Once it's put together follow the Easy setup instructions on the Github page for the software setup.
The setup page that is served from the raspberry pi doesn't have the big record button anymore. Now all you need to do is enter the text of what you want to use as the new wake word. Once you connect to the WIFI of the Pi you can use 192.168.1.1 to change the settings if you can't connect the way they provide.
There is a little glitch i found that the screen goes blank when you want to enter the new words but if you type it still takes.
It does have false activations but my google home mini just lights up and waits for a question or comment but so does the Mini and my Alexa with their normal wake words.
Overall it is a really easy project if you take your time and check what others note in the comments. Good luck and keep on MAKING!
UPDATE> I am seeing a few people have issues with a Pi 4. I know other programs need to be recompiled for the Pi 4 and i don't believe this program has had that done. I have mine running on a Pi 3A and it works fine.
UPDATE 2 12/17/20 > I have moved the project to a Pi zero W and it works fine without having to recompile. I actually use this is a car on a project that i am working on. The car is old and a little noisy so i am playing with the mic sensitivity to see if it will pick up the wake word better. Other then that is is a really easy to use project.
seannaes 3 years ago
tinkering_guy 3 years ago
tinkering_guy 3 years ago
Also on the Pi Hat you can use a small speaker if you want. I used a tiny keychain speaker that has a USB charger built in. The tiny speakers recommended are great but the wires connected to them are very delicate.
Since it has its own web page built in i can adjust the sensitivity on the fly as well. But i don't normally need to.
I plan to make a few more now and have them on all my smart speakers so i can call them all the same thing.
jwineichen 3 years ago
tinkering_guy 3 years ago
Rtabb2 3 years ago
tinkering_guy 3 years ago
Good luck
tinkering_guy 3 years ago
Chatham_Engineer 3 years ago
senkrad76 3 years ago
Chatham_Engineer 3 years ago