Live data from Hacker News

Show HN: JuliusJS – Speech recognition in JavaScript

github.com

21–30 of 55 posts

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#21
post #17
post #16

This is the kind of technological challenge which must be fun to complete. And it must be quite satisfying for the author. However, whenever I see a 'XYZ in pure javascript', I keep getting the impression we are only delaying the inevitable moment browsers have to step to a superior language. Kinda like instead of quickly ripping off a bandaid is better than slooowwwwllly removing it ....

Seeing cool things written in JavaScript makes you think that JavaScript is doomed?

Not to be that guy, but it wasn't written in JS it was transpiled from C to JS.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#22
post #17

Earlier quoted context omitted.

Seeing cool things written in JavaScript makes you think that JavaScript is doomed?

Not to be that guy, but it wasn't written in JS it was transpiled from C to JS.

True. Transpiled, with a few abstractions written over the transpiled code (such as a worker script), and some tweaks to the transpiled code to fake multithreading so that it can coexist with the Web Audio API.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#24

Can this be used to detect a voice's unique digital signature? For example I just say my name to login into a website?

I don't think voices have unique signatures. Voices vary widely but they can still share identical properties and be imitated.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#25

Can this be used to detect a voice's unique digital signature? For example I just say my name to login into a website?

I don't think voices have unique signatures. Voices vary widely but they can still share identical properties and be imitated.

Voices do have a unique signature. The technology do identify it is called Speaker Identification. See for instance http://research.microsoft.com/en-us/projects/whisperid

> Each person's voice is different. Some sounds, like "s", sound about the same no matter who says them, but other sounds, like vowels, tend to differ a lot from person to person. We use a special way of representing sound, the cepstrum, that captures lots of information, including the characteristic way you pronounce your vowels. Of course, someone could imitate the way you talk; fortunately, the cepstrum also captures certain fundamental characteristics of voices that are impossible to change. For instance, the length of your vocal tract -- the place where sound is produced in your body -- cannot be changed, and different length vocal tracts tend to produce cepstra with different characteristics. By identifying both the way you talk, and the way your body produces sound, WhisperID can do a great job of figuring out who you are.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#26
post #3
post #2

Creator here - I ported this over from the open-source Julius using emscripten. AMA

Nice, thanks for doing this! Are you aware of any sites using speech rec for e.g. page navigation?

I'm using Chrome's speech recognition engine for a virtual reality in WebGL thing I'm building. It's a bit annoying, as it requires a network connection, and is rather buggy (I end up crashing Chrome about one ever ten sessions when using it, all of Chrome, every tab). Something like this would fit my needs a lot better.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#27
Nice work. Can it return confidence scores? Say I want to load 3 commands in my page: 1. Click blue button 2. Scroll down in the yellow text area 3. Expand image of man I feed those to the engine, and when somebody speaks, I get a confidence score on each word so I can determine with a level of configurable certainty that the user is using the command: {click: 0.9878 confidence, blue: 0.8789 confidence, button: 0.1889 confidence)

Something like that...

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#28
post #27

Nice work. Can it return confidence scores? Say I want to load 3 commands in my page: 1. Click blue button 2. Scroll down in the yellow text area 3. Expand image of man I feed those to the engine, and when somebody speaks, I get a confidence score on each word so I can determine with a level of configurable certainty that the user is using the command: {click: 0.9878 confidence, blue: 0.8789 confidence, button: 0.188…

It does post them back from the worker, but the Julius interface doesn't expose them (yet). The way that Julius deals with confidence scores is also a little different (they're not fractional), so you'd need to account for that.

I'll be sure to include them soon - it's probably just a few more lines of code, so you can expect them in the onrecognition function this afternoon.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#29
There is now a (very rudimentary) demo on the GitHub page: zzmp.github.io/juliusjs

Much thanks to @iffy for writing the first pass.

It uses voxforge's sample vocabulary, so you'll need to say things like "Dial 1 2 3" or "Call Kenneth McDougall" for it to understand you, but the vocabulary is easily swapped out for your own projects, as explained in the README.

Re: Show HN: JuliusJS – Speech recognition in JavaScript

#30
post #28
post #27

Nice work. Can it return confidence scores? Say I want to load 3 commands in my page: 1. Click blue button 2. Scroll down in the yellow text area 3. Expand image of man I feed those to the engine, and when somebody speaks, I get a confidence score on each word so I can determine with a level of configurable certainty that the user is using the command: {click: 0.9878 confidence, blue: 0.8789 confidence, button: 0.188…

It does post them back from the worker, but the Julius interface doesn't expose them (yet). The way that Julius deals with confidence scores is also a little different (they're not fractional), so you'd need to account for that. I'll be sure to include them soon - it's probably just a few more lines of code, so you can expect them in the onrecognition function this afternoon.

OK it's done! Not well documented yet - that will wait for another day - but you can now access the score through the `onrecognition` event.
Post reply on HN