logoalt Hacker News

Speech Recognition and TTS in less than 500kb

296 pointsby petewardenlast Tuesday at 7:25 PM33 commentsview on HN

Comments

clayhacksyesterday at 9:21 PM

I made a little python wrapper around it to serve an HTTP endpoint that’s OpenAI/elevenlabs compatible https://github.com/clayrosenthal/bootlegger

sgtlast Tuesday at 7:36 PM

Quick link to the video where he demos it: https://www.youtube.com/watch?v=kMliOFYBiz4

show 1 reply
senkorayesterday at 9:25 PM

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

jedbergyesterday at 9:37 PM

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!

show 2 replies
orliesaurusyesterday at 10:19 PM

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

show 1 reply
smcameronyesterday at 10:43 PM

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

gitgudtoday at 12:32 AM

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?

show 1 reply
userbinatoryesterday at 11:47 PM

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.

show 3 replies
stfurkanyesterday at 9:55 PM

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.

walrus01today at 1:02 AM

Given the tiny size of this, I wonder about possible future integration with esphome compatible hardware

https://esphome.io/

show 1 reply
dwa3592yesterday at 10:45 PM

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.

show 2 replies
t0mpr1c3yesterday at 10:22 PM

Very cool. I've done TTS on a 32K Arduino but it was pretty croaky. https://youtu.be/ErGDboTpwM0

nserrinotoday at 1:23 AM

Voice is one of the most latency-sensitive modalities in AI. Moonshine is doing awesome stuff

jjcmyesterday at 11:51 PM

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.

zarminyesterday at 8:55 PM

Thank you for this. I love your work on Curb Your Enthusiasm.

show 1 reply
irfan_99yesterday at 11:55 PM

Is the dataset open

irfan_99yesterday at 11:53 PM

very nice I love it

0xnynyesterday at 8:49 PM

ngl, it looks incredible

sgtlast Tuesday at 7:35 PM

Great work!