 It is time. DigiKey and Adafruit present. This week's IonMPI is from Knowles. That's right. This is from Knowles. They do a lot of audio and microphone stuff. And I thought, I saw this microphone and I was like, oh, this is going to be just another I2S or PDM mic. But this is a really interesting microphone, the IA611. So this is like an all-in-one voice recognition system that lives inside of a teeny microphone chip. So let's show what it looks like. So this thing is basically the size of your standard PDM or I2S microphone. You can see even the top port. This is about three by four millimeters or so. And here's the problem that this is trying to solve. So everyone now has these like AirPods or IoT devices, and they all have voice activation or voice command systems. You ask your AirPods to do something. You ask your voice assistant to do something. You wake up your phone with it. And audio interfaces are really neat because, first off, they're really accessible. They're really configurable. You don't need buttons. You don't need to be near it. You can use them even if you're busy doing something. The ads always have people like cooking and they're like getting recipes or whatever. Or like telling their phone to call their mom. So a lot of people want to add voice control to their products, but adding voice control is really challenging. Why? Because voice recognition is actually computationally very difficult. And also you have to be listening all the time. So like compared to Bluetooth radios or a button press, where a button press, it's a mechanical thing. You can use the button press to send an IRQ to wake up your chip. So we have that capability built in or something like wireless. It wakes up every 20 or 100 milliseconds and looks for data being sent. And the data is being sent continuously. So as long as you wake up and you listen for long enough to catch the preamble of this RF message, you're good. With voice, you're not going to tell people to repeat themselves because they're not. And humans have this annoying habit of speaking whenever they want. Like in the middle of the night, they'll ask for a horoscope. Or while they're driving, the car is doing something and they'll ask for directions. There's no way to predict when humans are going to speak. So you have to be constantly listening and you can't miss any of it because if you do, your voice recognition algorithm is going to mess up. You really have to capture the entire utterance. And it's not easy to do. It's quite hard to do. And oftentimes, there's even cloud-based back ends that do the full command recognition. But to get started, you won't have a wake word, right? And that's why you say things like, okay, Google or okay, Alexa or okay, Siri or whatnot. And so if you can at least get the wake word stuff to happen automatically, you can then boot up the rest of the system and then do the cloud computation for the rest. So this chip, this microphone is designed to be embedded into systems where like for example, mobile or headphones or whatever. And it can do some basic commands or it can do wake word activation. Man, it's like the wake word is the key here. It doesn't do more than that. But if you can do the wake word activation, it can kick you back into the main processor which does the rest of the audio processing. So the IA611, there's also apparently the IA610. But we're going to talk about this IA611. So you can see it on the right again. It's PDM microphone shaped, but it's got some extra pins. It's four by three millimeters. And it acts as an I2S or PDM microphone. But in addition, it's got this DSP inside. So if you like look on the left there, it has like a cool CAD image. The two green dots in the middle are the MEMS microphone elements. There's the dual mic elements. And then there's a wire bonded chip and the chip is the DSP chip which you can program with a voice wake word model. It comes with a couple apparently already. Or you can program your own and download it into the firmware. And then it will kind of constantly be listening and do your wake word detection for you. So you've got the IA611. So it's got like the Sysonix MEMS which we've actually covered some MEMS microphones. Inside it's got a chip with the always on acoustic detector. So the always on acoustic detector is what detects if there's any audio at all. So it doesn't make sense to be running your wake word processor when there's no data coming in. So there's some basic like is there audio signal coming in from the analog section. And then that will trigger and interrupt to do the voice wake processing. And then once it wakes, it then will tell the application processor over I2C or UART or even SPI. And then inside is this 42 megahertz 32-bit Cortex M0, I don't know Cortex M3 with the DSP sub processor and lots of RAM. These are lots of RAM because it actually buffers a lot of audio for you. We'll chat about that in a moment. Okay, so the DSP sub system it uses this Hemi Delta processor, which does all of the, you know, it's optimized basically to be able to do the audio processing. What is the actual algorithm inside? I don't know because I'm sure it's under NDA and even if I didn't know, I wouldn't be able to tell you. You know, go and register over the Knowles website. You'll probably have to get permission to get access to the DSP. But once you're cleared, you could probably write code directly for the DSP or you can at least, you know, optimize your code for the DSP. But that's the processor that's literally inside the microphone. So then there's the pads on the bottom. On the bottom, it has a bunch of different audio ports. So once it does the wake word activation, right, and it sends an IRQ back to the main processor, it goes into a pass-through mode. And the pass-through mode can be an I2S or PDM. So, you know, no matter what your subsystem is expecting for basic microphone detection, I2S or PDM, you basically can configure the mic to give you either. And then the control messages, which is, you know, how you configure it, download firmware, download models, that's an I2C UART or SPI. And then here's how the basic works. So there's the ultra-low power mode. It's under a milliamp, I think it's like 200 microamps or something, is the ultra-low power mode. It's sitting around waiting for any signal at all, any audio signal. And then when it gets some audio signal you see at the top, it goes into stage one. Stage one is where it will look for the keyword. It will start to try to do that keyword detection. You want to pick a good keyword something that's very unique because you need to pick it out of general conversation. When it detects the keyword, it sends an interrupt to the host. The host wakes up within three seconds and then can take over and gets the rest of the... the ASR command, that's like the rest of the command, right? So it's like, you'd say like, hey, cue audio, you know, turn the audio up. So the hey cue audio is the wake word and turn the audio up is the command. The command is taken care of by your host processor, which has like intense computational abilities. The keyword is taken care of by the microphone itself. And then what's kind of neat, which I thought was a cute hack, is after it wakes up, right, and it does the IRQ to tell the main processor, okay, I detected the wake word, it will then... it has a circular audio buffer where it will buffer two to three seconds. It says three seconds at the bottom, two seconds at the top. It buffers audio so that the host has a few seconds to wake up and sometimes it's going to take a while for it to come out of sleep mode and get the memory ready and get the processor ready. And so it has three seconds in which to wake up and then it can read all of that stored data from the microphone. The microphone is acting like a little tape recorder. It can read that and then do the processing and then it can, of course, then tell the microphone. Once it's all done with the processing, everything can go back to sleep. If you want to, you know, it comes with a built-in training word. I think it was a voice queue. But if you want to do your own keyword, they have an Android app and it's interesting, it's like you can actually train your own keyword and you can take, like, lots of... I don't know if it's meant for end users or, like, developers, but you can use this to collect all the data because you have to collect a lot of data when you're doing wake word detection because, of course, you want it to detect all sorts of accents and people have, like, different voice timbers and they have different pronunciations. So you have to get a lot of that data, but they have an app that you can use to collect all that data. And then the model file, you actually can use Atmel Studio, which I thought was interesting. They have a DevKit that you can use with a SAMD21 processor and you take that wave file and then it converts it into a trained model where it does the computation to convert it into whatever machine learning model that's used for the utterance. You don't upload the wave. You combine all the waves together, basically, and you kind of take the averages of them to create the binary model. And then that binary model is downloaded into the microphone on boot so you can, you know, the I-squared scene you are at SPI interface, that's what you use to download the audio model into it. So you do have to set up the microphone. It's not, like, a trivial thing, but there is example code for all of this. And there's a Dev board as well, of course. Pick up the DevKit. And what's nice is, you know, folks who watch the show are probably familiar with the SAMD21 and Atmel Start and Atmel Studio. It's pretty easy. They have an example that goes with it and so you can use the built-in default model. They have a couple examples, like, you know, turn on the lights and pause the music and all, you know, three or four commands. And then you can practice with programming your own commands and burning it in. So remember, this is good for wake word and maybe very short basic commands. It's designed for headphones, but I think anything that is battery-powered, right, because this is really good for low-power usage where you want to have the, you don't want to be listening all the time. Like, if you're plugged into the wall, you don't need this because you can just run your DSP constantly. It doesn't matter. You're just constantly listening because it's a very high-power activity. It's for battery-powered things or, like, things that are headphones or cellular phones or mobile devices, radios, whatever, where you want to have voice control, but you don't want to spend all of your power seeing their wing for audio to come out. This is, like, a very turnkey solution, right? It's actually kind of neat that they shoved all of that into this little microphone. And the price is not that much more than a normal microphone. So you can save, like, six months of development time by picking up one of these. That's on Digi-Kate because this is IonMPI with Digi-Kate. That's right. So you can look for it with, you can type in SPK2611HM7H That's the actual microphone itself. Yeah, or theshoreyearldigike.com for it's not short, for it's not short. T7AQ8N44. Yes. So there you go. So I think this is neat because we always talk about machine learning on the edge. So this is, like, the perfect example of ultra-edge computing. Yeah. And we have a little one-minute video from them that we're going to play. Okay. The Knowles Intelligent Audio IA611 software development kit is an industry-leading solution that accelerates time to market with its combined hardware, software, and firmware package. Featuring the world's first smart microphone, the IA611 smart mic is a high-performance port MEMS microphone with an integrated DSP. It's ideal for ultra-low power always-on devices for the mobile, ear, and IoT markets. The onboard open DSP can be used by algorithm developers to create unique and exciting voice UI experiences for devices such as Bluetooth headphones and speakers, wearables, mobile phones, and voice-controlled smart home solutions. The Knowles IA611 SDK provides a comprehensive set of tools for developing DSP algorithms on the smart mic. And that's this week's Eye on MPI. Eye on MPI.