HN user

dsteinman

78 karma

Creator of Jaxcore

Posts7
Comments38
View on HN

Who gets to be the judge of speech liberties? Perhaps we need a bureau of the government to act in this manner, perhaps a ministry, who's mission is to determine whether words and opinions are true or not.

I wrote a chess game using StockFish, and had it play against another computer player that only made random choices. And what surprised me is how long it would take StockFish to beat the random player.

Login management should be built into the browsers instead.

I would go even further than this, and say that a cryptocurrency might be among the best ways to build a universal login system. Imagine an Ethereum-like coin where the wallet is the username, and you spend the coins while authenticating, gaining privileges, and the blockchain stores your public info like a username and avatar that you can bring to any website.

The web browser extension would communicate with the electron app server, NodeJS would not be needed in that scenario (the electron app includes the nodejs server code). You can write your web voice app with static client-side JavaScript which communicates with the Electron server through the browser extension.

Web Page <-> Bumblebee JS API <-> Bumblebee Extension <-> Bumblebee Electron App (DeepSpeech)

DeepSpeech with the pretrained english model is enormous (1.4GB) it's not feasible to load it into a web worker. It can run in a server, but then every website would have to run its own server side speech recognition servers which is difficult and expensive to scale.

I am attempting to bring 100% client-side speech recognition to the web:

https://github.com/jaxcore/bumblebee

Although the first release is not officially out yet, the NodeJS code is working and you can install the development version of the app server and try out the hello world app locally.

The solution involves running Mozilla DeepSpeech inside an Electron desktop application with a websocket server and client API that NodeJS scripts can interact with, to receive speech recognition results, utilize "alexa" style hotword commands, and text-to-speech. The electron app handles all the heavy stuff, and you just use a simple API.

A web browser extension can also make use of this API to bring these capabilities to web sites, but that part isn't finished yet.

Electron 9.0 6 years ago

The Electron version numbers are essentially meaningless now. I have no idea what even changed between Electron 4 and 8, the changelogs are all just bug fixes that didn't necessitate so many major version releases.

Also there are some NPM packages that have to create builds for specific versions of Electron, and those builds come out after Electron does, so I'm always 1 or 2 versions behind on Electron which leads into dependency hell situations.

Trying to stay up to date is exhausting.

Electron 9.0 6 years ago

This is turning out to be a bad decision because there's been 5 major version bumps in the past year, yet the functionality in Electron hasn't materially changed very much, mostly bug fixes and minor changes.

On Voice Coding 6 years ago

I have been working on getting Mozilla's DeepSpeech and some additional JS libraries up to a level where it can be used (among other things) as a voice keyboard.

https://github.com/jaxcore/deepspeech-plugin

It's not quite there yet, but I'm working on it.

It can type numbers and symbols reasonably well, I need to do some additional work like build a custom language model to be able to type letters and plug some other gaps in Mozilla's CommonVoice model.

Here's the number typing example: https://github.com/jaxcore/deepspeech-plugin/tree/master/exa...

Bluetooth LE uses substantially less battery than older Bluetooth devices do. It makes a big difference for anything that's battery powered. I was really bummed when I found out BLE didn't support audio at all.

I can't quite tell from the website, but I'm assuming we will need new BT antennas BLE Audio support before we can use it, which sadly means yet another generation of computers & smartphones have to come out before this can become ubiquitous.

This wasn't made with the window.speechSynthesis API, it's using 2 older systems (espeak and sam) that have been ported to JavaScript. They don't sound as good but they generate AudioContext data which can be processed, mixed, and visualized in the browser. I don't think it wouldn't be possible to make this kind of Borg voice using the speechSynthesis API -- I did it by generating the speech using 6 voices, 3 in each channel.

I totally agree the built-in OS speech systems sound better over and I may end up adding window.speechSynthesis support to the API I made so it'll expose more voice profiles, but those ones will lack the visualization ability.

It already does this, when you click the "say" button it generates a base64 url. You can share that url. The problem is when someone loads the URL the browser will not autoplay the clip. You have to click a button (or some other user interaction) to start the Web Audio API, it's a really annoying limitation that I wish Firefox and Chrome would change to a one-time popup confirmation. So what I did was hide the text box until after playing the audio.

I've had trouble identifying why. Safari has a largely compatible AudioContext API, and there's no errors, but the audio never starts playing and there's no "onended" event when it's supposed to be done. So I'm a bit stumped at the moment.

As far as I know they have not released those phonetic recordings. But even without those recordings it might be possible to use those deepfake voice fingerprinting systems to build an STT engine from sound clips from the show.