Speech recognition doesn't work like that, there's no yacc/lex for you to just "run locally". Device-local recognition is limited, and not very agile. It often takes years for it to recognize new words, and it usually has extreme bias toward a handful of urban centres.
I don't like sending my data away, and I choose not to, but it is simply not realistic to expect Google-quality or Amazon-quality continuous real time speech recognition and nlp to happen entirely on-device.
Why not? It _could_:
> In our recent paper, "Streaming End-to-End Speech Recognition for Mobile Devices", we present a model trained using RNN transducer (RNN-T) technology that is compact enough to reside on a phone. This means no more network latency or spottiness — the new recognizer is always available, even when you are offline. [...]
> The RNN-T we trained offers the same accuracy as the traditional server-based models
https://ai.googleblog.com/2019/03/an-all-neural-on-device-sp...
It did. Anyone remembers the good ol' Microsoft Speech API of ~Windows 2000/XP era?
IMO the only appropriate context for gaining training data is when you're explicitly paying people for that.
Informed consent does not mix with volunteering to make money for a private company. That people are ignorant does not justify abusing them.
It's unsurprising to me that the market evolved towards the former as the latter would almost surely be a commercial failure.
Also let's not overestimate the involvement of the cloud in the actual voice recognition. With ML models, it's the training of a model that's expensive, not the actual use of that model. I don't see a reason why voice models, once trained, couldn't be run on the device, at a slightly increased cost of compute (of which phones have plenty). It would be fair and good engineering to provide models in exchange for payment.
And no, I don't buy "it's not that simple", because I've worked with MS Speech API over a decade ago, on much slower hardware and on a shitty microphone I soldered myself from parts, and it did work well enough in "fixed grammar" mode after a bit of training with various sources of background noise (read: very loud music). I don't believe there's any technical obstacle; the decision to run this in a cloud is a purely business one, and like many modern business models, this one is geared towards extracting value from purported customers, not giving value to them.
Agreed 100%. However, I'm very reluctant to use laws to prevent people from choosing the things that they decide are best for them on the premise that I/we know better.
The hurdle for my determination that I know better what's good for someone else and to restrict their choice to conform to my superior knowledge is extraordinarily high.
My view comes from being tired of seeing how the market forces always incentivize the most scummy garbage that can be gotten away with. The only control point we have here is the "gotten away with" part. I'm not very into telling other people how they should live, but a stable and happy society does require some of that.
(That said, I currently have very little influence over this, so I resort to what little of a market signal is created by ranting about this publicly, voting with my wallet, and discouraging people from using solutions that are user-hostile.)
- Case 1: local action, such as playing music, making a calendar event, setting an alarm. These have no need to be sent to
- Case 2: remote action, such as performing a search. The audio can be parsed locally, with the search terms then sent externally to get the results.
In neither case is it necessary to send the raw audio anywhere. In neither case is it necessary to record the audio for future use.