Speech Recognition and TTS in less than 500kb
345 points
4 days ago
| 20 comments
| github.com
| HN
clayhacks
7 hours ago
[-]
I made a little python wrapper around it to serve an HTTP endpoint that’s OpenAI/elevenlabs compatible https://github.com/clayrosenthal/bootlegger
reply
sgt
4 days ago
[-]
Quick link to the video where he demos it: https://www.youtube.com/watch?v=kMliOFYBiz4
reply
JSR_FDED
1 minute ago
[-]
Amazing that this works. As an aside, and I appreciate this is just a demo, if the use case is to get a device to join a WiFi network - would a single or double line lcd with 3 buttons not be cheaper than 520KB?
reply
8bitsrule
2 hours ago
[-]
Thanks for that ... impressive!
reply
1vuio0pswjnm7
21 minutes ago
[-]
reply
senkora
7 hours ago
[-]
Wow, it seems like this might beat out flite for very-low-memory TTS? I ended up abandoning a project of mine because I couldn't get high enough quality or low enough memory usage out of flite, so I'm very excited to try this out.

Flite for comparison: https://github.com/festvox/flite

reply
jedberg
6 hours ago
[-]
Do you have any accuracy benchmarks?

I’ve worked in this space. TTS in a small footprint isn’t the hard part —- it’s doing it accurately that’s hard.

Although for the use cases OP is targeting, lower accuracy may be good enough!

reply
amelius
6 hours ago
[-]
> I’ve worked in this space. TTS in a small footprint isn’t the hard part —- it’s doing it accurately that’s hard.

This actually holds for everything in AI.

reply
jedberg
5 hours ago
[-]
Very true!
reply
kamranjon
6 hours ago
[-]
If you look at this chart here it seems the tiny model has a WER of ~12%… not sure about the micro model:

https://github.com/moonshine-ai/moonshine#when-should-you-ch...

reply
yorwba
5 hours ago
[-]
That's the error rate for STT, not TTS. TTS is generally easier than STT because you only need to produce one valid pronunciation and don't need to handle variation within and between individuals.
reply
smcameron
5 hours ago
[-]
For TTS I wonder how this compares to nanotts[1] with the en-GB voice, which is sort of unreasonably good.

[1] https://github.com/gmn/nanotts

reply
orliesaurus
6 hours ago
[-]
I installed the command line version using uv

    uv init
    uv add moonshine-voice
    uv run moonshine-voice mic --language en
super nice to be able to run it to test it like this

good job on a clear readme.md tbh

reply
pwgawron
5 hours ago
[-]
`uvx moonshine-voice mic --language en` That is even simpler.
reply
gitgud
3 hours ago
[-]
So at that tiny 500kb size I imagine it could be compiled to web assembly, and run entirely in the browser right?

Couldn’t find a link, is that hard to do?

reply
hahahaa
3 hours ago
[-]
500k memory but not sure about disk.
reply
userbinator
4 hours ago
[-]
This looks like an extreme point for AI-based TTS, as formant/tract modeling synths tend to be more accurate if you want TTS in a tiny amount of compute, but sound distinctly robotic.

TTS (neural diphone synth @ 16 kHz) ~1.8 MiB voice pack

This is in the realm of Microsoft Sam.

reply
HarHarVeryFunny
2 hours ago
[-]
Presumably it's not, but the TTS voice in the video sounds to me more like formant synthesis than diphone - it reminds me of my DECtalk.

The project credits does mention espeak (which is formant based) as well as various other TTS projects, although it sounds like they are only using the pronunciation part of espeak, not the voice synthesis.

https://github.com/moonshine-ai/moonshine#acknowledgements

reply
stfurkan
6 hours ago
[-]
It looks great, thank you! I'll see if I can use it for my in browser AI assistant project's ( https://aidekin.com ) voice part. It's currently using Nemotron-3.5-ASR and supertonic-3 but overall it requires 1.2gb download.
reply
t0mpr1c3
6 hours ago
[-]
Very cool. I've done TTS on a 32K Arduino but it was pretty croaky. https://youtu.be/ErGDboTpwM0
reply
dwa3592
5 hours ago
[-]
this is good to see. i also trained a stt under 500kb for sub dollar chips. it had about 20 words that it could understand(like start, stop, left, right, go, up etc) and then the spell mode where you could say the word spell and then say the individual english alphabets and close with spell. it was super fun to work on. these tend to be extremely unstable though, like confusion between p and t (at least for my accent). will have to try this one now.
reply
schoen
47 minutes ago
[-]
Could you get people to use the NATO phonetic alphabet for the spelling part? I suppose a challenge is that many people don't know the whole thing, even if they're aware it exists.
reply
NooneAtAll3
5 hours ago
[-]
I remember someone training smart kettle to use its speaker as microphone
reply
laidoffamazon
4 hours ago
[-]
IIRC the Alexa enabled voice remotes also used a similarly small model though perhaps not this small
reply
walrus01
3 hours ago
[-]
Given the tiny size of this, I wonder about possible future integration with esphome compatible hardware

https://esphome.io/

reply
KennyBlanken
2 hours ago
[-]
I suppose, but for home automation, esps are best for getting the audio to something more powerful. If this lets a raspberry pi do voice recognition really fast, that alone is worth it.
reply
jjcm
4 hours ago
[-]
The voice activity detection alone here is compelling - very useful for doing things like highlighting a speaker who's transmitting in realtime. At that rate the impact on perf will be so minimal that you could easily run it in the browser across devices.
reply
nserrino
3 hours ago
[-]
Voice is one of the most latency-sensitive modalities in AI. Moonshine is doing awesome stuff
reply
irfan_99
4 hours ago
[-]
Is the dataset open
reply
0xnyn
7 hours ago
[-]
ngl, it looks incredible
reply
sgt
4 days ago
[-]
Great work!
reply
irfan_99
4 hours ago
[-]
very nice I love it
reply
zarmin
7 hours ago
[-]
Thank you for this. I love your work on Curb Your Enthusiasm.
reply
toilet
7 hours ago
[-]
What work?
reply
shermantanktop
6 hours ago
[-]
Possibly Cousin Andy? https://curb-your-enthusiasm.fandom.com/wiki/Andy_David

Played by the great Richard Kind, who my wife swears she saw on the Highline in NYC.

reply
stavros
7 hours ago
[-]
Probably a joke that the author looks like someone on the show? I'm puzzled as well.
reply