GoPiGo Carl Rejected Porcupine - (ML Voice Keyword Recognition)

Carl must think his nickname is “Porcupine” because he notices when I say it, or even whisper it from across the room.

For the last hour Carl has been collecting stats running the PicoVoice Porcupine Wake Word Engine, which is a Machine Learning trained speech recognition package:

Seems to be bumping the 15 minute load average from 0.18 to 0.28 or so. I think this small load means Carl will be able to listen for his name full-time. (I was thinking to only listen when he saw motion or a light level change in the room, but this will be much easier.)

$ porcupine_demo_mic --keywords porcupine --audio_device_index 1
(Bunch of ALSA startup complaints)
Listening {
  porcupine (0.50)
[2021-01-04 16:45:01.826126] Detected porcupine
[2021-01-04 17:33:04.281600] Detected porcupine
[2021-01-04 17:33:13.913535] Detected porcupine   <-- WHISPERED FROM ACROSS THE ROOM!
[2021-01-04 17:33:17.593605] Detected porcupine   <-- Whispered even quieter
[2021-01-04 17:33:19.224259] Detected porcupine
[2021-01-04 17:33:20.888447] Detected porcupine
[2021-01-04 17:33:22.905681] Detected porcupine
[2021-01-04 17:33:26.265903] Detected porcupine
[2021-01-04 18:01:29.813047] Detected porcupine

Alas, they do not allow free/personal accounts to create custom wake keywords for Raspberry Pi, so either Carl will have a nickname of “Computer”, “Jarvis”, or “Porcupine”, or I have to use my old faithful, totally opensource, pocketsphinx keyword detection.



I created the “Carl-ified” demo that says “Yes. I heard you.” whenever anyone speaks (or whispers) the word “porcupine”, but Carl’s investigation continues on.

(Carl was overheard singing “Say My Name, Say My Name” last night.)

It seems the CMU pocketsphinx engine that I used years back is obsolete, and a new open-source engine for research, called Vosk, is available from Alpha Cephai

Vosk even purports to support speaker-identification!

( I spent 20 years at IBM doing speech recognition and speaker identity verification for self-service telephony and automobile voice applications, so I know how hard this stuff is for a little processor like the Raspberry Pi 3B, … and how resourceful the research folks are. They would tell me “You are asking the wrong questions”, but I always managed to figure out how to use what they had for my purposes. I r n Enganeer.)

1 Like

Wow - that’s cool.


But frustrating now, because I don’t know any specific “whom” to ask when I hit a brick wall.
(Like today I managed to install the Vosk speech engine successfully, at least that is what it said “Successfully installed vosk-0.3.15”, but when I try to use it - it claims to need GFORTRAN_1.0 which was obsoleted over 10 years ago and is not available on Raspberry Pi. Uggh.)


Don’t look at me - I’ve written exactly 1 program in Fortran as part of a grad school survey course.


I filed a github “issue” and got an answer in six hours!

$ sudo apt-get install libgfortran3

I’ve got another new reco engine to try! Exciting.


Oooh so did my husband! Now wouldn’t that be funny :sweat_smile:


Then you have my sympathies, and he - my congratulations.

I loved my time at IBM, but at the end I couldn’t take the constant pressure to find work myself.
Everything turned remote with people I might never meet, (or 100% travel), with assignments for extremely limited durations, and my manager always had to offer me at a discount just to keep me assigned.

I liked working a project from the proposal to delivery, with a team I knew well. At the end, I was always training someone cheaper to do what I loved doing. (After I helped write a proposal, I wanted to write the code, test the code, install the code, and fix the bugs. I just didn’t fit any molds.)


Cool Beanies!
Totally Righteous!!

No wonder you can code with both feet in your sleep. . . .  Not only am I impressed outta my socks, you have my utmost respect and thanks.  A tip of the hat to you, good sir.

I, too, like a research-oriented environment, even in a production environment.  My favorite assignments were production crises that required creative, out-of-the-box thinking, (and some assembly language programming, perhaps), to develop a way to get the product out the door in a reasonable amount of time, and in good enough shape that I’d be comfortable flying at 40,000 feet with it.

The requirement for creative thought and independent research I found extremely stimulating.

Perhaps that’s what I find interesting about the GoPiGo - I can work on something until I get bored/frustrated or sick of looking at it, lay it aside to work on something else that catches my fancy, and then go back to the prior project once the second one is finished - or I get bored/frustrated with it.

There’s so much to chew on here - I don’t think I’ll be running out of projects to try anytime soon.