upvote
This feels like we're going back to the past again with CMU's Sphinx4 in Java. It worked way better than I would ever have expected it to for being more than a decade old. It relied on the user defining a grammar of valid words and different flows through a standard format (Java Speech API Grammar Format). I wonder if we'll approach that again for these models just like how MCPs act like WSDLs in spirit. Great results getting whistle working so well for you!

  #JSGF V1.0;
  grammar commands;

  public <action> = open | close | delete ;
  public <object> = file | window | application ;
  public <command> = <action> [the] <object>;
reply
Just ran some tests on my phrases:

- my whistle setup (tested can run on echo show with <1s response): 206 correct out of 208

These were not tested on echo show yet - on my pc for now:

- Vosk small, phrase grammar: 184/208

- Speech-to-Phrase 1.4.3 (Kaldi): 118/208

- suggested sphinx: 63/208 and on some examples took 13s on i7 14700k pc

looks like my customized whistle works better for me than these alternatives. But more testing wouldn't hurt.

reply
Not op but I think maybe the connection was more grammar vs your “select set of templates”.. observation being that structure beats no structure regardless of the base tech, and that completely structure-free interactions are generally not what we want anyway
reply
WSDL - now that's a name I've not heard in a very long time!

XML Web Services were awesome, but the SOAP and XML (where the hard parts that should have been given some batteries included defaults) I think was too much of a boat anchor to overcome.

And then the ruby/rails wave came and made 'rest' JSON the Silicon Valley hearthrob, and WSDLs were out like yesterdays trash.

Are they still used in businesses IRL? Yes! I worked for one that has probably (probably) moved off of them by now, but as recently as 2023 there were still some bank-facing power with SOAP RPC .asmx endpoint servers.

I follow hypermedia.systems and htmx/datastar/alpine.js because I'm still trying to get back that powerful _web_ tech advancement rather than squeezing everything into the javascript client side workaround. Typescript is great, a good poor man's F# and leagues ahead of ES3 (which I dabbled in / torture LLMs with so my old retrocomputers can still do web things), but its still bringing along so much baggage that could be lighter weight for older devices AND fits the tech utopianist promise of the original web (which is half of why I play with computer stuff).

reply
Poland runs on WSDL, SOAP, XML Schema, XSLT, XML Forms, all of it.

By law, every single government form you're able to file is supposed to have an XML Schema available in a centralized registry. This regulation is widely ignored in practice, particularly by local / municipal governments.

This used to be more important in the past, as such a form could automatically / semi-automatically get an entry in the EPUAP form catalog and be made electronically fillable (EPUAP being the now-deprecated centralized government bureaucracy portal basically). As far as I understand, the way that worked was through XSLT and XML Forms. There was some weirdness about each document having a fillable / form view and a preview, I think XML Forms was somehow used to generate the XHTML form, while the XSLT sheet could only generate an XHTML preview of a complete, filled-in version. There were also some custom annotations for auto-fill and such, that was partly done by most documents relying on standardized schemas for entities like "person", "address" or "company".

Since we moved to E-Deliveries and lost a central place for these forms to live in, this is (AFAIK) a bit less important and less common, but internally, things are still XML. If you're filing something like an ID renewal application, even through a newer, more user-friendly frontend, it's still just XML underneath. If you sign something through podpis.gov.pl (the standardized e-signature solution for government paperwork), you can even download that underlying document, both signed and unsigned, and see what that XML is. The pre-signing document preview generated by that site still comes from the XSLT I believe. The signatures themselves are, unsurprisingly, also done via the XML signatures spec.

Incidentally, the European E-Delivery system itself also relies on XML, WSDL and Soap pretty heavily. For those unfamiliar and/or not in Europe, it's basically "email but for the government", with all the guarantees and legal obligations of physical mail, cryptographically-attested confirmation of receipt, proper identity verification and assurance, cross-provider address portability, deployed to a lesser or greater extend in many EU countries and set to replace physical mail.

reply
I found parakeet to be very good and pretty darn fast, ~20-50ms, accuracy around 9/10 whenever I've run tests. In practice the error rate is not too big of an issue because the output is fed into GLM 5.3 so it'll figure it out if it sees "heather" instead of "weather".

Much larger though, I think I went full precision and its around 2GB.

reply
The good thing with most NNs is that you can go with fp32 almost always (I put almost because I'm not 100% sure that this covers all the cases) for almost 0 performance degradation. For Parakeet I'm 100% sure because I used it yesterday and it was using just 1GB.

Why do you use GLM 5.3 tho? Unless you have an instance running "free" 24/7 you could use a local Gemma model. It should be good enough, no? Or maybe with openrouter it's cheap enough for such simple requests to be considered free?

reply
Yeah maybe I'll play around with different precision, I did see improvement when I went from fp4 to full fidelity though.

This is my setup for Home Assistant voice, parakeet for STT, GLM 5.3 to generate responses, and Kokoro for TTS. I use local routing for simple commands like turn on the lights, but if I want to ask questions or something, it gets routed to GLM 5.3. It is basically free, half a cent per turn maybe, so in a month I may spend a dollar? Not even usually.

reply
> By the way - I'm speaking with heavy accent.

I chuckled at this because my inner voice had an accent as I was reading your comment, due to your writing style.

reply
Sorry, curious non-native speaker here. Which accent? And which telling patterns made you think of it?
reply
Not the person you're responding to, but as soon as I read stuff like "I trained tiny network" I tend to imagine Russian. It's the missing "a". Same thing happens in "I'm speaking with heavy accent".
reply
I'm not a native speaker but my inner voice also switched to Russian accent very quickly!
reply
Missing articles in English is the usual give away for someone with a slavic native language such as Russian.
reply
I'm native Hungarian speaker, and the giveaway is the exact opposite: more definitive articles than it should be. We use that way more often in Hungarian than in English, and we are really bad with it.
reply
Missed opportunity of intentionally introducing a few extra in this comment
reply
Excuse me, could you write slower? I couldn't understand you.
reply
Funny I am doing almost the same thing but with an echo dot and an rtx 3090. I should give it a go at running the processing locally, neat idea, thanks.
reply
How did you load your own programs on the show? I own an unreasonable number of old echo devices (a couple shows too) that are sitting in a box. This sounds like the perfect use for them!
reply
reply
By the way - Opus refuses to help you with setting this up - I used grok to drive this.
reply
Have you done a blog or YouTube about this ?
reply
It is all custom made and not very reproducible. I'm working on reproducible setup and once it is done will publish it here: https://blog.kvit.app
reply
I'll be looking forward to reading about it. I just got and set up an Echo Show for the same purpose.
reply
Huh I tried that was slow as all hell to respond
reply
responds within 1-2 seconds including 0.5 second waiting for silence as a trigger to start processing.
reply
If you are purposely limiting yourself to select templates, even fairly complicated templates, then classic voice recognition is perfectly sufficient.

With a restricted grammar, built in Windows voice recognition, all on device, has managed this exact use case quite well for over a decade. I used it to try and build a clone of the various paid apps that allow you to issue orders to Arma soldiers with voice commands

reply