Live data from Hacker News

A 2019 Guide for Automatic Speech Recognition

heartbeat.fritz.ai

31–39 of 39 posts

Re: A 2019 Guide for Automatic Speech Recognition

#31

Earlier quoted context omitted.

(Wikipedia doesn't make the best LM, I just wanted to test with something that knew about a lot of interesting english words)

Going to be honest but I don't think that is physically possible (i.e. I don't believe that, no offense). Unless you're using a very small beam and model.

Ok, with a few caveats:

1. I don't have the quad core CPU we hit 2. I'm not running a parallel decode. That's in a branch from my collaborator I haven't merged/built myself yet since I'm only on a dual core.

3. Screen capture has a CPU hit and seems to have slightly increased my RTF during recording.

Here's your comment read with 0.05x-0.10x on a dual core CPU: https://youtu.be/jIgUKwR-LaA

Is that enough to convince you that with a stronger CPU and parallel decode we can hit 0.01x?

Re: A 2019 Guide for Automatic Speech Recognition

#32

Earlier quoted context omitted.

Going to be honest but I don't think that is physically possible (i.e. I don't believe that, no offense). Unless you're using a very small beam and model.

Ok, with a few caveats: 1. I don't have the quad core CPU we hit 2. I'm not running a parallel decode. That's in a branch from my collaborator I haven't merged/built myself yet since I'm only on a dual core. 3. Screen capture has a CPU hit and seems to have slightly increased my RTF during recording. Here's your comment read with 0.05x-0.10x on a dual core CPU: https://youtu.be/jIgUKwR-LaA Is that enough to convince…

Haha nice one. Okay yeah I believe it (can imagine 0.02, which is close enough). Although I have to mention judging by when the text appears it's above 0.5, but I'm guessing you only output the text after a pause or something.

Re: A 2019 Guide for Automatic Speech Recognition

#33

Earlier quoted context omitted.

Ok, with a few caveats: 1. I don't have the quad core CPU we hit 2. I'm not running a parallel decode. That's in a branch from my collaborator I haven't merged/built myself yet since I'm only on a dual core. 3. Screen capture has a CPU hit and seems to have slightly increased my RTF during recording. Here's your comment read with 0.05x-0.10x on a dual core CPU: https://youtu.be/jIgUKwR-LaA Is that enough to convince…

Haha nice one. Okay yeah I believe it (can imagine 0.02, which is close enough). Although I have to mention judging by when the text appears it's above 0.5, but I'm guessing you only output the text after a pause or something.

Sure, that's probably the VAD, which can be tuned (the VAD decides if your phrase is done or not yet). That's part of why I included activity monitor watching w2l, so you could see it wasn't using any CPU while I talked. Would probably be more convincing if I printed something at the moment the VAD cut off the user so you could visually judge from the boundary of what we considered their speech.

This video can be partially reproduced with the code and models from here: https://github.com/facebookresearch/wav2letter/issues/327 but most of our decoder optimizations post-date when I compiled that demo.

Some of the later code is here:

https://github.com/talonvoice/wav2letter/tree/w2lapi_static

https://github.com/ckamm/wav2letter/tree/wip-parallel

Here is the exact timing loop code I used in that demo: https://bochs.info/p/nhz5cv

Re: A 2019 Guide for Automatic Speech Recognition

#34
post #23
post #15

Earlier quoted context omitted.

I dream of building a competitor to Siri and google and I’d probably use https://snips.ai/ . I think it gains recognition accuracy by having a limited skill set. Looks good though and has functionality for defining skills.

This looks interesting, as I don't need "conversation-level" ASR, I'd just need it to work with a limited grammar. But I'm unsure of what Snips actually is - I had a look at the website, but I don't know if this is OSS, commercial software, a library or what?

I've been trying out Snips, it's pretty cool and works reasonably well. A lot of the overall system is open source and runs offline, but the training happens on their servers and is closed source AFAIK. You download the trained model and can run it on a raspberry pi etc offline. But they claim that what Snips offers for free isn't nearly as good as what the commercial offering does. My priorities unfortunately shifted away from finding out about the quality difference. IIRC Snips's business model is to create custom voice agents that run offline for other companies and services around that, eg. custom hotwords etc.

Re: A 2019 Guide for Automatic Speech Recognition

#35
post #26

Earlier quoted context omitted.

I'm hitting full-encode/decode realtime-factor in the ballpark of <0.01x on a quad core CPU with a tuned wav2letter

wav2letter is pretty fast we haven't been able to break 1.1x on a t2.medium in any of our benchmarks -- what's your setup here? I definitely think it's a big step in the right direction; it's easily 100x faster than DeepSpeech for us. If I could have anything I wanted for xmas, I'd ask for a speech to text system that is fast enough to work in browser thru wasm or something.

My setup is a work in progress, see the sibling thread. My 2015 2-core MacBook is probably not faster than a t2.medium, so you should be able to hit the same sort of 0.05x ballpark numbers easily with the same sort of setup.

Is there a SIMD.js / WASM equivalent optimized convolution / GEMM? That's pretty much all we'd need to port this to web... well, that and maybe a language model that isn't 1GB. The wav2letter acoustic model I'm using is based on the librispeech conv_glu, which is almost entirely served by conv1d layers.

I've honestly already been considering a demo for my main project (which is mixed english / command decoding) that runs entirely in a web page, if you have engineering time to throw at your christmas wish, we should talk :P

Re: A 2019 Guide for Automatic Speech Recognition

#36

So how can one actually use one of these systems? I'm familiar with pocketsphinx, where you download it and then run procketsphinx_continuous and it prints a transcription of the microphone. Or Julius, where you write a grammar and run it with that and it prints the output. The process for DeepSpeech seems to be along the lines of "get access to a machine with ten GPUs, find a huge dataset, train it, and then run tha…

Mozilla is maintaining an implementation of Baidu's deepspeech with pretrained models (and checkpoints so you can fine tune with your own dataset).

They have an example that accepts streaming from the microphone: https://github.com/mozilla/DeepSpeech/tree/master/examples/m...

See the last full release here: https://github.com/mozilla/DeepSpeech/releases/tag/v0.5.1

Re: A 2019 Guide for Automatic Speech Recognition

#37
post #26

Earlier quoted context omitted.

I'm hitting full-encode/decode realtime-factor in the ballpark of <0.01x on a quad core CPU with a tuned wav2letter

wav2letter is pretty fast we haven't been able to break 1.1x on a t2.medium in any of our benchmarks -- what's your setup here? I definitely think it's a big step in the right direction; it's easily 100x faster than DeepSpeech for us. If I could have anything I wanted for xmas, I'd ask for a speech to text system that is fast enough to work in browser thru wasm or something.

Two years ago someone tweaked Kaldi to build to wasm (https://github.com/adrianbg/kaldi.js). AFAIR it ran at decent speed in a browser (with small models), but it hasn't been maintained since.

Re: A 2019 Guide for Automatic Speech Recognition

#38

Earlier quoted context omitted.

Haha nice one. Okay yeah I believe it (can imagine 0.02, which is close enough). Although I have to mention judging by when the text appears it's above 0.5, but I'm guessing you only output the text after a pause or something.

Sure, that's probably the VAD, which can be tuned (the VAD decides if your phrase is done or not yet). That's part of why I included activity monitor watching w2l, so you could see it wasn't using any CPU while I talked. Would probably be more convincing if I printed something at the moment the VAD cut off the user so you could visually judge from the boundary of what we considered their speech. This video can be par…

Are your acoustic models 400MB?
Post reply on HN