skolos
6 days ago
Interesting that this is here. I used whistle (and bunch of other things) to take ownership of my echo show. It now doesn't dial to Amazon at all - it does all processing locally with its own CPU and connects to my homeassistant for home automation. My initial setup involved qwen asr (1.7b model) running on rtx 5080. Compared to that, whistle was really bad (out of 170 messages, qwen recognized correctly 168, whistle - 70), but I adjusted whistle to work like jev - instead of free form transcription it recognizes only select set of templates (I trained tiny network with 10,000 generated utterances to translate whistle final state to probabilities within templates). The precision went up to 164/170 - almost matching qwen. By the way - I'm speaking with heavy accent.
mooman219
6 days ago
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>;skolos
6 days ago
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.
ianjbutler
6 days ago
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
HenryNdubuaku
5 days ago
thanks for sharing!
Multicomp
6 days ago
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).
miki123211
6 days ago
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.
stronglikedan
6 days ago
> 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.
yuchi
6 days ago
Sorry, curious non-native speaker here. Which accent? And which telling patterns made you think of it?
Nition
6 days ago
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".
meredithbloom
6 days ago
I'm not a native speaker but my inner voice also switched to Russian accent very quickly!
Zacharias030
6 days ago
Missing articles in English is the usual give away for someone with a slavic native language such as Russian.
ruszki
5 days ago
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.
fg137
5 days ago
Missed opportunity of intentionally introducing a few extra in this comment
ASalazarMX
6 days ago
Excuse me, could you write slower? I couldn't understand you.
cco
6 days ago
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.
gekoxyz
5 days ago
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?
cco
5 days ago
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.
catlifeonmars
6 days ago
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!
skolos
5 days ago
Here's how to root echo show 8 1st gen: https://xdaforums.com/t/unlock-root-twrp-unbrick-amazon-echo...
skolos
5 days ago
By the way - Opus refuses to help you with setting this up - I used grok to drive this.
mrguyorama
6 days ago
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
VladVladikoff
5 days ago
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.
schappim
6 days ago
Have you done a blog or YouTube about this ?
skolos
6 days ago
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
addandsubtract
5 days ago
I'll be looking forward to reading about it. I just got and set up an Echo Show for the same purpose.
psyclobe
6 days ago
Huh I tried that was slow as all hell to respond
skolos
5 days ago
responds within 1-2 seconds including 0.5 second waiting for silence as a trigger to start processing.