4.2 out of 5 stars
Videos for this product.
Click to play video
Rasim Muratovic
Google AIY Projects brings do-it-yourself artificial intelligence to your maker projects. With this AIY Voice Kit from Google, you can build a standalone voice recognition system using the Google Assistant or add voice recognition and natural language processing to your Raspberry Pi based projects. The kit includes all of the components needed to assemble the basic kit that works with the Google Assistant SDK as well as on-device voice recognition with TensorFlow. To incorporate Google AIY into your Raspberry Pi projects, you will need a Raspberry Pi 3 Board, Micro SD Card, a size 00 Phillips screwdriver, and Scotch tape.
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Customers like the ease of use, value, and learning with the computer add on. For example, they mention the instructions are easy to follow, the kit is really nice for the price, and it's worth it for the components. That said, opinions are mixed on performance and quality.
AI-generated from the text of customer reviews
Customers find the computer add-on easy to use. They say the instructions are easy to follow, and the product is simple enough to program if you know a little about Linux. They also say it's fun to build and set up, and kids love putting it together. Customers also say the documentation provided is great but not up to date.
"...Those instructions look easy too follow as well.The additional items list is wrong in the description here...." Read more
"...all this in a cardboard box at this low price and programming it yourself is simply outrageous ...." Read more
"...The documentation it is provided with is great but not up to date. Still worth it for the components alone though!" Read more
"...But for the price it's worth it. Easy instructions and I was able to build this in about an 1-2 hours." Read more
Customers like the value of the computer add on. They say it's worth it for the components alone. Some mention that the cardboard box is a nice low cost solution. Overall, most are satisfied with their purchase and recommend it to others.
"... Excellent purchase . Will definitely be purchasing more. A rather impressive device once built, and kids love asking it questions...." Read more
"...To have all this in a cardboard box at this low price and programming it yourself is simply outrageous...." Read more
"...Only said “be sure the microphone is plugged in” Phooey! Returning a busted kit is costly and a waste of time...." Read more
"Kit is really nice for the price - but I struggled with the provided image for the sd card...." Read more
Customers find the computer add-on educational and fun to work on. They also say it's a great idea to build an interesting project along with their child and share a good moment. Customers also mention that kids love asking it questions.
"...A rather impressive device once built, and kids love asking it questions . Google AI seems to work better than the Amazon Echo AI...." Read more
"...It is a lot of fun to use . Try "Hey Google, can you play a game?"" Read more
"The Google AIY Voice kit is a fun weekend project . It's simple enough if you know a little about Linux...." Read more
"A great idea to build an interesting project along with your child and share a good moment, my daughter really loves it." Read more
Customers are mixed about the performance of the computer add on. Some mention that it works very well, while others say that it doesn't function with a Raspberry Pi 3 B+.
"... It doesnt seem to want to boot properly meaning i cant get it setup - so I'll need to tinker with it more...." Read more
"... Google AI seems to work better than the Amazon Echo AI. It seems to do pretty well understanding a 4 year old." Read more
"...AVOID. Most kits (like mine) will probably not work - ever! My “ Pi-hat” didn’t work - no audio out or in...." Read more
"...Otherwise speaker and mic seems to work OK . Playback part of test was not very loud." Read more
Customers are mixed about the quality of the computer add on. Some mention it's a great overall kit, impressive device once built, and awesome, while others say it'll waste time and money. The instructions are online and not as useful as YouTube videos.
"This is an excellent kit when put together properly and carefully. The instructions are VERY clear on how to make and program it...." Read more
"There is not enough information about compatibility or software configuration. I checked all the blogs including the developers git...." Read more
"This is a fascinating kit ! If you follow all the directions, you will have a Google Assistant up and working...." Read more
"Amateurish. Waste of time and money . AVOID. Most kits (like mine) will probably not work - ever! My “Pi-hat” didn’t work - no audio out or in...." Read more
Customers are dissatisfied with the image quality of the computer add-on. They mention that it doesn't work without modifications and that the card requires a Google AIY image.
"...Overall, the case looks like crap and I would be glad to pay a little more to get a decent plastic case...." Read more
"...and the image doesn't work without modifications to get the sound and demos working...." Read more
"The card requires Google AIY image . You can't just install a media center image..." Read more
There was a problem filtering reviews right now. please try again later..
Aug 29, 2017
[[read-time]] min read
Recently, we launched AIY Voice Kit , a do-it-yourself voice recognition kit for Raspberry Pi-based maker projects. Our initial offering sold out globally in just a few hours, so today, we’re happy to announce that more AIY Voice Kits will be available for purchase in stores and online in the coming weeks. You can pre-order your kit today with Micro Center.
The Voice Kit includes the same VoiceHAT (Hardware Accessory on Top), mic board, speaker, components, connectors and cardboard form for easy assembly that we first made available in the initial offering of Voice Kit with MagPi #57 in May. (Creative makers have since responded with their own recipes while waiting for more inventory.)
The Google Assistant SDK is configured by default to bring hotword detection, voice control, natural language understanding, Google’s smarts and more to your Voice Kit. You can extend the project further with local vocabularies using TensorFlow , Google’s open source machine learning framework for custom voice user interfaces.
Our goal with AIY Projects has always been to make artificial intelligence open and accessible for makers of all ages. Makers often strive to solve real world problems in creative ways, and we're already seeing makers do some cool things with their Voice Kits. Here are a few examples:
Martin Mander created a retro-inspired intercom that he calls 1986 Google Pi Intercom . He describes it as “a wall-mounted Google voice assistant using a Raspberry Pi 3 and the AIY Voice Kit.” He used a mid-80s intercom that he bought on sale for £4. It cleaned up well!
Get the full story from Martin and see what Slashgear had to say about the project.
(This one’s for Dr. Who fans) Tom Minnich created a Dalek-voiced assistant.
He offers a tutorial on how you can modify the Voice Kit to do something similar — perhaps create a Drogon-voiced assistant?
The Voice Kit is currently available in the U.S. We’ll be expanding globally by the end of this year. Stay tuned here, where we’ll share the latest updates.
The positive reception to Voice Kit has encouraged us to keep the momentum going with more AIY Projects. We’ll soon bring makers the “eyes,” “ears,” “voice” and sense of “balance” to allow simple, powerful device interfaces.
Your input is critical to helping us plan our next releases, so let us know how AI can improve your projects, and solve real problems. Join the conversation at hackster.io , and share what you’re working on using the #AIYprojects hashtag. We can’t wait to see what you make.
How google uses ai to reduce stop-and-go traffic on your route — and fight fuel emissions.
Let’s stay in touch. Get the latest news from Google in your inbox.
Gemma explained: What’s new in Gemma 2
Gemma explained: RecurrentGemma architecture
The AIY Voice Kit is a do-it-yourself intelligent speaker built with a Raspberry Pi and the Voice Bonnet (or Voice HAT if using the V1 Voice Kit).
After you assemble the kit and run the included demos, you can extend the kit with your own software and hardware.
Also see the Voice Kit assembly guide .
To interact with the Google Assistant, convert speech to text, and perform other actions with the Voice Kit, the system image includes Python library with the following modules:
Also see the Voice Bonnet on pinout.xyz .
Manual overlay load:
Load overlay on each boot:
Also see the Voice HAT on pinout.xyz .
See the Voice Kit help .
Search code, repositories, users, issues, pull requests..., provide feedback.
We read every piece of feedback, and take your input very seriously.
Use saved searches to filter your results more quickly.
To see all available qualifiers, see our documentation .
File metadata and controls, voice kit overview.
The AIY Voice Kit is a do-it-yourself intelligent speaker built with a Raspberry Pi and the Voice Bonnet (or Voice HAT if using the V1 Voice Kit).
After you assemble the kit and run the included demos, you can extend the kit with your own software and hardware.
Also see the Voice Kit assembly guide .
To interact with the Google Assistant, convert speech to text, and perform other actions with the Voice Kit, the system image includes Python library with the following modules:
Also see the Voice Bonnet on pinout.xyz .
Manual overlay load:
Load overlay on each boot:
Also see the Voice HAT on pinout.xyz .
See the Voice Kit help .
A Voice number works on smartphones and the web so you can place and receive calls from anywhere
From simple navigation to voicemail transcription, Voice makes it easier than ever to save time while staying connected
Forward calls to any device and have spam calls silently blocked. With Voice, you decide who can reach you and when.
Apple, the Apple logo, and iPhone are trademarks of Apple Inc., registered in the U.S. and other countries.
Arduino, ESP32, Electronics, IoT, Raspberry Pi and Robotics – Welcome to the Workshop!
Table of Contents
The Google AIY Voice Kit is a package that consists of a custom Raspberry Pi HAT (Hardware Attached on Top) board, a stereo microphone board, a push button switch with integrated LED, a small speaker and an assortment of cables and hardware to attach everything to a Raspberry Pi 3. Everything fits together in a cute little cardboard box.
For instructions on putting the AIY Voice Kit together please see the first article and video in this series “ Hacking the Google AIY Voice Kit – Part 1 – Putting it Together ”.
In addition to the Raspberry Pi 3 you’ll also need to supply a micro-SD card to hold the Raspbian operating system and a USB power supply to provide power for your creation. The custom version of Raspbian can be downloaded from the Google AIY website.
Once you have it all assembled you can run a couple of Python programs supplied by Google to turn your cardboard box into what is essentially a version of the Google Home Mini. Talking to a cardboard box was never as fun as this!
But the real power of the AIY Voice Kit lies in its ability to integrate with the Raspberry Pi and control devices attached to your microcomputer. Using the Google AIY Voice Kit you can construct custom projects with a powerful voice interface
In this article I’ll show you how I took my AIY Voice Kit out of the box and used it to build a (somewhat silly) LED-based “Traffic Light” and control the speed of a DC Motor. I’ll also show you how to setup the Google Cloud Speech API and how to modify some of the sample Python code to control your projects by simply speaking to them
So let’s get started!
As we discussed in the original article the Google AIY Voice Kit is the first in Googles AIY series of projects . The term “AIY” is a “sort of” acronym for “Artificial Intelligence Do It Yourself”, an initiative of Google’s to provide low cost development environments for experimenting with cutting edge artificial intelligence technologies.
Google has also released the AIY Vision Kit which uses a Raspberry Pi Zero and a Pi Camera to experiment with computer vision. As soon as I can get my hands on one (as of this writing they are very hard to obtain) I’ll definitely get working with that as well.
With the Voice Kit Google has made it possible for experimenters to easily add speech recognition and voice feedback to their projects.
Of course Google is not the only company that has opened up their voice control technology to experimenters. Amazon has also done this with their Alexa API which they provide to allow you to work with their Alexa voice assistant.
It seems like in the future we’ll be doing a lot of talking to out little electronics projects!
If you followed along with the first article and video there is something you need to be aware of before you embark upon this latest voice control adventure.
The original article (and video) were made in December 2017 and for them I used what was the latest AIY Raspbian build. Since then Google has released a new build of AIY Raspbian and it has some significant changes. This article and video use the latest build (January 2018) so if you are still on the hold build you need to be aware of the changes. I’ll go over them now.
The principle change with the new AIY Raspbian build is that it is not just designed for the AIY Voice Kit, it also has code for the AIY Vision Kit. Because of this Google has changed the file structure for the sample code and demo files, so if you attempt to run the commands that worked perfectly in the older build you’ll be greeted with a “file not found” error.
In the old build the sample code was all in the home/pi/AIY-voice-kit-python/src/ directory. As the Dev Terminal (the development command-line terminal on the AIY Raspbian Desktop) opens up in the home/pi/AIY-voice-kit-python/ directory you only needed to type src/ plus the name of the python file you wanted to run. For example the Assistant Library Demo was run with the command src/assistant_library_demo.py .
In the new build the some code is now held in the home/pi/AIY-voice-kit-python/src/examples/voice/ directory,. As the Dev Terminal still opens up in the home/pi/AIY-voice-kit-python/ directory you now need to type src/examples/voice/ before the file name. So the Assistant Library Demo is now run by typing src/examples/voice/assistant_library_demo.py at the command line.
Because of the file structure change you can’t just type sudo apt-get update and sudo apt-get upgrade in a command line to update your build. You actually need to install a brand new build by downloading the image from the Google AIY website and using it to burn a new micro-SD card.
Before you install your new micro-SD card you’ll need to get a copy of the assistant.json file that you created in the original build (this is the file that you downloaded from the Google Cloud Console and renamed). You’ll find that in the root of your home directory, which is the “pi” folder.
Copy that file to a safe place before you do your upgrade. I used a file server on my local area network but an easier method might be to simply use a USB thumb drive that you plug into one of the Raspberry Pi 3 USB ports. However you do it make sure you save the file in a safe place, as you’ll need to reinstall it on the new build.
If you created any other custom files on the original micro-SD card you’ll want to copy those as well.
Now burn the image to a new micro-SD card – I’d advise not overwriting the old one just in case something goes wrong, it’s nice to have a backup.
Remove the old micro-sd card from your Raspberry Pi and install the new one. Power it up.
After it powers up and you arrive at the Raspberry Pi desktop copy the assistant.json file into the “pi” directory. You’ll also want to setup your WiFi connection and set the correct locale for your keyboard, time zone and wireless network. You can do that from the Preferences application, a reboot is required to make it all take effect.
Now that you’ve brought your software up to the latest version it’s time to begin controlling the world (or at least your little piece of it) with your voice.
The main hardware component in the Google AIY Voice Kit is the AIY Voice HAT. Like any other HAT this is a board that attaches to the Raspberry Pi via the 40-pin GPIO.
The HAT is where you’ll be attaching external devices that you can then control with your voice. As such you may find it easier to work with if you remove the whole Raspberry Pi and HAT combination from the confines of it’s cardboard prison. It will make the wiring a lot easier.
In my case I went to extremes here. Not only did I remove the Raspberry Pi, HAT, microphone board and push button from the cardboard box, I also mounted everything onto a custom-built experimenters board of my own design. I piggybacked the HAT with a “Pi Cobbler”, a device that lets you bring out all 40 pins of the GPIO to a solderless breadboard. This will provide me with a lot of flexibility in designing custom voice-controlled projects, as well as with experimenting with the Raspberry Pi in general.
Now I certainly don’t expect that everyone will follow my lead and build a custom experimenters platform, but it is a good idea to at least remove the Raspberry Pi and the HAT from the cardboard box so it is easier to work with it. You can always put it back into its cardboard home when you are done!
As the HAT is the main hardware component in the AIY Voice Kit we should take a closer look at it.
In many respects the AIY Voice HAT is really a fancy sound card. It takes input from the microphone board and digitizes it to send up to the Google Cloud. It does NOT recognize or interpret the voice by itself.
When the response is returned by Google the AIY Voice HAT takes that response and converts it into sound. Its built-in audio amplifier is used to drive the speaker. The AIY Voice HAT is actually capable of stereo output but by default it just drives the left speaker in monophonic mode.
The AIY Voice HAT also has connections to the Raspberry Pi GPIO exposed on a number of pins for convenience in attaching external devices. Let’s look at these pins now.
In addition to the 40-pin Raspberry Pi GPIO connector the Google AIY Voice HAT has the following connections:
The AIY Voice HAT does not come with pins soldered for these connections, instead they are just empty holes on the printed circuit board. You can solder pins into the holes as you require them, solder in all of them (which is what I did) or just solder wires directly into them.
You’ll notice form this image that I also soldered a 2.1 mm barrel connector into the External Power Supply connections, the board is laid out to accept this type of connector. This is the same type of power connector used on most Arduino boards.
I found that the holes on the AIY Voice HAT board were a bit too small for my barrel connector to fit flush with the board so I “squeezed” the pins a bit to make them fit! This resulted in the connector being mounted a bit elevated from the board. A quick test with a multimeter confirmed that the connections were sound.
The above image is a side view of the power connector.
Now that I had my pins soldered I was ready to connect things to my Google AIY Voice Kit.
Some people have found it difficult to obtain a Google AIY Voice Kit, although the availability seems to be improving. I had listed four sources for the kit in the original article, there are more now (I noticed that DigiKey now seems to stock them for example) .
If you can’t find an AIY Voice Kit and really don’t need the cardboard box there are other alternatives.
One of them is the ReSpeaker series of microphone HATs made by Seeed Studio. There are a number of different models of these, some of them retailing for under 20 US dollars. These HAT’s include multiple microphones, connections for both speakers and headphones and also connections to some of the Raspberry Pi GPIO ports.
These boards can be used with both the Google Cloud Speech API and the Amazon Alexa Voice Services API. Many of them are of a smaller form factor (sometimes called a P-HAT) that are ideal for use with the lower powered Raspberry Pi Zero.
So if you can’t get a hold of a genuine Google AIY Voice Kit you can still experiment with voice control using one of these alternative HATs.
In order to build your own voice controlled projects you’ll need to write code to interface with the Google Cloud Speech API . This API is the heart of all of the Google voice services that we know and love (at least I love them, I don’t know about you).
The Google Cloud Speech API converts spoken audio into text. It can “speak” 110 languages and variants so it is by no means limited to English, or even to American English.
Google has provided this API to developers around the world so that they can integrate it into their projects and designs. However, before you nominate the Google design team for sainthood for providing this wonderful gift to the world you should be aware of something – the Google Cloud Speech API is not free.
In order to use the Cloud Speech API you’ll need to pay for the services. Don’t panic, the experiments you are about to perform won’t cost you a penny. But you will need to setup a billing account, and we will look at doing that now.
In order to make use of the Google Cloud Speech API you’ll need to have a billing account so that Google can be paid for their services. It is very unlikely that you will ever be charged however as Google provides a very generous free allotment of Cloud services (Speech and other services).
You’ll get a credit for 300 US dollars worth of Cloud Services when you setup your billing account. This free allotment is valid for one year from the date you setup your account, parceled out as 60 minutes of use per month. If you about to exceed the free amount Google will warn you so that you don’t have any surprises on your next credit card statement.
Performing all of the experiments in this article and video will likely use up about a minute of your allotment. You can monitor your usage through the Google Cloud Console.
If you reside in Europe you should be aware that you’ll probably need to set up a Business billing account instead of a personal one. The Cloud Speech API is only available to business accounts in certain European countries. You can check with Google for more information if this applies to you.
To setup a billing account go to the Google Cloud Platform Console at https://console.cloud.google.com/home/dashboard . If you followed along with the first article and video you will already have an account here, otherwise set one up using your Google (i.e. GMail) credentials.
Open the left-side menu by clicking the menu icon in the top left corner. Select the Billing item in the menu.
Click the prompt to Manage Billing Accounts. You’ll then get to a screen where you have an option to setup a new billing account.
The payment options for the billing account will depend upon which country you reside in. Unfortunately PayPal is not an option, only credit and (some) debit cards are valid payment options.
Enter your payment method information as required. You’ll need to agree to Google’s license agreement and will also have the option to subscribe to a Cloud Services newsletter.
Once you have set up billing successfully you are ready to setup the Cloud Speech API to use with your Google AIY Voice Kit.
There are several steps required to setup the Google Cloud Speech API. You’ll need to attach the billing account you created to the project you are using (the same project you setup in the original article and video) , you will create a Service Account and download a JSON file with it’s credentials and you’ll need to enable the Cloud Speech API itself.
Here is a step-by-step breakdown of what you need to do. You can also follow along in the video associated with this article.
You are now ready to use the Google Cloud Speech API. The next step is to test everything to be sure that it’s working correctly.
Minimize the web browser and search the AIY Raspbian desktop for an icon that says “Check Cloud”. Click on that icon.
If everything is working well a terminal window will open up and some text saying that the connection to the Google Cloud is being checked. That should be followed by a message saying that the connection to the cloud was successful.
If this works give yourself a pat on the back – you’ve got the most difficult part of the job finished!
On the off chance that the test fails make sure your Internet connection is good. Keep in mind that while the Google AIY Voice Kit instructions specify WiFi as a connection method everything will also work with an Ethernet cable plugged into the Raspberry Pi. In some cases this may be a more reliable method of connecting to the Internet.
Assuming you have successfully connected to the cloud you can proceed with the following demonstrations, which actually use the Cloud Speech API.
The first demonstration that you should try is the Cloud Speech Demo. This script will test all of the essential voice recognition functions, it will capture and interpret your commands and use them to control the LED embedded inside the push button switch.
Here is the Cloud Speech Demo code, which like all of these examples is written in Python.
"A demo of the Google CloudSpeech recognizer.""" aiy.audio aiy.cloudspeech aiy.voicehat main(): recognizer = aiy.cloudspeech.get_recognizer() recognizer.expect_phrase('turn off the light') recognizer.expect_phrase('turn on the light') recognizer.expect_phrase('blink') button = aiy.voicehat.get_button() led = aiy.voicehat.get_led() aiy.audio.get_recorder().start() while True: print('Press the button and speak') button.wait_for_press() print('Listening...') text = recognizer.recognize() if not text: print('Sorry, I did not hear you.') else: print('You said "', text, '"') if 'turn on the light' in text: led.set_state(aiy.voicehat.LED.ON) elif 'turn off the light' in text: led.set_state(aiy.voicehat.LED.OFF) elif 'blink' in text: led.set_state(aiy.voicehat.LED.BLINK) elif 'goodbye' in text: break __name__ == '__main__': main() |
Run the script by opening the Dev Terminal and then typing the following at the command prompt: /src/examples/voice/cloudspeech_demo.py .
After the script loads you will be prompted to push the button and give a command. The following commands are recognized by the demo:
You’ll notice that this script does not require you to issue an “OK Google” prompt before each instruction. It also won’t accept any commands other than the ones listed above.
The reason that “OK Google is not required is that this script uses the push button as a “trigger”. If you wish you could replace the push button with a relay or another type of momentary contact switch (say a pressure switch on a doormat for example). The trigger prompts the device to go into listen mode where it waits for a command it understands and then takes the required action.
All voice activation systems require a trigger before they will start listening for commands, they don’t process voice until the trigger is received. This Is true of systems like the Amazon Alexa, Apple Sir and Microsoft Cortana as well.
In most common applications the trigger is a preset phrase or “Wake Word”, such as “Alexa”. “Siri” or “OK Google”. This is the way most of us are used to interacting with voice control systems.
The previous example used a press of the push button as its trigger. It was just a demonstration of course as in “real life” it would not really be all that useful. After all if we really wanted to turn on the light and we have a push button we could just wire it directly to the LED and eliminate the voice recognition (and the Raspberry Pi and the Internet and the Google Cloud) altogether! It’s an excellent example of a design overkill.
Now there are some applications where using a switch or other hardware device such like a motion sensor as a trigger would make sense. You could have the voice system respond to your commands when you enter a room, in this case “turn on the light” would be a very useful command and not having to precede each command with a wake word would be convenient.
But in most cases we will want to trigger our voice controlled device using a wake word. So in the next example we will do exactly that.
The next example you’ll want to try is the Assistant Library with Local Commands script. This python script will respond to the OK Google wake word trigger instead of requiring you to press the push button.
This python script, which is reproduced here for your convenience, is an important script to understand as it can be used as the basis for writing your own custom scripts that work on the “OK Google” wake word.
"Run a recognizer using the Google Assistant Library. OK, Google" is supported. "" logging subprocess sys aiy.assistant.auth_helpers aiy.audio aiy.voicehat google.assistant.library import Assistant google.assistant.library.event import EventType .basicConfig( level=logging.INFO, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s" power_off_pi(): aiy.audio.say('Good bye!') subprocess.call('sudo shutdown now', shell=True) reboot_pi(): aiy.audio.say('See you in a bit!') subprocess.call('sudo reboot', shell=True) say_ip(): ip_address = subprocess.check_output("hostname -I | cut -d' ' -f1", shell=True) aiy.audio.say('My IP address is %s' % ip_address.decode('utf-8')) process_event(assistant, event): status_ui = aiy.voicehat.get_status_ui() if event.type == EventType.ON_START_FINISHED: status_ui.status('ready') if sys.stdout.isatty(): print('Say "OK, Google" then speak, or press Ctrl+C to quit...') elif event.type == EventType.ON_CONVERSATION_TURN_STARTED: status_ui.status('listening') elif event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED and event.args: print('You said:', event.args['text']) text = event.args['text'].lower() if text == 'power off': assistant.stop_conversation() power_off_pi() elif text == 'reboot': assistant.stop_conversation() reboot_pi() elif text == 'ip address': assistant.stop_conversation() say_ip() elif event.type == EventType.ON_END_OF_UTTERANCE: status_ui.status('thinking') elif event.type == EventType.ON_CONVERSATION_TURN_FINISHED: status_ui.status('ready') elif event.type == EventType.ON_ASSISTANT_ERROR and event.args and event.args['is_fatal']: sys.exit(1) main(): credentials = aiy.assistant.auth_helpers.get_assistant_credentials() with Assistant(credentials) as assistant: for event in assistant.start(): process_event(assistant, event) __name__ == '__main__': main() |
You can run the script from the Dev Terminal by typing /src/examples/voice/assistant_library_with_local_commands_demo.py .
The script has three commands that it will accept, all of them activated by preceding them with the “OK Google” wake word:
You can also say “OK Google” and give it a “normal” question, such as “OK Google, what is the capital city of France?”. It will respond with the “regular” Google voice, informing you that the answer is Paris.
Custom commands will not use the standard “Lady Google” voice but instead use a voice synthesized tone that reminds me of many 1990’s speech synthesizers.
To understand the script you really only need to understand two concepts.
For example, let’s look at the “power off” command.
You’ll see a custom function called “ power_off_pi() ” beginning on line 43. It does two things:
You will also notice an “if” statement that evaluates a variable called “text”. The “text” variable is assigned to the response text you get from the Google Cloud Speech API, this text is the interpretation of the voice it decoded. You’ll see that starting on line 68, on line 71 it runs an “if” statement that is satisfied when the text equals “power off”. If then does two things:
Once you get the grasp of that it’s actually pretty simple. And you should realize that you can start adding your own commands by (a) defining a function to execute the command and (b) adding the text to interpret as another “elif” statement evaluation.
Let’s do exactly that and write some code to control our own devices.
Our first example will be controlling three LEDs using voice commands. Now while you’ll find an example to control LEDs on the Google AIY Voice website this one differs in that we will use the “OK Google” wake word as opposed to pushing a button.
To do this we will just modify the Assistant Library with Local Commands script that we dissected earlier.
Note that the Google code samples are all licensed under the Apache License Version 2.0. The license terms state that you can modify and reuse the code to your heart’s intent but you need to leave the original license agreement intact plus add a few lines to state that you were the one who did the modifications. In all of the following examples I will respect this license and you should do the same if/when you modify this code for your own purposes.
As the example uses three LEDs I suggest we have some fun with it and use a red, yellow and green LED (although you could really use any colors you like) and make our own traffic light! We can then give it commands to stop, go and proceed with caution.
First we’ll need to hook the LEDs up to the AIY Voice HAT. We will use the Servo outputs for that as they provide enough current for an LED but by changing the GPIO pins defined in the code we could also use the Drivers outputs if we had wanted to.
Each LED is hooked to the output pin on the servo connectors through a dropping resistor, I used three 330 ohm resistors but any value from 220 to 470 ohms would work.
The Servo outputs are connected to the Raspberry Pi GPIO pins as follows:
The cathode leads of all of the LEDs are connected to ground, any of the servo ground connections will work.
Now that we have our LEDs hooked up lets take a look at the Python code we will use to control our “traffic light”.
To control our little “traffic light” we will modify the Assistant Library with Local Commands script by adding several extra functions. We also need to import a library to interact with the Raspberry Pi GPIO.
"Run a recognizer using the Google Assistant Library. OK, Google" is supported. "" logging subprocess sys aiy.assistant.auth_helpers aiy.audio aiy.voicehat google.assistant.library import Assistant google.assistant.library.event import EventType RPi.GPIO as GPIO .setmode(GPIO.BCM) .setwarnings(False) .setup(26,GPIO.OUT) .setup(6,GPIO.OUT) .setup(13,GPIO.OUT) .basicConfig( level=logging.INFO, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s" red_led_on(): aiy.audio.say('Red light on') GPIO.output(26,True) red_led_off(): aiy.audio.say('Red light off') GPIO.output(26,False) yellow_led_on(): aiy.audio.say('Yellow light on') GPIO.output(6,True) yellow_led_off(): aiy.audio.say('Yellow light off') GPIO.output(6,False) green_led_on(): aiy.audio.say('Green light on') GPIO.output(13,True) green_led_off(): aiy.audio.say('Green light off') GPIO.output(13,False) all_led_on(): aiy.audio.say('Turning all lights on') GPIO.output(26,True) GPIO.output(6,True) GPIO.output(13,True) all_led_off(): aiy.audio.say('Turning all lights off') GPIO.output(26,False) GPIO.output(6,False) GPIO.output(13,False) traffic_go(): aiy.audio.say('Green light. You can go') GPIO.output(26,False) GPIO.output(6,False) GPIO.output(13,True) traffic_stop(): aiy.audio.say('Red light. You must stop') GPIO.output(26,True) GPIO.output(6,False) GPIO.output(13,False) traffic_caution(): aiy.audio.say('Yellow light. Be careful') GPIO.output(26,False) GPIO.output(6,True) GPIO.output(13,False) power_off_pi(): aiy.audio.say('Good bye!') subprocess.call('sudo shutdown now', shell=True) reboot_pi(): aiy.audio.say('See you in a bit!') subprocess.call('sudo reboot', shell=True) say_ip(): ip_address = subprocess.check_output("hostname -I | cut -d' ' -f1", shell=True) aiy.audio.say('My IP address is %s' % ip_address.decode('utf-8')) process_event(assistant, event): status_ui = aiy.voicehat.get_status_ui() if event.type == EventType.ON_START_FINISHED: status_ui.status('ready') if sys.stdout.isatty(): print('Say "OK, Google" then speak, or press Ctrl+C to quit...') elif event.type == EventType.ON_CONVERSATION_TURN_STARTED: status_ui.status('listening') elif event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED and event.args: print('You said:', event.args['text']) text = event.args['text'].lower() if text == 'power off': assistant.stop_conversation() power_off_pi() elif text == 'reboot': assistant.stop_conversation() reboot_pi() elif text == 'ip address': assistant.stop_conversation() say_ip() elif text == 'red light on': assistant.stop_conversation() red_led_on() elif text == 'red light off': assistant.stop_conversation() red_led_off() elif text == 'yellow light on': assistant.stop_conversation() yellow_led_on() elif text == 'yellow light off': assistant.stop_conversation() yellow_led_off() elif text == 'green light on': assistant.stop_conversation() green_led_on() elif text == 'green light off': assistant.stop_conversation() green_led_off() elif text == 'traffic go': assistant.stop_conversation() traffic_go() elif text == 'traffic stop': assistant.stop_conversation() traffic_stop() elif text == 'traffic caution': assistant.stop_conversation() traffic_caution() elif text == 'all lights on': assistant.stop_conversation() all_led_on() elif text == 'all lights off': assistant.stop_conversation() all_led_off() elif event.type == EventType.ON_END_OF_UTTERANCE: status_ui.status('thinking') elif event.type == EventType.ON_CONVERSATION_TURN_FINISHED: status_ui.status('ready') elif event.type == EventType.ON_ASSISTANT_ERROR and event.args and event.args['is_fatal']: sys.exit(1) main(): credentials = aiy.assistant.auth_helpers.get_assistant_credentials() with Assistant(credentials) as assistant: for event in assistant.start(): process_event(assistant, event) __name__ == '__main__': main() |
You’ll notice that I left the original functions from the Assistant Library with Local Commands script intact. If you wish you can remove them.
The GPIO library is imported on line 43. The lines following that setup the GPIO pins as outputs.
Line number 45 has a statement “ GPIO.setmode(GPIO.BCM) ” . This tells the code to use the Broadcom numbers for the GPIO pins, this is the standard method of addressing GPIO pins when working with the Raspberry Pi. The Broadcom pin numbers are the internal processor numbers, they don’t match the physical pin numbers on the 40-pin GPIO connector. If we had wanted to use the physical pin numbers instead we could have used the statement “ GPIO.setmode(GPIO.BOARD) ”.
The next line, “ GPIO.setwarnings(False) ” is optional, it just suppresses the error messages you will receive when the GPIO pins have already been defined by another script. Experiment by taking it out to see what I am talking about.
The next three lines set GPIO numbers 26 (Red LED), 6 (Yellow LED)and 13 (Green LED) as outputs.
Starting at line 57 you’ll see several functions, each one written to control an LED. As with the functions we examined previously they perform two tasks:
You can change the aiy.audio.say command to make it say your own phrase if you wish.
You should also note that the way I wrote it the voice will FIRST say the text and THEN perform the action. You can reverse the order of the statements if you wish so that the text is spoken AFTER the action takes place.
Moving down to line number 149 you will see the start of several “elif” statements, each one to interpret some text and to then call one of our custom functions. Again you can change the text that you wish interpreted if you wish.
You should place the python script into the same folder as the examples Google provided. Also, if you get the script form the Resources box at the end of this article you will need to give it the correct permission to run. You can do that at the command line but it’s easier to use the Raspbian File Manager:
If you don’t do that you’ll receive an error when you attempt to run the script from the Dev Terminal.
Open up the Dev Terminal and type src/examples/voice/dbws_trafficlight.py (if you wrote your own script substitute the script name for dbws_trafficlight.py , which is the name of the script in the ZIP file). After it loads you’ll be prompted to say “OK Google” followed by a command.
The script has several commands:
Experiment with the commands, change them or change the voice responses as you see fit. It’s your traffic light!
Our final python script will illustrate how you can control a small DC motor using your voice. There is a sample in the Google AIY Voice Kit instruction manual on their website, this script differs in the following fashion:
Let’s see how we can accomplish this magic.
Our motor will be driven using Pulse Width Modulation or PWM. This is a method of sending pulses of voltage to drive a DC motor, the wider the pulses get the faster the motor turns.
If you need a full description of how PWM works please see my article on using the L298N H-Bridge controller to drive a couple of DC motors. In the article (and in its associated video) I give a full explanation of how Pulse Width Modulation is used to control motor speed.
I have made no attempt to control the motor direction in this simple python code. If you wish you can hook an H-Bridge controller like the L298N to the raw GPIO outputs and use it to control the motor direction. To simplify things (and to prevent you needing an additional component) I won’t cover that today.
The motor hookup is very simple, but you’ll notice that I added an additional component that you may not have expected – a small capacitor which I soldered directly across the motor leads.
I did this because when I first built this demonstration I encountered problems with noise. Noise of two types actually:
The second bit of noise can be reduced by simply moving the motor away from the pickup pattern of the microphones.
I used a 100 nf capacitor for noise suppression but its value is not critical. Don’t use a polarized capacitor as the motor generates a “back EMF” in the reverse polarity of the voltage applied to it, The AIY Voice HAT has diodes on each of the Driver outputs to suppress this back EMF.
Here is the hookup, as I said it’s very simple:
In addition to hooking up the motor you’ll need to supply an external power supply as the motor will take more current than you want to suck out of your Raspberry Pi. I used my 5-volt bench supply and it worked even though my motor was rated at 6 volts. You could also use a 6-volt battery pack if you wish.
Remember, you need to cut the External Power jumper in order to use an external power supply.
I left the three LEDs from the last experiment in the circuit just for fun! Now let’s look at the python code.
As with the previous demonstration I used a modification of the Assistant Library with Local Commands script to control my motor. The script is similar to the last demonstration in many ways, it uses the GPIO library to control the three LEDs as you might expect.
It also imports another library, the “ PWMOutputDevice” library which itself is part of the “ gpiozero ” library. This is the library that will provide the Pulse Width Modulation functions to drive our motor.
"Run a recognizer using the Google Assistant Library. OK, Google" is supported. "" logging subprocess sys aiy.assistant.auth_helpers aiy.audio aiy.voicehat google.assistant.library import Assistant google.assistant.library.event import EventType RPi.GPIO as GPIO gpiozero import PWMOutputDevice .setmode(GPIO.BCM) .setwarnings(False) .setup(26,GPIO.OUT) .setup(6,GPIO.OUT) .setup(13,GPIO.OUT) = PWMOutputDevice(4) .basicConfig( level=logging.INFO, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s" motor_on_full(): aiy.audio.say('Motor On. Full Speed') motor1.value = 1 GPIO.output(26,False) GPIO.output(6,False) GPIO.output(13,True) motor_off(): aiy.audio.say('Motor Off') motor1.value = 0 GPIO.output(26,True) GPIO.output(6,False) GPIO.output(13,False) motor_on_half(): aiy.audio.say('Motor On. Half speed') motor1.value = 0.5 GPIO.output(26,False) GPIO.output(6,True) GPIO.output(13,False) power_off_pi(): aiy.audio.say('Good bye!') subprocess.call('sudo shutdown now', shell=True) reboot_pi(): aiy.audio.say('See you in a bit!') subprocess.call('sudo reboot', shell=True) say_ip(): ip_address = subprocess.check_output("hostname -I | cut -d' ' -f1", shell=True) aiy.audio.say('My IP address is %s' % ip_address.decode('utf-8')) process_event(assistant, event): status_ui = aiy.voicehat.get_status_ui() if event.type == EventType.ON_START_FINISHED: status_ui.status('ready') if sys.stdout.isatty(): print('Say "OK, Google" then speak, or press Ctrl+C to quit...') elif event.type == EventType.ON_CONVERSATION_TURN_STARTED: status_ui.status('listening') elif event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED and event.args: print('You said:', event.args['text']) text = event.args['text'].lower() if text == 'power off': assistant.stop_conversation() power_off_pi() elif text == 'reboot': assistant.stop_conversation() reboot_pi() elif text == 'ip address': assistant.stop_conversation() say_ip() elif text == 'motor on': assistant.stop_conversation() motor_on_full() elif text == 'motor off': assistant.stop_conversation() motor_off() elif text == 'motor half': assistant.stop_conversation() motor_on_half() elif event.type == EventType.ON_END_OF_UTTERANCE: status_ui.status('thinking') elif event.type == EventType.ON_CONVERSATION_TURN_FINISHED: status_ui.status('ready') elif event.type == EventType.ON_ASSISTANT_ERROR and event.args and event.args['is_fatal']: sys.exit(1) main(): credentials = aiy.assistant.auth_helpers.get_assistant_credentials() with Assistant(credentials) as assistant: for event in assistant.start(): process_event(assistant, event) __name__ == '__main__': main() |
In this script I start by setting up the LEDs in the same fashion as the previous script. Next I create an object I called “motor1” that represents my PWM output device, which in this case is a motor connected to GPIO pin 4.
The three functions I defined do the following:
To control the motor speed we use the “value” parameter on the motor object. This can be set from any value from 0 to 1 with a value of “0” stopping the motor and a value of “1” driving it at full speed.
To drive the motor at half speed I gave the parameter a value of “0.5”. You can expand upon this if you wish and give your motor many different speed increments.
Create or copy the script in the the home/pi/AIY-voice-kit-python/src/examples/voice/ folder. If you used the script I provided in the ZIP file (from the Resources box below this article) you’ll need to set the permissions using the same technique described for the last script.
Run the script from the Dev Terminal by typing src/examples/voice/dbws_motorcontrol.py at the command line – if you created your own script substitute its name for dbws_motorcontrol.py .
You can now speak the three motor commands to drive your motor:
You may notice some distortion in the speaker when the motor is spinning, the capacitor reduces the electrical noise but doesn’t eliminate it completely. Shielding the microphone lines and enclosing the project in a shielded metal enclosure would probably eliminate that in a permanent design.
Hopefully you now have an idea as to how versatile the Google AIY Voice Kit is. Far from just being a cardboard Google Home Mini the AIY Voice Kit is a developers tool capable of prototyping advanced voice control devices.
If you have any questions about the code here or the AIY voice HAT please comment below. And please look out for the next video and article in this series as I’ll continue to explore the amazing capabilities and potential of the Google AIY Voice Kit.
Now start talking to your project!
Hacking the Google AIY Voice Kit – Part 1 – The original article in this series, building the Google AIY Voice Kit.
Code for this Article – All of the Python code I showed in the article in one easy to use ZIP file!
Google AIY Voice Website – The official Google AIY Voice Kit website.
Google AIY Raspbian Image – The custom build of the Raspbian operating system for the Raspberry Pi.
Google Cloud Console – The Google Cloud Console where you will setup the Cloud Speech API.
Google Cloud Speech API Documentation – Documentation for the Google Cloud Speech API.
Thank you for posting the valuable and helpful projects.
Currently the voice kit will light up when I say a wake word “Hey, Google”
Can I make a change so that so that when I say a wake word “Hey, Google” the system will response by voice such as “Yes” or ‘OK’ as well as light up.
Thanks for the tutorials, really helpful!!
Finally i can compete my project because of this tutorial! Thanks man!
Is it possible to hook up a camera to the voice kit and use inbuilt computer vision python libraries to interface voice as well as image AI?
Thanks for the great post. I’m intrigued by your experiment board. I also have something similar to the pi-cobbler, and I’m interested in understanding how you were able to piggy back the voice kit hat so I can build something similar. BTW, great tutorials. Just what I needed to jump start my own experiments!
Is there going to be a part 3?
Hi Robyn. Yes indeed, I’ll be showing you how to use a 3rd party API to change the “wake word” from “OK Google” to anything you want. It’s on my list for early 2019.
Hello, I was wondering if you are still planing to make a part 3?
Thanks for documenting all this, Bill! You answered my #1 question about getting into this: whether I could use the kit for “Speech to command” for my own programs. That’s especially helpful, because everything else I’ve read so far just focuses on “Isn’t it way kewl that you can make your own ugly cardboard Google Home Lite?”. 😉 But you raised another: how likely is it that I’ll find out on the 20th of the month that I can’t robo-feed my cat, or unlock my front door, with voice commands for the next 10 days because I’ve used up my … Read more »
How do I switch my voice kit to use an USB plugged microphone ?
How can I control motor direction
Hi, could you do a video on the “Google AIY Vision Kit” please. Thanks
Keep up those GREAT videos
Hey! Nice tutorial, helped me hack the voicekit and add GPIO functionality for 2 extra buttons. I’m running into a problem though; the only way for the speaker to work is by unplugging the microphone. If i plug the microphone, the speaker stops working! I added 2 buttons on the servo pins 0 and 1 (using GPIO 4 and 17 with the GPIO library) and those buttons work fine. The voicekit button also works fine and its connected as it comes. I’m sure the problem is not with the code, cause i’ve made various tests (Without the extra buttons, with … Read more »
General help, booting and configuring, updating your sd card, learning more, product lifecycle, vision kit help, assembling the vision kit.
Troubleshooting tips, voice kit help, assembling the voice kit, booting the voice kit, using the voice kit, extending the voice kit.
If you don’t see your issue here, try these other resources:
Or contact us at [email protected] .
There are a few reasons why this might happen. First, make sure your Voice Kit is still connected to a power supply and that the green LED on your Bonnet is still flashing. If it’s not flashing, it may have timed out. Press and hold the Bonnet button for 5 seconds, and try again.
If that doesn’t work, first try restarting the app. Then if that doesn’t work, your phone could be experiencing issues with Bluetooth, so try restarting your phone and starting the app pairing flow again.
The system images for the Vision Kit, Voice Kit, and Maker Kit have SSH enabled by default. As long as you know the IP address for your Raspberry Pi, you should be able to SSH from a terminal on your personal computer.
For instructions, see the Raspberry Pi docs about remote access .
If you’ve tried all of the other suggested troubleshooting steps and still can’t get your kit to boot, your SD card might be corrupted. To fix this, you’ll need to reflash your SD card so that you can start fresh.
Note: reflashing your SD card will delete any files you’ve created or changes you’ve made, such as your Voice Kit credentials, so you might have to repeat some setup steps.
Follow the appropriate instructions to reflash the SD card for either the Voice Kit , Vision Kit , or Maker Kit .
Check out these resources from our friends at the Raspberry Pi Foundation: Conquer the Command Line and Linux Commands .
Check out the Gettting started with Raspberry Pi guide for an introduction and tour.
Product line changes may bring products such as the Vision Kit and Voice Kit to the end of their life cycle. Once an End-Of-Life (EOL) notice is posted online, you can continue to purchase the product until the Last Time Buy Date or until product inventory is exhausted. Our goal is to assist you in making your final purchases of the product subject to EOL and to help you smoothly transition to new products.
There are two flex cables in the kit: one is long and one is short. The long cable connects connects the Vision Bonnet to the Raspberry Pi Camera, while the short cable connects the Raspberry Pi to the Vision Bonnet. See for a picture of the short flex cable for the Raspberry Pi board.
You'll need the Raspberry Pi Zero camera cable .
Your Raspberry Pi board may not be running the AIY software image (this error happens when using Python 2.7 instead of 3.4). You’ll need to update to the latest SD card image and try again.
Double-check that you’ve connected the USB cable to the left-side USB port on your kit (the one labeled “Data”). Also, be sure that your kit is connected to a power supply via the other USB port — it will need more power than what your laptop can provide on its own.
Note : it’s not recommended that you use the USB connector cable to another computer as the sole source of power for your AIY kit. This may cause a brown-out or other issues. Learn how to connect to your Vision Kit
First, check that you’ve typed the command correctly. Capitalization matters! If that doesn’t solve the problem, you might be in a different file directory, which means the command tried to find the demo in the current folder but it wasn’t there. Try typing the following command and pressing enter to navigate to the right directory:
Then try to run the demo again. If that still doesn’t work, you may have another demo that’s currently running, which will prevent you from starting a new demo. First check that you’ve stopped the Joy Detector . You’ll need to do this each time you reboot your kit.
If you are running another demo, try these steps to stop it: Open the terminal that has the demo running by clicking with your left mouse button on it, and once your terminal is in focus, press Ctrl-C .
Make sure you’re using a USB power supply that’s 5V 2.1A or higher. The Vision Bonnet requires additional current from the Raspberry Pi and using a power supply with less than 2.1A can cause instability.
If the demos crash and none of the other solutions above solve your problem, open a terminal on the Raspberry Pi and type dmesg | grep 'Internal error' . If this prints any line at all, then your kit might be suffering from a hardware power problem ( issue 346 ). Try running the following command:
Then reboot the kit.
If you are connected directly to your Raspberry Pi via mouse, monitor, and keyboard, the camera window might block your terminal. That’s okay, as your terminal is still there in the background. Press Ctrl-C after pointing your camera at a few objects to stop the demo and close the camera window. Then you can scroll up in your terminal window to see what the camera identified. If you want to see the terminal and camera preview at the same time, you can connect your Raspberry Pi to WiFi and then connect to it from another computer via SSH. See steps 48-63 of the Voice Kit guide for more information.
Check the mcu error code.
0xdeadbeef means operation is normal (no pins in a state they do not support, i2c bus has no errors the mcu knows about)
Check product version.
If you have version 1.0 of the Vision Kit (check here ), this command will output 0x0001 .
Check who built it, my kit doesn’t match the assembly guide instructions.
There are several versions of the Voice Kit and Vision Kit, each with different assembly instructions. Check which kit version you have by going here:
Your kit might be running a file system check, which happens after your kit shuts down abruptly. It takes around 5 minutes to complete, so try plugging in your kit and waiting.
If it still doesn’t boot, your SD card image may be corrupt, so try installing a new image .
You can do this with the Voice Kit version 1.0 (and Raspberry Pi 3). Learn how
The audio checkpoint script doesn’t work (“failed to find the voicehat soundcard…”).
There could be one or more issues that is causing the audio check to not find the sound card. Try the steps below:
If it’s not, trying using the terminal to manually load the driver:
If none of the steps above solve the issue, then open a terminal window and enter the command “dmesg”. Email us the output at [email protected] .
At this time the AIY Voice Kit is not compatible with other Google devices.
The demo files have moved to src/examples/voice/ . Try running it from that path.
For details using the Google Assistant SDK, see the SDK documentation .
Custom hotwords is not currently available with the Google Assistant SDK. However, you can try other voice recognition services like the Google Cloud Speech API .
Hi there, I just bought this plugin from the marketplace Google Speech Kit in Code Plugins - UE Marketplace and I’m following the documentation to set it up. ( GitHub - IlgarLunin/UE4GoogleSpeechKit-docs: Documentation page for GoogleSpeechKit ue4 plugin ).
My blueprint is all set up as documentation say (see image below) but when it arrives to “Google STT” node nothing happen.
I don’t even know if my API key is working.
Any help? thank in advance
It should be the same of the documentation (except for the “play sound” left there).
Is there anything I’m missing in calling API key or in Google TTS?
Text-to-Speech provides the following voices. The list includes Neural2 , Studio , Standard, and WaveNet voices. Studio, Neural2 and WaveNet voices are higher quality voices with different pricing ; in the list, they have the voice type 'Neural2', 'Studio' or 'WaveNet'.
To use these voices to create synthetic speech, see how to create synthetic voice audio .
Language | Voice type | Language code | Voice name | SSML Gender | Sample |
---|---|---|---|---|---|
Afrikaans (South Africa) | Standard | af-ZA | af-ZA-Standard-A | FEMALE | |
Arabic | Standard | ar-XA | ar-XA-Standard-A | FEMALE | |
Arabic | Standard | ar-XA | ar-XA-Standard-B | MALE | |
Arabic | Standard | ar-XA | ar-XA-Standard-C | MALE | |
Arabic | Standard | ar-XA | ar-XA-Standard-D | FEMALE | |
Arabic | Premium | ar-XA | ar-XA-Wavenet-A | FEMALE | |
Arabic | Premium | ar-XA | ar-XA-Wavenet-B | MALE | |
Arabic | Premium | ar-XA | ar-XA-Wavenet-C | MALE | |
Arabic | Premium | ar-XA | ar-XA-Wavenet-D | FEMALE | |
Basque (Spain) | Standard | eu-ES | eu-ES-Standard-A | FEMALE | |
Bengali (India) | Standard | bn-IN | bn-IN-Standard-A | FEMALE | |
Bengali (India) | Standard | bn-IN | bn-IN-Standard-B | MALE | |
Bengali (India) | Standard | bn-IN | bn-IN-Standard-C | FEMALE | |
Bengali (India) | Standard | bn-IN | bn-IN-Standard-D | MALE | |
Bengali (India) | Premium | bn-IN | bn-IN-Wavenet-A | FEMALE | |
Bengali (India) | Premium | bn-IN | bn-IN-Wavenet-B | MALE | |
Bengali (India) | Premium | bn-IN | bn-IN-Wavenet-C | FEMALE | |
Bengali (India) | Premium | bn-IN | bn-IN-Wavenet-D | MALE | |
Bulgarian (Bulgaria) | Standard | bg-BG | bg-BG-Standard-A | FEMALE | |
Catalan (Spain) | Standard | ca-ES | ca-ES-Standard-A | FEMALE | |
Chinese (Hong Kong) | Standard | yue-HK | yue-HK-Standard-A | FEMALE | |
Chinese (Hong Kong) | Standard | yue-HK | yue-HK-Standard-B | MALE | |
Chinese (Hong Kong) | Standard | yue-HK | yue-HK-Standard-C | FEMALE | |
Chinese (Hong Kong) | Standard | yue-HK | yue-HK-Standard-D | MALE | |
Czech (Czech Republic) | Standard | cs-CZ | cs-CZ-Standard-A | FEMALE | |
Czech (Czech Republic) | Premium | cs-CZ | cs-CZ-Wavenet-A | FEMALE | |
Danish (Denmark) | Premium | da-DK | da-DK-Neural2-D | FEMALE | |
Danish (Denmark) | Standard | da-DK | da-DK-Standard-A | FEMALE | |
Danish (Denmark) | Standard | da-DK | da-DK-Standard-C | MALE | |
Danish (Denmark) | Standard | da-DK | da-DK-Standard-D | FEMALE | |
Danish (Denmark) | Standard | da-DK | da-DK-Standard-E | FEMALE | |
Danish (Denmark) | Premium | da-DK | da-DK-Wavenet-A | FEMALE | |
Danish (Denmark) | Premium | da-DK | da-DK-Wavenet-C | MALE | |
Danish (Denmark) | Premium | da-DK | da-DK-Wavenet-D | FEMALE | |
Danish (Denmark) | Premium | da-DK | da-DK-Wavenet-E | FEMALE | |
Dutch (Belgium) | Standard | nl-BE | nl-BE-Standard-A | FEMALE | |
Dutch (Belgium) | Standard | nl-BE | nl-BE-Standard-B | MALE | |
Dutch (Belgium) | Premium | nl-BE | nl-BE-Wavenet-A | FEMALE | |
Dutch (Belgium) | Premium | nl-BE | nl-BE-Wavenet-B | MALE | |
Dutch (Netherlands) | Standard | nl-NL | nl-NL-Standard-A | FEMALE | |
Dutch (Netherlands) | Standard | nl-NL | nl-NL-Standard-B | MALE | |
Dutch (Netherlands) | Standard | nl-NL | nl-NL-Standard-C | MALE | |
Dutch (Netherlands) | Standard | nl-NL | nl-NL-Standard-D | FEMALE | |
Dutch (Netherlands) | Standard | nl-NL | nl-NL-Standard-E | FEMALE | |
Dutch (Netherlands) | Premium | nl-NL | nl-NL-Wavenet-A | FEMALE | |
Dutch (Netherlands) | Premium | nl-NL | nl-NL-Wavenet-B | MALE | |
Dutch (Netherlands) | Premium | nl-NL | nl-NL-Wavenet-C | MALE | |
Dutch (Netherlands) | Premium | nl-NL | nl-NL-Wavenet-D | FEMALE | |
Dutch (Netherlands) | Premium | nl-NL | nl-NL-Wavenet-E | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-Neural2-A | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-Neural2-B | MALE | |
English (Australia) | Premium | en-AU | en-AU-Neural2-C | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-Neural2-D | MALE | |
English (Australia) | Premium | en-AU | en-AU-News-E | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-News-F | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-News-G | MALE | |
English (Australia) | Premium | en-AU | en-AU-Polyglot-1 | MALE | |
English (Australia) | Standard | en-AU | en-AU-Standard-A | FEMALE | |
English (Australia) | Standard | en-AU | en-AU-Standard-B | MALE | |
English (Australia) | Standard | en-AU | en-AU-Standard-C | FEMALE | |
English (Australia) | Standard | en-AU | en-AU-Standard-D | MALE | |
English (Australia) | Premium | en-AU | en-AU-Wavenet-A | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-Wavenet-B | MALE | |
English (Australia) | Premium | en-AU | en-AU-Wavenet-C | FEMALE | |
English (Australia) | Premium | en-AU | en-AU-Wavenet-D | MALE | |
English (India) | Premium | en-IN | en-IN-Neural2-A | FEMALE | |
English (India) | Premium | en-IN | en-IN-Neural2-B | MALE | |
English (India) | Premium | en-IN | en-IN-Neural2-C | MALE | |
English (India) | Premium | en-IN | en-IN-Neural2-D | FEMALE | |
English (India) | Standard | en-IN | en-IN-Standard-A | FEMALE | |
English (India) | Standard | en-IN | en-IN-Standard-B | MALE | |
English (India) | Standard | en-IN | en-IN-Standard-C | MALE | |
English (India) | Standard | en-IN | en-IN-Standard-D | FEMALE | |
English (India) | Premium | en-IN | en-IN-Wavenet-A | FEMALE | |
English (India) | Premium | en-IN | en-IN-Wavenet-B | MALE | |
English (India) | Premium | en-IN | en-IN-Wavenet-C | MALE | |
English (India) | Premium | en-IN | en-IN-Wavenet-D | FEMALE | |
English (UK) | Premium | en-GB | en-GB-Neural2-A | FEMALE | |
English (UK) | Premium | en-GB | en-GB-Neural2-B | MALE | |
English (UK) | Premium | en-GB | en-GB-Neural2-C | FEMALE | |
English (UK) | Premium | en-GB | en-GB-Neural2-D | MALE | |
English (UK) | Premium | en-GB | en-GB-Neural2-F | FEMALE | |
English (UK) | Premium | en-GB | en-GB-News-G | FEMALE | |
English (UK) | Premium | en-GB | en-GB-News-H | FEMALE | |
English (UK) | Premium | en-GB | en-GB-News-I | FEMALE | |
English (UK) | Premium | en-GB | en-GB-News-J | MALE | |
English (UK) | Premium | en-GB | en-GB-News-K | MALE | |
English (UK) | Premium | en-GB | en-GB-News-L | MALE | |
English (UK) | Premium | en-GB | en-GB-News-M | MALE | |
English (UK) | Standard | en-GB | en-GB-Standard-A | FEMALE | |
English (UK) | Standard | en-GB | en-GB-Standard-B | MALE | |
English (UK) | Standard | en-GB | en-GB-Standard-C | FEMALE | |
English (UK) | Standard | en-GB | en-GB-Standard-D | MALE | |
English (UK) | Standard | en-GB | en-GB-Standard-F | FEMALE | |
English (UK) | Studio | en-GB | en-GB-Studio-B | MALE | |
English (UK) | Studio | en-GB | en-GB-Studio-C | FEMALE | |
English (UK) | Premium | en-GB | en-GB-Wavenet-A | FEMALE | |
English (UK) | Premium | en-GB | en-GB-Wavenet-B | MALE | |
English (UK) | Premium | en-GB | en-GB-Wavenet-C | FEMALE | |
English (UK) | Premium | en-GB | en-GB-Wavenet-D | MALE | |
English (UK) | Premium | en-GB | en-GB-Wavenet-F | FEMALE | |
English (US) | Premium | en-US | en-US-Casual-K | MALE | |
English (US) | Premium | en-US | en-US-Journey-D | MALE | |
English (US) | Premium | en-US | en-US-Journey-F | FEMALE | |
English (US) | Premium | en-US | en-US-Journey-O | FEMALE | |
English (US) | Premium | en-US | en-US-Neural2-A | MALE | |
English (US) | Premium | en-US | en-US-Neural2-C | FEMALE | |
English (US) | Premium | en-US | en-US-Neural2-D | MALE | |
English (US) | Premium | en-US | en-US-Neural2-E | FEMALE | |
English (US) | Premium | en-US | en-US-Neural2-F | FEMALE | |
English (US) | Premium | en-US | en-US-Neural2-G | FEMALE | |
English (US) | Premium | en-US | en-US-Neural2-H | FEMALE | |
English (US) | Premium | en-US | en-US-Neural2-I | MALE | |
English (US) | Premium | en-US | en-US-Neural2-J | MALE | |
English (US) | Premium | en-US | en-US-News-K | FEMALE | |
English (US) | Premium | en-US | en-US-News-L | FEMALE | |
English (US) | Premium | en-US | en-US-News-N | MALE | |
English (US) | Premium | en-US | en-US-Polyglot-1 | MALE | |
English (US) | Standard | en-US | en-US-Standard-A | MALE | |
English (US) | Standard | en-US | en-US-Standard-B | MALE | |
English (US) | Standard | en-US | en-US-Standard-C | FEMALE | |
English (US) | Standard | en-US | en-US-Standard-D | MALE | |
English (US) | Standard | en-US | en-US-Standard-E | FEMALE | |
English (US) | Standard | en-US | en-US-Standard-F | FEMALE | |
English (US) | Standard | en-US | en-US-Standard-G | FEMALE | |
English (US) | Standard | en-US | en-US-Standard-H | FEMALE | |
English (US) | Standard | en-US | en-US-Standard-I | MALE | |
English (US) | Standard | en-US | en-US-Standard-J | MALE | |
English (US) | Studio | en-US | en-US-Studio-O | FEMALE | |
English (US) | Studio | en-US | en-US-Studio-Q | MALE | |
English (US) | Premium | en-US | en-US-Wavenet-A | MALE | |
English (US) | Premium | en-US | en-US-Wavenet-B | MALE | |
English (US) | Premium | en-US | en-US-Wavenet-C | FEMALE | |
English (US) | Premium | en-US | en-US-Wavenet-D | MALE | |
English (US) | Premium | en-US | en-US-Wavenet-E | FEMALE | |
English (US) | Premium | en-US | en-US-Wavenet-F | FEMALE | |
English (US) | Premium | en-US | en-US-Wavenet-G | FEMALE | |
English (US) | Premium | en-US | en-US-Wavenet-H | FEMALE | |
English (US) | Premium | en-US | en-US-Wavenet-I | MALE | |
English (US) | Premium | en-US | en-US-Wavenet-J | MALE | |
Filipino (Philippines) | Standard | fil-PH | fil-PH-Standard-A | FEMALE | |
Filipino (Philippines) | Standard | fil-PH | fil-PH-Standard-B | FEMALE | |
Filipino (Philippines) | Standard | fil-PH | fil-PH-Standard-C | MALE | |
Filipino (Philippines) | Standard | fil-PH | fil-PH-Standard-D | MALE | |
Filipino (Philippines) | Premium | fil-PH | fil-PH-Wavenet-A | FEMALE | |
Filipino (Philippines) | Premium | fil-PH | fil-PH-Wavenet-B | FEMALE | |
Filipino (Philippines) | Premium | fil-PH | fil-PH-Wavenet-C | MALE | |
Filipino (Philippines) | Premium | fil-PH | fil-PH-Wavenet-D | MALE | |
Filipino (Philippines) | Premium | fil-PH | fil-ph-Neural2-A | FEMALE | |
Filipino (Philippines) | Premium | fil-PH | fil-ph-Neural2-D | MALE | |
Finnish (Finland) | Standard | fi-FI | fi-FI-Standard-A | FEMALE | |
Finnish (Finland) | Premium | fi-FI | fi-FI-Wavenet-A | FEMALE | |
French (Canada) | Premium | fr-CA | fr-CA-Neural2-A | FEMALE | |
French (Canada) | Premium | fr-CA | fr-CA-Neural2-B | MALE | |
French (Canada) | Premium | fr-CA | fr-CA-Neural2-C | FEMALE | |
French (Canada) | Premium | fr-CA | fr-CA-Neural2-D | MALE | |
French (Canada) | Standard | fr-CA | fr-CA-Standard-A | FEMALE | |
French (Canada) | Standard | fr-CA | fr-CA-Standard-B | MALE | |
French (Canada) | Standard | fr-CA | fr-CA-Standard-C | FEMALE | |
French (Canada) | Standard | fr-CA | fr-CA-Standard-D | MALE | |
French (Canada) | Premium | fr-CA | fr-CA-Wavenet-A | FEMALE | |
French (Canada) | Premium | fr-CA | fr-CA-Wavenet-B | MALE | |
French (Canada) | Premium | fr-CA | fr-CA-Wavenet-C | FEMALE | |
French (Canada) | Premium | fr-CA | fr-CA-Wavenet-D | MALE | |
French (France) | Premium | fr-FR | fr-FR-Neural2-A | FEMALE | |
French (France) | Premium | fr-FR | fr-FR-Neural2-B | MALE | |
French (France) | Premium | fr-FR | fr-FR-Neural2-C | FEMALE | |
French (France) | Premium | fr-FR | fr-FR-Neural2-D | MALE | |
French (France) | Premium | fr-FR | fr-FR-Neural2-E | FEMALE | |
French (France) | Premium | fr-FR | fr-FR-Polyglot-1 | MALE | |
French (France) | Standard | fr-FR | fr-FR-Standard-A | FEMALE | |
French (France) | Standard | fr-FR | fr-FR-Standard-B | MALE | |
French (France) | Standard | fr-FR | fr-FR-Standard-C | FEMALE | |
French (France) | Standard | fr-FR | fr-FR-Standard-D | MALE | |
French (France) | Standard | fr-FR | fr-FR-Standard-E | FEMALE | |
French (France) | Studio | fr-FR | fr-FR-Studio-A | FEMALE | |
French (France) | Studio | fr-FR | fr-FR-Studio-D | MALE | |
French (France) | Premium | fr-FR | fr-FR-Wavenet-A | FEMALE | |
French (France) | Premium | fr-FR | fr-FR-Wavenet-B | MALE | |
French (France) | Premium | fr-FR | fr-FR-Wavenet-C | FEMALE | |
French (France) | Premium | fr-FR | fr-FR-Wavenet-D | MALE | |
French (France) | Premium | fr-FR | fr-FR-Wavenet-E | FEMALE | |
Galician (Spain) | Standard | gl-ES | gl-ES-Standard-A | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Neural2-A | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Neural2-B | MALE | |
German (Germany) | Premium | de-DE | de-DE-Neural2-C | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Neural2-D | MALE | |
German (Germany) | Premium | de-DE | de-DE-Neural2-F | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Polyglot-1 | MALE | |
German (Germany) | Standard | de-DE | de-DE-Standard-A | FEMALE | |
German (Germany) | Standard | de-DE | de-DE-Standard-B | MALE | |
German (Germany) | Standard | de-DE | de-DE-Standard-C | FEMALE | |
German (Germany) | Standard | de-DE | de-DE-Standard-D | MALE | |
German (Germany) | Standard | de-DE | de-DE-Standard-E | MALE | |
German (Germany) | Standard | de-DE | de-DE-Standard-F | FEMALE | |
German (Germany) | Studio | de-DE | de-DE-Studio-B | MALE | |
German (Germany) | Studio | de-DE | de-DE-Studio-C | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Wavenet-A | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Wavenet-B | MALE | |
German (Germany) | Premium | de-DE | de-DE-Wavenet-C | FEMALE | |
German (Germany) | Premium | de-DE | de-DE-Wavenet-D | MALE | |
German (Germany) | Premium | de-DE | de-DE-Wavenet-E | MALE | |
German (Germany) | Premium | de-DE | de-DE-Wavenet-F | FEMALE | |
Greek (Greece) | Standard | el-GR | el-GR-Standard-A | FEMALE | |
Greek (Greece) | Premium | el-GR | el-GR-Wavenet-A | FEMALE | |
Gujarati (India) | Standard | gu-IN | gu-IN-Standard-A | FEMALE | |
Gujarati (India) | Standard | gu-IN | gu-IN-Standard-B | MALE | |
Gujarati (India) | Standard | gu-IN | gu-IN-Standard-C | FEMALE | |
Gujarati (India) | Standard | gu-IN | gu-IN-Standard-D | MALE | |
Gujarati (India) | Premium | gu-IN | gu-IN-Wavenet-A | FEMALE | |
Gujarati (India) | Premium | gu-IN | gu-IN-Wavenet-B | MALE | |
Gujarati (India) | Premium | gu-IN | gu-IN-Wavenet-C | FEMALE | |
Gujarati (India) | Premium | gu-IN | gu-IN-Wavenet-D | MALE | |
Hebrew (Israel) | Standard | he-IL | he-IL-Standard-A | FEMALE | |
Hebrew (Israel) | Standard | he-IL | he-IL-Standard-B | MALE | |
Hebrew (Israel) | Standard | he-IL | he-IL-Standard-C | FEMALE | |
Hebrew (Israel) | Standard | he-IL | he-IL-Standard-D | MALE | |
Hebrew (Israel) | Premium | he-IL | he-IL-Wavenet-A | FEMALE | |
Hebrew (Israel) | Premium | he-IL | he-IL-Wavenet-B | MALE | |
Hebrew (Israel) | Premium | he-IL | he-IL-Wavenet-C | FEMALE | |
Hebrew (Israel) | Premium | he-IL | he-IL-Wavenet-D | MALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Neural2-A | FEMALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Neural2-B | MALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Neural2-C | MALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Neural2-D | FEMALE | |
Hindi (India) | Standard | hi-IN | hi-IN-Standard-A | FEMALE | |
Hindi (India) | Standard | hi-IN | hi-IN-Standard-B | MALE | |
Hindi (India) | Standard | hi-IN | hi-IN-Standard-C | MALE | |
Hindi (India) | Standard | hi-IN | hi-IN-Standard-D | FEMALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Wavenet-A | FEMALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Wavenet-B | MALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Wavenet-C | MALE | |
Hindi (India) | Premium | hi-IN | hi-IN-Wavenet-D | FEMALE | |
Hungarian (Hungary) | Standard | hu-HU | hu-HU-Standard-A | FEMALE | |
Hungarian (Hungary) | Premium | hu-HU | hu-HU-Wavenet-A | FEMALE | |
Icelandic (Iceland) | Standard | is-IS | is-IS-Standard-A | FEMALE | |
Indonesian (Indonesia) | Standard | id-ID | id-ID-Standard-A | FEMALE | |
Indonesian (Indonesia) | Standard | id-ID | id-ID-Standard-B | MALE | |
Indonesian (Indonesia) | Standard | id-ID | id-ID-Standard-C | MALE | |
Indonesian (Indonesia) | Standard | id-ID | id-ID-Standard-D | FEMALE | |
Indonesian (Indonesia) | Premium | id-ID | id-ID-Wavenet-A | FEMALE | |
Indonesian (Indonesia) | Premium | id-ID | id-ID-Wavenet-B | MALE | |
Indonesian (Indonesia) | Premium | id-ID | id-ID-Wavenet-C | MALE | |
Indonesian (Indonesia) | Premium | id-ID | id-ID-Wavenet-D | FEMALE | |
Italian (Italy) | Premium | it-IT | it-IT-Neural2-A | FEMALE | |
Italian (Italy) | Premium | it-IT | it-IT-Neural2-C | MALE | |
Italian (Italy) | Standard | it-IT | it-IT-Standard-A | FEMALE | |
Italian (Italy) | Standard | it-IT | it-IT-Standard-B | FEMALE | |
Italian (Italy) | Standard | it-IT | it-IT-Standard-C | MALE | |
Italian (Italy) | Standard | it-IT | it-IT-Standard-D | MALE | |
Italian (Italy) | Premium | it-IT | it-IT-Wavenet-A | FEMALE | |
Italian (Italy) | Premium | it-IT | it-IT-Wavenet-B | FEMALE | |
Italian (Italy) | Premium | it-IT | it-IT-Wavenet-C | MALE | |
Italian (Italy) | Premium | it-IT | it-IT-Wavenet-D | MALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Neural2-B | FEMALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Neural2-C | MALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Neural2-D | MALE | |
Japanese (Japan) | Standard | ja-JP | ja-JP-Standard-A | FEMALE | |
Japanese (Japan) | Standard | ja-JP | ja-JP-Standard-B | FEMALE | |
Japanese (Japan) | Standard | ja-JP | ja-JP-Standard-C | MALE | |
Japanese (Japan) | Standard | ja-JP | ja-JP-Standard-D | MALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Wavenet-A | FEMALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Wavenet-B | FEMALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Wavenet-C | MALE | |
Japanese (Japan) | Premium | ja-JP | ja-JP-Wavenet-D | MALE | |
Kannada (India) | Standard | kn-IN | kn-IN-Standard-A | FEMALE | |
Kannada (India) | Standard | kn-IN | kn-IN-Standard-B | MALE | |
Kannada (India) | Standard | kn-IN | kn-IN-Standard-C | FEMALE | |
Kannada (India) | Standard | kn-IN | kn-IN-Standard-D | MALE | |
Kannada (India) | Premium | kn-IN | kn-IN-Wavenet-A | FEMALE | |
Kannada (India) | Premium | kn-IN | kn-IN-Wavenet-B | MALE | |
Kannada (India) | Premium | kn-IN | kn-IN-Wavenet-C | FEMALE | |
Kannada (India) | Premium | kn-IN | kn-IN-Wavenet-D | MALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Neural2-A | FEMALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Neural2-B | FEMALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Neural2-C | MALE | |
Korean (South Korea) | Standard | ko-KR | ko-KR-Standard-A | FEMALE | |
Korean (South Korea) | Standard | ko-KR | ko-KR-Standard-B | FEMALE | |
Korean (South Korea) | Standard | ko-KR | ko-KR-Standard-C | MALE | |
Korean (South Korea) | Standard | ko-KR | ko-KR-Standard-D | MALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Wavenet-A | FEMALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Wavenet-B | FEMALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Wavenet-C | MALE | |
Korean (South Korea) | Premium | ko-KR | ko-KR-Wavenet-D | MALE | |
Latvian (Latvia) | Standard | lv-LV | lv-LV-Standard-A | MALE | |
Lithuanian (Lithuania) | Standard | lt-LT | lt-LT-Standard-A | MALE | |
Malay (Malaysia) | Standard | ms-MY | ms-MY-Standard-A | FEMALE | |
Malay (Malaysia) | Standard | ms-MY | ms-MY-Standard-B | MALE | |
Malay (Malaysia) | Standard | ms-MY | ms-MY-Standard-C | FEMALE | |
Malay (Malaysia) | Standard | ms-MY | ms-MY-Standard-D | MALE | |
Malay (Malaysia) | Premium | ms-MY | ms-MY-Wavenet-A | FEMALE | |
Malay (Malaysia) | Premium | ms-MY | ms-MY-Wavenet-B | MALE | |
Malay (Malaysia) | Premium | ms-MY | ms-MY-Wavenet-C | FEMALE | |
Malay (Malaysia) | Premium | ms-MY | ms-MY-Wavenet-D | MALE | |
Malayalam (India) | Standard | ml-IN | ml-IN-Standard-A | FEMALE | |
Malayalam (India) | Standard | ml-IN | ml-IN-Standard-B | MALE | |
Malayalam (India) | Standard | ml-IN | ml-IN-Standard-C | FEMALE | |
Malayalam (India) | Standard | ml-IN | ml-IN-Standard-D | MALE | |
Malayalam (India) | Premium | ml-IN | ml-IN-Wavenet-A | FEMALE | |
Malayalam (India) | Premium | ml-IN | ml-IN-Wavenet-B | MALE | |
Malayalam (India) | Premium | ml-IN | ml-IN-Wavenet-C | FEMALE | |
Malayalam (India) | Premium | ml-IN | ml-IN-Wavenet-D | MALE | |
Mandarin Chinese | Standard | cmn-CN | cmn-CN-Standard-A | FEMALE | |
Mandarin Chinese | Standard | cmn-CN | cmn-CN-Standard-B | MALE | |
Mandarin Chinese | Standard | cmn-CN | cmn-CN-Standard-C | MALE | |
Mandarin Chinese | Standard | cmn-CN | cmn-CN-Standard-D | FEMALE | |
Mandarin Chinese | Premium | cmn-CN | cmn-CN-Wavenet-A | FEMALE | |
Mandarin Chinese | Premium | cmn-CN | cmn-CN-Wavenet-B | MALE | |
Mandarin Chinese | Premium | cmn-CN | cmn-CN-Wavenet-C | MALE | |
Mandarin Chinese | Premium | cmn-CN | cmn-CN-Wavenet-D | FEMALE | |
Mandarin Chinese | Standard | cmn-TW | cmn-TW-Standard-A | FEMALE | |
Mandarin Chinese | Standard | cmn-TW | cmn-TW-Standard-B | MALE | |
Mandarin Chinese | Standard | cmn-TW | cmn-TW-Standard-C | MALE | |
Mandarin Chinese | Premium | cmn-TW | cmn-TW-Wavenet-A | FEMALE | |
Mandarin Chinese | Premium | cmn-TW | cmn-TW-Wavenet-B | MALE | |
Mandarin Chinese | Premium | cmn-TW | cmn-TW-Wavenet-C | MALE | |
Marathi (India) | Standard | mr-IN | mr-IN-Standard-A | FEMALE | |
Marathi (India) | Standard | mr-IN | mr-IN-Standard-B | MALE | |
Marathi (India) | Standard | mr-IN | mr-IN-Standard-C | FEMALE | |
Marathi (India) | Premium | mr-IN | mr-IN-Wavenet-A | FEMALE | |
Marathi (India) | Premium | mr-IN | mr-IN-Wavenet-B | MALE | |
Marathi (India) | Premium | mr-IN | mr-IN-Wavenet-C | FEMALE | |
Norwegian (Norway) | Standard | nb-NO | nb-NO-Standard-A | FEMALE | |
Norwegian (Norway) | Standard | nb-NO | nb-NO-Standard-B | MALE | |
Norwegian (Norway) | Standard | nb-NO | nb-NO-Standard-C | FEMALE | |
Norwegian (Norway) | Standard | nb-NO | nb-NO-Standard-D | MALE | |
Norwegian (Norway) | Standard | nb-NO | nb-NO-Standard-E | FEMALE | |
Norwegian (Norway) | Premium | nb-NO | nb-NO-Wavenet-A | FEMALE | |
Norwegian (Norway) | Premium | nb-NO | nb-NO-Wavenet-B | MALE | |
Norwegian (Norway) | Premium | nb-NO | nb-NO-Wavenet-C | FEMALE | |
Norwegian (Norway) | Premium | nb-NO | nb-NO-Wavenet-D | MALE | |
Norwegian (Norway) | Premium | nb-NO | nb-NO-Wavenet-E | FEMALE | |
Polish (Poland) | Standard | pl-PL | pl-PL-Standard-A | FEMALE | |
Polish (Poland) | Standard | pl-PL | pl-PL-Standard-B | MALE | |
Polish (Poland) | Standard | pl-PL | pl-PL-Standard-C | MALE | |
Polish (Poland) | Standard | pl-PL | pl-PL-Standard-D | FEMALE | |
Polish (Poland) | Standard | pl-PL | pl-PL-Standard-E | FEMALE | |
Polish (Poland) | Premium | pl-PL | pl-PL-Wavenet-A | FEMALE | |
Polish (Poland) | Premium | pl-PL | pl-PL-Wavenet-B | MALE | |
Polish (Poland) | Premium | pl-PL | pl-PL-Wavenet-C | MALE | |
Polish (Poland) | Premium | pl-PL | pl-PL-Wavenet-D | FEMALE | |
Polish (Poland) | Premium | pl-PL | pl-PL-Wavenet-E | FEMALE | |
Portuguese (Brazil) | Premium | pt-BR | pt-BR-Neural2-A | FEMALE | |
Portuguese (Brazil) | Premium | pt-BR | pt-BR-Neural2-B | MALE | |
Portuguese (Brazil) | Premium | pt-BR | pt-BR-Neural2-C | FEMALE | |
Portuguese (Brazil) | Standard | pt-BR | pt-BR-Standard-A | FEMALE | |
Portuguese (Brazil) | Standard | pt-BR | pt-BR-Standard-B | MALE | |
Portuguese (Brazil) | Standard | pt-BR | pt-BR-Standard-C | FEMALE | |
Portuguese (Brazil) | Studio | pt-BR | pt-BR-Studio-B | MALE | |
Portuguese (Brazil) | Studio | pt-BR | pt-BR-Studio-C | FEMALE | |
Portuguese (Brazil) | Premium | pt-BR | pt-BR-Wavenet-A | FEMALE | |
Portuguese (Brazil) | Premium | pt-BR | pt-BR-Wavenet-B | MALE | |
Portuguese (Brazil) | Premium | pt-BR | pt-BR-Wavenet-C | FEMALE | |
Portuguese (Portugal) | Standard | pt-PT | pt-PT-Standard-A | FEMALE | |
Portuguese (Portugal) | Standard | pt-PT | pt-PT-Standard-B | MALE | |
Portuguese (Portugal) | Standard | pt-PT | pt-PT-Standard-C | MALE | |
Portuguese (Portugal) | Standard | pt-PT | pt-PT-Standard-D | FEMALE | |
Portuguese (Portugal) | Premium | pt-PT | pt-PT-Wavenet-A | FEMALE | |
Portuguese (Portugal) | Premium | pt-PT | pt-PT-Wavenet-B | MALE | |
Portuguese (Portugal) | Premium | pt-PT | pt-PT-Wavenet-C | MALE | |
Portuguese (Portugal) | Premium | pt-PT | pt-PT-Wavenet-D | FEMALE | |
Punjabi (India) | Standard | pa-IN | pa-IN-Standard-A | FEMALE | |
Punjabi (India) | Standard | pa-IN | pa-IN-Standard-B | MALE | |
Punjabi (India) | Standard | pa-IN | pa-IN-Standard-C | FEMALE | |
Punjabi (India) | Standard | pa-IN | pa-IN-Standard-D | MALE | |
Punjabi (India) | Premium | pa-IN | pa-IN-Wavenet-A | FEMALE | |
Punjabi (India) | Premium | pa-IN | pa-IN-Wavenet-B | MALE | |
Punjabi (India) | Premium | pa-IN | pa-IN-Wavenet-C | FEMALE | |
Punjabi (India) | Premium | pa-IN | pa-IN-Wavenet-D | MALE | |
Romanian (Romania) | Standard | ro-RO | ro-RO-Standard-A | FEMALE | |
Romanian (Romania) | Premium | ro-RO | ro-RO-Wavenet-A | FEMALE | |
Russian (Russia) | Standard | ru-RU | ru-RU-Standard-A | FEMALE | |
Russian (Russia) | Standard | ru-RU | ru-RU-Standard-B | MALE | |
Russian (Russia) | Standard | ru-RU | ru-RU-Standard-C | FEMALE | |
Russian (Russia) | Standard | ru-RU | ru-RU-Standard-D | MALE | |
Russian (Russia) | Standard | ru-RU | ru-RU-Standard-E | FEMALE | |
Russian (Russia) | Premium | ru-RU | ru-RU-Wavenet-A | FEMALE | |
Russian (Russia) | Premium | ru-RU | ru-RU-Wavenet-B | MALE | |
Russian (Russia) | Premium | ru-RU | ru-RU-Wavenet-C | FEMALE | |
Russian (Russia) | Premium | ru-RU | ru-RU-Wavenet-D | MALE | |
Russian (Russia) | Premium | ru-RU | ru-RU-Wavenet-E | FEMALE | |
Serbian (Cyrillic) | Standard | sr-RS | sr-RS-Standard-A | FEMALE | |
Slovak (Slovakia) | Standard | sk-SK | sk-SK-Standard-A | FEMALE | |
Slovak (Slovakia) | Premium | sk-SK | sk-SK-Wavenet-A | FEMALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Neural2-A | FEMALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Neural2-B | MALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Neural2-C | FEMALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Neural2-D | FEMALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Neural2-E | FEMALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Neural2-F | MALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Polyglot-1 | MALE | |
Spanish (Spain) | Standard | es-ES | es-ES-Standard-A | FEMALE | |
Spanish (Spain) | Standard | es-ES | es-ES-Standard-B | MALE | |
Spanish (Spain) | Standard | es-ES | es-ES-Standard-C | FEMALE | |
Spanish (Spain) | Standard | es-ES | es-ES-Standard-D | FEMALE | |
Spanish (Spain) | Studio | es-ES | es-ES-Studio-C | FEMALE | |
Spanish (Spain) | Studio | es-ES | es-ES-Studio-F | MALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Wavenet-B | MALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Wavenet-C | FEMALE | |
Spanish (Spain) | Premium | es-ES | es-ES-Wavenet-D | FEMALE | |
Spanish (US) | Premium | es-US | es-US-Neural2-A | FEMALE | |
Spanish (US) | Premium | es-US | es-US-Neural2-B | MALE | |
Spanish (US) | Premium | es-US | es-US-Neural2-C | MALE | |
Spanish (US) | Premium | es-US | es-US-News-D | MALE | |
Spanish (US) | Premium | es-US | es-US-News-E | MALE | |
Spanish (US) | Premium | es-US | es-US-News-F | FEMALE | |
Spanish (US) | Premium | es-US | es-US-News-G | FEMALE | |
Spanish (US) | Premium | es-US | es-US-Polyglot-1 | MALE | |
Spanish (US) | Standard | es-US | es-US-Standard-A | FEMALE | |
Spanish (US) | Standard | es-US | es-US-Standard-B | MALE | |
Spanish (US) | Standard | es-US | es-US-Standard-C | MALE | |
Spanish (US) | Studio | es-US | es-US-Studio-B | MALE | |
Spanish (US) | Premium | es-US | es-US-Wavenet-A | FEMALE | |
Spanish (US) | Premium | es-US | es-US-Wavenet-B | MALE | |
Spanish (US) | Premium | es-US | es-US-Wavenet-C | MALE | |
Swedish (Sweden) | Standard | sv-SE | sv-SE-Standard-A | FEMALE | |
Swedish (Sweden) | Standard | sv-SE | sv-SE-Standard-B | FEMALE | |
Swedish (Sweden) | Standard | sv-SE | sv-SE-Standard-C | FEMALE | |
Swedish (Sweden) | Standard | sv-SE | sv-SE-Standard-D | MALE | |
Swedish (Sweden) | Standard | sv-SE | sv-SE-Standard-E | MALE | |
Swedish (Sweden) | Premium | sv-SE | sv-SE-Wavenet-A | FEMALE | |
Swedish (Sweden) | Premium | sv-SE | sv-SE-Wavenet-B | FEMALE | |
Swedish (Sweden) | Premium | sv-SE | sv-SE-Wavenet-C | MALE | |
Swedish (Sweden) | Premium | sv-SE | sv-SE-Wavenet-D | FEMALE | |
Swedish (Sweden) | Premium | sv-SE | sv-SE-Wavenet-E | MALE | |
Tamil (India) | Standard | ta-IN | ta-IN-Standard-A | FEMALE | |
Tamil (India) | Standard | ta-IN | ta-IN-Standard-B | MALE | |
Tamil (India) | Standard | ta-IN | ta-IN-Standard-C | FEMALE | |
Tamil (India) | Standard | ta-IN | ta-IN-Standard-D | MALE | |
Tamil (India) | Premium | ta-IN | ta-IN-Wavenet-A | FEMALE | |
Tamil (India) | Premium | ta-IN | ta-IN-Wavenet-B | MALE | |
Tamil (India) | Premium | ta-IN | ta-IN-Wavenet-C | FEMALE | |
Tamil (India) | Premium | ta-IN | ta-IN-Wavenet-D | MALE | |
Telugu (India) | Standard | te-IN | te-IN-Standard-A | FEMALE | |
Telugu (India) | Standard | te-IN | te-IN-Standard-B | MALE | |
Thai (Thailand) | Premium | th-TH | th-TH-Neural2-C | FEMALE | |
Thai (Thailand) | Standard | th-TH | th-TH-Standard-A | FEMALE | |
Turkish (Turkey) | Standard | tr-TR | tr-TR-Standard-A | FEMALE | |
Turkish (Turkey) | Standard | tr-TR | tr-TR-Standard-B | MALE | |
Turkish (Turkey) | Standard | tr-TR | tr-TR-Standard-C | FEMALE | |
Turkish (Turkey) | Standard | tr-TR | tr-TR-Standard-D | FEMALE | |
Turkish (Turkey) | Standard | tr-TR | tr-TR-Standard-E | MALE | |
Turkish (Turkey) | Premium | tr-TR | tr-TR-Wavenet-A | FEMALE | |
Turkish (Turkey) | Premium | tr-TR | tr-TR-Wavenet-B | MALE | |
Turkish (Turkey) | Premium | tr-TR | tr-TR-Wavenet-C | FEMALE | |
Turkish (Turkey) | Premium | tr-TR | tr-TR-Wavenet-D | FEMALE | |
Turkish (Turkey) | Premium | tr-TR | tr-TR-Wavenet-E | MALE | |
Ukrainian (Ukraine) | Standard | uk-UA | uk-UA-Standard-A | FEMALE | |
Ukrainian (Ukraine) | Premium | uk-UA | uk-UA-Wavenet-A | FEMALE | |
Vietnamese (Vietnam) | Premium | vi-VN | vi-VN-Neural2-A | FEMALE | |
Vietnamese (Vietnam) | Premium | vi-VN | vi-VN-Neural2-D | MALE | |
Vietnamese (Vietnam) | Standard | vi-VN | vi-VN-Standard-A | FEMALE | |
Vietnamese (Vietnam) | Standard | vi-VN | vi-VN-Standard-B | MALE | |
Vietnamese (Vietnam) | Standard | vi-VN | vi-VN-Standard-C | FEMALE | |
Vietnamese (Vietnam) | Standard | vi-VN | vi-VN-Standard-D | MALE | |
Vietnamese (Vietnam) | Premium | vi-VN | vi-VN-Wavenet-A | FEMALE | |
Vietnamese (Vietnam) | Premium | vi-VN | vi-VN-Wavenet-B | MALE | |
Vietnamese (Vietnam) | Premium | vi-VN | vi-VN-Wavenet-C | FEMALE | |
Vietnamese (Vietnam) | Premium | vi-VN | vi-VN-Wavenet-D | MALE |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License , and code samples are licensed under the Apache 2.0 License . For details, see the Google Developers Site Policies . Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-08-29 UTC.
IMAGES
VIDEO
COMMENTS
Introduction. The AIY Voice Kit from Google lets you build your own natural language processor and connect it to the Google Assistant or Cloud Speech-to-Text service, allowing you to ask questions and issue voice commands to your programs. All of this fits in a handy little cardboard cube, powered by a Raspberry Pi.
Find the speaker with the red and black wires attached. Insert the speaker's red wire end into the "+" terminal on the Voice HAT blue screw connector. Do the same for the black wire end into the "-" terminal. At this point, they should be sitting there unsecured. Now screw the wires in place with a Phillips "00" screwdriver.
Google speech api integration. $29.99 Sign in to Buy. Supported Platforms. Supported Engine Versions. 4.20 - 4.27, 5.0 - 5.4. Download Type. Engine Plugin. This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice ...
Voice Kit. Do-it-yourself intelligent speaker. Experiment with voice recognition and the Google Assistant. Build it. With the Google Assistant built-in, build an intelligent speaker that can understand you, and respond when you ask it a question or tell it to do something. Create your own projects that use voice recognition to control robots ...
The kit includes all of the components needed to assemble the basic kit that works with the Google Assistant SDK as well as on-device voice recognition with TensorFlow. To incorporate Google AIY into your Raspberry Pi projects, you will need a Raspberry Pi 3 Board, Micro SD Card, a size 00 Phillips screwdriver, and Scotch tape.
Go to google cloud and create payment account. Enable Cloud Speech-to-Text API and Cloud Text-to-Speech API. Create credentials to access your enabled APIs. See instructions here. There are two ways how you can use your credentials in project. 4.1 By using environment variables. Create environment variable GOOGLE_API_KEY with created key as value.
Cool things makers are doing with Voice Kit. Martin Mander created a retro-inspired intercom that he calls 1986 Google Pi Intercom. He describes it as "a wall-mounted Google voice assistant using a Raspberry Pi 3 and the AIY Voice Kit.". He used a mid-80s intercom that he bought on sale for £4.
The first open source reference project is the Voice Kit: instructions to build a Voice User Interface (VUI) that can use cloud services (like the new Google Assistant SDK or Cloud Speech API) or run completely on-device.This project extends the functionality of the most popular single board computer used for digital making - the Raspberry Pi.
Voice Kit overview ¶ The AIY Voice Kit is a do-it-yourself intelligent speaker built with a Raspberry Pi and the Voice Bonnet (or Voice HAT if using the V1 Voice Kit). ... To interact with the Google Assistant, convert speech to text, and perform other actions with the Voice Kit, the system image includes Python library with the following ...
Voice Kit overview. The AIY Voice Kit is a do-it-yourself intelligent speaker built with a Raspberry Pi and the Voice Bonnet (or Voice HAT if using the V1 Voice Kit). After you assemble the kit and run the included demos, you can extend the kit with your own software and hardware. Also see the Voice Kit assembly guide.
Speech-to-Text | Google Cloud
With this AIY Voice Kit from Google, you can build a standalone Google Assistant smart speaker or add voice recognition and natural language processing to your Raspberry Pi-based projects. The kit includes all of the components needed to assemble the basic kit that works with the Google Assistant SDK as well as on-device voice recognition with ...
Google Voice. Smart voice calling on all your devices. For personal use. Android iOS Web. Not in US? Learn more. For business. A smarter phone number. A Voice number works on smartphones and the web so you can place and receive calls from anywhere. Save time, stay connected. From simple navigation to voicemail transcription, Voice makes it ...
To use Google Speech-to-Text functionality on your Android device, go to Settings > Apps & notifications > Default apps > Assist App. Select Speech Recognition and Synthesis from Google as your preferred voice input engine. Speech Services powers applications to read the text on your screen aloud. For example, it can be used by: To use Google ...
Introduction. The Google AIY Voice Kit is a package that consists of a custom Raspberry Pi HAT (Hardware Attached on Top) board, a stereo microphone board, a push button switch with integrated LED, a small speaker and an assortment of cables and hardware to attach everything to a Raspberry Pi 3. Everything fits together in a cute little cardboard box.
Speech-to-Text documentation. View all product documentation. Speech-to-Text enables easy integration of Google speech recognition technologies into developer applications. Send audio and receive a text transcription from the Speech-to-Text API service. Learn more.
First, make sure your Voice Kit is still connected to a power supply and that the green LED on your Bonnet is still flashing. If it's not flashing, it may have timed out. Press and hold the Bonnet button for 5 seconds, and try again. If that doesn't work, first try restarting the app. Then if that doesn't work, your phone could be ...
Hi there, I just bought this plugin from the marketplace Google Speech Kit in Code Plugins - UE Marketplace and I'm following the documentation to set it up. ( GitHub - IlgarLunin/UE4GoogleSpeechKit-docs: Documentation page for GoogleSpeechKit ue4 plugin ). My blueprint is all set up as documentation say (see image below) but when it arrives ...
Create a project in minutes. Use our gRPC API with our Python client library or generated bindings for languages like Go, Java (including support for Android Things), C#, Node.js, and Ruby to give you the flexibility you need. Get links to learn about Google Assistant for experimental projects or the Google Assistant Service.
Supported voices and languages. Text-to-Speech provides the following voices. The list includes Neural2, Studio, Standard, and WaveNet voices. Studio, Neural2 and WaveNet voices are higher quality voices with different pricing; in the list, they have the voice type 'Neural2', 'Studio' or 'WaveNet'. To use these voices to create synthetic speech ...
10 reviews written 72 of 76 questions answered. Google speech api integration. $29.99 Sign in to Buy. Supported Platforms. Supported Engine Versions. 4.20 - 4.27, 5.0 - 5.4. Download Type. Engine Plugin. This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be ...
Google speech api integration. $29.99 Sign in to Buy. Supported Platforms. Supported Engine Versions. 4.20 - 4.27, 5.0 - 5.4. Download Type. Engine Plugin. This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice ...
Google speech api integration. $29.99 登录购买. 支持的平台. 支持的引擎版本. 4.20 - 4.27, 5.0 - 5.4. 下载类型. 引擎插件. 此产品包含一款代码插件,含有预编译的二进制文件以及与虚幻引擎集成的所有源代码,能够安装到您选择的引擎版本中,并根据每个项目的需求启动。.