Posts | Comments

Planet Arduino

Archive for the ‘speech recognition’ Category

For well over one hundred years, people have been constructing machines that dispense fortunes to those who ask at the insertion of a coin and the push of a button. In modern days, this has taken the form of mobile apps that can be far more expansive, albeit with a lack of physical interaction. Seeing an opportunity to use an embedded speech recognition model in this kind of application, the Electronic Cats team built the aptly named Fortune Cat just in time for some Halloween fun.

This small device, based on the Arduino Nano 33 BLE Sense, takes advantage of the onboard microphone to listen for words being spoken at the small cube. Performing the language processing is Cyberon’s Arduino Speech Recognition Engine, which was configured to listen for the wake phrase “Fortune Cat” and then later respond to “tell me my future” as its command phrase. After generating the model online, it was incorporated into the code via the DSpotter software development kit that lets the program check if either the wake or action phrase has been said and then act accordingly.

In this case, asking Fortune Cat for your future will present one of 20 random phrases that get displayed on the OLED mounted to the top of the 3D-printed enclosure. To read more about how the Electronic Cats crew created and configured Fortune Cat, you can check out their write-up here on Hackster.io or watch their video below!

The post Fortune Cat uses embedded speech recognition to predict your future appeared first on Arduino Blog.

Voice commands are a contactless, hands-free, natural way to interact with devices, equipment, and machines of all kinds: no wonder they are increasingly popular! With speech recognition technology advancing faster than you can say “users expect it,” developers often need to find ways to integrate it in their new projects. This, however, requires them to take the time to train a smart device to listen for wake-up words, understand commands… and potentially start over for every new voice or language.

To cut through all the hassle and help you integrate speech recognition in the easiest and fastest way, Arduino Pro has released Speech Recognition Engine: a powerful, ready-to-use and extensive software library born out of the collaboration with worldwide leader in the field, Cyberon. 

Let’s break it down:

  • Widely compatible: Speech Recognition Engine is compatible with various Arduino Nano and Portenta boards as well as with the Arduino IDE, and requires no additional hardware, software or internet connectivity. Integrate it in any new or existing project you have in mind.
  • Zero training time: Because it uses text input to define voice commands, Speech Engine Recognition translates what you say into instant results, with flexibility over the speaker’s actual voice, tone or accent.
  • It speaks your language: Its AI/ML engine understands commands in 40+ languages. This means you can quickly configure multiple wake-up words and sequences, in any major language spoken in the world.
  • Great for multiple users: With Speech Recognition Engine, your next smart device will be able to listen to different people without skipping a beat, making it perfect for applications ranging from information kiosks, vending machines and lockers, smart beds in hospitals, emergency call systems, and more. Its ability to filter background noises makes it especially suitable for public spaces and busy factory floors.
  • Industrial-grade performance: As part of Arduino Pro’s growing ecosystem of advanced professional solutions, Speech Recognition Engine was developed for industrial and building automation applications such as hands-free control of machinery, equipment, and devices of all kinds.

You can find out more details from the dedicated page. Or, if you’ve had enough of the talk and want to quickly and effortlessly integrate speech recognition in your next project, head to the Arduino Store and get started with the Speech Engine Recognition library!

The post Instantly understand 40+ languages, with Speech Recognition Engine appeared first on Arduino Blog.

Voice commands are a contactless, hands-free, natural way to interact with devices, equipment, and machines of all kinds: no wonder they are increasingly popular! With speech recognition technology advancing faster than you can say “users expect it,” developers often need to find ways to integrate it in their new projects. This, however, requires them to take the time to train a smart device to listen for wake-up words, understand commands… and potentially start over for every new voice or language.

To cut through all the hassle and help you integrate speech recognition in the easiest and fastest way, Arduino Pro has released Speech Recognition Engine: a powerful, ready-to-use and extensive software library born out of the collaboration with worldwide leader in the field, Cyberon. 

Let’s break it down:

  • Widely compatible: Speech Recognition Engine is compatible with various Arduino Nano and Portenta boards as well as with the Arduino IDE, and requires no additional hardware, software or internet connectivity. Integrate it in any new or existing project you have in mind.
  • Zero training time: Because it uses text input to define voice commands, Speech Engine Recognition translates what you say into instant results, with flexibility over the speaker’s actual voice, tone or accent.
  • It speaks your language: Its AI/ML engine understands commands in 40+ languages. This means you can quickly configure multiple wake-up words and sequences, in any major language spoken in the world.
  • Great for multiple users: With Speech Recognition Engine, your next smart device will be able to listen to different people without skipping a beat, making it perfect for applications ranging from information kiosks, vending machines and lockers, smart beds in hospitals, emergency call systems, and more. Its ability to filter background noises makes it especially suitable for public spaces and busy factory floors.
  • Industrial-grade performance: As part of Arduino Pro’s growing ecosystem of advanced professional solutions, Speech Recognition Engine was developed for industrial and building automation applications such as hands-free control of machinery, equipment, and devices of all kinds.

You can find out more details from the dedicated page. Or, if you’ve had enough of the talk and want to quickly and effortlessly integrate speech recognition in your next project, head to the Arduino Store and get started with the Speech Engine Recognition library!

The post Instantly understand 40+ languages, with Speech Recognition Engine appeared first on Arduino Blog.

Speech commands are all the rage on everything from digital assistants to cars. Adding it to your own projects is a lot of work, right? Maybe not. [Electronoobs] shows a speech board that lets you easily integrate 255 voice commands via serial communications with a host computer. You can see the review in the video below.

He had actually used a similar board before, but that version was a few years ago, and the new module has, of course, many new features. As of version 3.1, the board can handle 255 commands in a more flexible way than the older versions.

Although the board can handle 255 commands, it only listens for 7 of those at one time, which is an odd limitation. However, the older board had even stricter limits where you could only listen to one of three groups and each group had 5 commands. With the new board, you can pick any 7 of the 255 commands to be active at once. You can then replace some of the 7 with other commands based on context. For example, you might listen for a main menu command and, based on that selection, listen for a different set of second-level commands.s

The interface is either serial or I2C. We couldn’t help but think that if you could listen to 12 or 15 commands at once, you could have a set for listening to numbers which might be handy. Maybe version 4?

You train the commands using a microphone with an interactive wizard-like setup. The eventual target for this is a robot, but for now [Electronoobs] is just lighting up LEDs on command. But it looks very easy to use for whatever purpose as long as you can work out the limit of 7 commands.

It is harder to do, but you can make an Arduino process speech by itself. Even easier, with a bigger processor.

Although smartphone users have had the ability to quickly translate spoken words into nearly any modern language for years now, this feat has been quite tough to accomplish on small, memory-constrained microcontrollers. In response to this challenge, Hackster.io user Enzo decided to create a proof-of-concept project that demonstrated how an embedded device can determine the language currently being spoken without the need for an Internet connection. 

This so-called “language detector” is based on an Arduino Nano 33 BLE Sense, which is connected to a common PCA9685 motor driver that is, in turn, attached to a set of three micro servo motors — all powered by a single 9V battery. Enzo created a dataset by recording three words: “oui” (French), “si” (Italian), and “yes” (English) for around 10 minutes each for a total of 30 minutes of sound files. He also added three minutes of random background noise to help distinguish between the target keywords and non-important words. 

Once a model had been trained using Edge Impulse, Enzo exported it back onto his Nano 33 BLE Sense and wrote a small bit of code that reads audio from the microphone, classifies it, and determines which word is being spoken. Based on the result, the corresponding nation’s flag is raised to indicate the language.

You can see the project in action below and read more about it here on Hackster.io.

The post This Arduino device can detect which language is being spoken using tinyML appeared first on Arduino Blog.

Like most of us, [Peter] had a bit of extra time on his hands during quarantine and decided to take a look back at speech recognition technology in the 1970s. Quickly, he started thinking to himself, “Hmm…I wonder if I could do this with an Arduino Nano?” We’ve all probably had similar thoughts, but [Peter] really put his theory to the test.

The hardware itself is pretty straightforward. There is an Arduino Nano to run the speech recognition algorithm and a MAX9814 microphone amplifier to capture the voice commands. However, the beauty of [Peter’s] approach, lies in his software implementation. [Peter] has a bit of an interplay between a custom PC program he wrote and the Arduino Nano. The learning aspect of his algorithm is done on a PC, but the implementation is done in real-time on the Arduino Nano, a typical approach for really any machine learning algorithm deployed on a microcontroller. To capture sample audio commands, or utterances, [Peter] first had to optimize the Nano’s ADC so he could get sufficient sample rates for speech processing. Doing a bit of low-level programming, he achieved a sample rate of 9ksps, which is plenty fast for audio processing.

To analyze the utterances, he first divided each sample utterance into 50 ms segments. Think of dividing a single spoken word into its different syllables. Like analyzing the “se-” in “seven” separate from the “-ven.” 50 ms might be too long or too short to capture each syllable cleanly, but hopefully, that gives you a good mental picture of what [Peter’s] program is doing. He then calculated the energy of 5 different frequency bands, for every segment of every utterance. Normally that’s done using a Fourier transform, but the Nano doesn’t have enough processing power to compute the Fourier transform in real-time, so Peter tried a different approach. Instead, he implemented 5 sets of digital bandpass filters, allowing him to more easily compute the energy of the signal in each frequency band.

The energy of each frequency band for every segment is then sent to a PC where a custom-written program creates “templates” based on the sample utterances he generates. The crux of his algorithm is comparing how closely the energy of each frequency band for each utterance (and for each segment) is to the template. The PC program produces a .h file that can be compiled directly on the Nano. He uses the example of being able to recognize the numbers 0-9, but you could change those commands to “start” or “stop,” for example, if you would like to.

[Peter] admits that you can’t implement the type of speech recognition on an Arduino Nano that we’ve come to expect from those covert listening devices, but he mentions small, hands-free devices like a head-mounted multimeter could benefit from a single word or single phrase voice command. And maybe it could put your mind at ease knowing everything you say isn’t immediately getting beamed into the cloud and given to our AI overlords. Or maybe we’re all starting to get used to this. Whatever your position is on the current state of AI, hopefully, you’ve gained some inspiration for your next project.

After being given a 2009 MacBook, John Forsyth decided to use it to start a 1976 Jeep via voice control.

The build uses the laptop’s Enhanced Dictation functionality to convert text into speech, and when a Python program receives the proper keywords, it sends an “H” character over serial to an Arduino Uno to activate the vehicle.

The Uno uses a transistor to control a 12V relay, which passes current to the Jeep’s starter solenoid. After a short delay, the MacBook then transmits an “L” command to have it release the relay, ready to do the job again when needed!

As a fan of Iron Man, Forsyth channeled his inner Tony Stark and even programmed the system to respond to “JARVIS, let’s get things going!”

In the movie 2001: A Space Odyssey, HAL 9000 — the neurotic computer — had a birthday in 1992 (for some reason, in the book it is 1997). In the late 1960s, that date sounded impossibly far away, but now it seems like a distant memory. The only thing is, we are only now starting to get computers with voice I/O that are practical and even they are a far cry from HAL.

[GeraldF6] built an Arduino-based clock. That’s nothing new but thanks to a MOVI board (ok, shield), this clock has voice input and output as you can see in the video below. Unlike most modern speech-enabled devices, the MOVI board (and, thus, the clock, does not use an external server in the cloud or any remote processing at all. On the other hand, the speech quality isn’t what you might expect from any of the modern smartphone assistants that talk. We estimate it might be about 1/9 the power of the HAL 9000.

You might wonder what you have to say to a clock. You’ll see in the video you can do things like set and query timers. Unlike HAL, the device works like a Star Trek computer. You address it as Arduino. Then it beeps and you can speak a command. There’s also a real-time clock module.

Setting up the MOVI is simple:

 recognizer.init(); // Initialize MOVI (waits for it to boot)
 recognizer.callSign("Arduino"); // Train callsign Arduino (may take 20 seconds)
 recognizer.addSentence(F("What time is it ?")); // Add sentence 1
 recognizer.addSentence(F("What is the time ?")); // Add sentence 2
 recognizer.addSentence(F("What is the date ?")); // Add sentence 3
...

Then a call to recognizer.poll will return a numeric code for anything it hears. Here is a snippet:

// Get result from MOVI, 0 denotes nothing happened, negative values denote events (see docs)

 signed int res = recognizer.poll(); 

// Tell current time
 if (res==1 | res==2) { // Sentence 1 & 2
 if ( now.hour() > 12) 
 recognizer.say("It's " + String(now.hour()-12) + " " + ( now.minute() < 10 ? "O" : "" ) +
     String(now.minute()) + "P M" ); // Speak the time
...

Fairly easy.

HAL being a NASA project (USSC, not NASA, and HAL was a product of a lab at University of Illinois Urbana-Champaign – ed.) probably cost millions, but the MOVI board is $70-$90. It also isn’t likely to go crazy and try to kill you, so that’s another bonus. Maybe we’ll build one in a different casing. We recently talked about neural networks improving speech recognition and synthesis. This is a long way from that.


Filed under: Arduino Hacks, clock hacks

Roomba, I command thee! The author demonstrates voice command with an Arduino and Raspberry Pi.Take advantage of these open source resources to set up voice control with Raspberry Pi and bark orders at your home appliances.

Read more on MAKE

The post Roomba, I Command Thee: Use Raspberry Pi for Voice Control appeared first on Make: DIY Projects, How-Tos, Electronics, Crafts and Ideas for Makers.

Lug
10

MOVI, a standalone speech recognizer shield for Arduino

arduino, shield, speech recognition, voice Commenti disabilitati su MOVI, a standalone speech recognizer shield for Arduino 

20150701024028_MOVI

MOVI is an offline speech recognizer and voice synthesizer that adds voice control functionality to any Arduino project

MOVI stands for My Own Voice Interface! It is the first standalone speech recognizer and voice synthesizer for Arduino with full English sentence capability:
Up to 200 customizable English sentences.
Speaker independent
Standalone, cloudless and private
Very easy to program

MOVI provides an alternative to buttons, remote controls, or cell phones by letting you use full-sentence voice commands for tasks such as turning devices on and off, entering alarm codes, and carrying on programmed conversations with projects.

MOVI is plug and play! Connect the shield to your Arduino Uno or compatible board, connect an optional speaker, and you’re ready to go.

MOVI, a standalone speech recognizer shield for Arduino – [Link]



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook