433 points amrrs 4 days ago 97 comments
martianvoid 4 days ago | parent
chronogram 4 days ago | parent
walrus01 4 days ago | parent
koolba 4 days ago | parent
Otherwise could run two passes to get down to .25% or three passes to .0125%. Or four passes to .000625%!
That’d be .02 seconds of error per hour!
robotswantdata 4 days ago | parent
mikemzz1 4 days ago | parent
Shershah1024 4 days ago | parent
alberth 4 days ago | parent
Or is there another approach?
treyd 4 days ago | parent
radlad 4 days ago | parent
treyd 4 days ago | parent
radlad 3 days ago | parent
My point was that the "natural speed" of video (i.e. the frame rate - clear slow motion requires more frames, while fast blurred motion will generally have fewer) does actually impact how much data must be processed. It's true of audio too (sample rate) and downsampling is a common optimization technique.
cheschire 4 days ago | parent
drob518 4 days ago | parent
sorou 4 days ago | parent
so you have a file containing bytes representing the sound wave, and you have existing recordings (read: sound waves represented as sequences of bytes) of people speaking in different languages and contests, and you can feed all those existing recordings into a model along with corresponding transcriptions, and you can get a model out which can identify patterns in recordings of people speaking to then go backwards and see a pattern of sound waves and correctly associate it with a specific token, no need to play anything back. pauses, stutters, etc. are themselves patterns of sound waves that can be identified and worked around to identify just the meaningful parts of speech.
in principle, you could probably learn to do this too, by sitting down for hundreds of hours meticulously starting at waveforms, and this is, very roughly, what signal analysts do: look at waveforms and try to identify patterns. ai just leverages this principle to turn mundane speech into text.
satvikpendem 4 days ago | parent
Imustaskforhelp 4 days ago | parent
Does this work for Hindi or other non English languages though?
I wanted to recently transcribe Hindi + English (mixed) Audio and I used this model[0] and created a custom transcribe command which can give text over input of mp4 files
This took me roughly around an hour or more or around this time frame for a 90 minute transcription source. I would consider myself to be slightly bored during this phase.
I would really appreciate it if something like the project could be made native for a lot more languages but I think that the approach of embedding models and using them in such a way is pretty crazy. Kudos for it and I will try it out!
I can think of many such use cases where Speech to text of even large audio files becomes near instant. As I think someone on hackernews once quoted whom I am very paraphrasing
An order of one or two magnitude of an already existing thing stops becoming a quantity upgrade but rather becomes a quality upgrade in it of itself as it provides access to workflows which previously wouldn't have been feasible.
[0]: https://huggingface.co/parismitaglobalsolutions/indicconform...
tinykerneldev 4 days ago | parent
1970-01-01 4 days ago | parent
Imustaskforhelp 4 days ago | parent
fdb 4 days ago | parent
cstever 4 days ago | parent
"EmbeddingGemma 2 is made by Google DeepMind and released under Apache 2.0. This is an independent project, not affiliated with or endorsed by Google."
walrus01 4 days ago | parent
ghboo0927 4 days ago | parent
jdw64 4 days ago | parent
llimllib 4 days ago | parent
I'll test theirs too if I get around to it
Here's a sample CLI wrapping the apple model and providing a simple benchmark: https://github.com/llimllib/transcribe
update: doesn't seem like they provide their model and I don't feel like trying to dig it out of their app bundle, so I'm not going to test this one
s3p 4 days ago | parent
llimllib 4 days ago | parent
ChrisMarshallNY 4 days ago | parent
I use their on-device translation in my apps. Works pretty well. ChatGPT's context-aware translation is better, but it's not on-device.
solarkraft 3 days ago | parent
They supposedly improved it on later Apple Intelligence enabled devices, but I don’t have one.
llimllib 3 days ago | parent
bigtex 4 days ago | parent
llimllib 4 days ago | parent
On my bench, parakeet-tdt-0.6b-v2 is 2x slower
I wonder if you're using different Apple models when you go through that app? I don't know
vladimirralev 4 days ago | parent
lukko 4 days ago | parent
amelius 4 days ago | parent
bawana 4 days ago | parent
bigtex 4 days ago | parent
yaanfpv 4 days ago | parent
Shershah1024 4 days ago | parent
Shershah1024 4 days ago | parent
Just to clarify - This started as just an experiment to see if we can use the fact that text and audio share a vector space in Embedding Gemma 2 to convert audio to text. Had to hack around a few things, but, it worked. Speed was just a side benefit. Was not aiming for it.
The accuracy is good, but not in the range of cloud models, but decent enough for everyday use, and this is just a couple of days work. The WER can improve a lot with more training on varied data. Will try that next.
I will opensource the whole thing soon. Might need a few days though. Also, releasing the TTS version for this soon.
Happy to answer any questions you have.
prodigycorp 4 days ago | parent
drakythe 4 days ago | parent
cheschire 4 days ago | parent
Basic ML is probably even cheaper. But LLMs might have higher accuracy. “Uhh one I think” = 1
e12e 4 days ago | parent
Say classify recorded interviews into viable/not viable candidate?
Shershah1024 3 days ago | parent
nl 3 days ago | parent
But the one-shot and few-shot classification performance of decision models really needs in-context learning. The most common way of getting that is by grafting a small LLM onto it, which is certainly possible.
At that point though, why not just use a small LLM with audio capabilities. Gemma E2B is a good model that is already setup for this, and training a decision model LoRA adapter is very easy.
Edit: Apparently people have got decision models working on EmbeddingGemma, eg: https://huggingface.co/mrm8488/embeddinggemma-2-ft-typed-dec.... I'm not seeing it ranked on https://huggingface.co/spaces/multimodalart/jev-decision-ind... so I have questions about how well it does in-context learning.
cabarltos 4 days ago | parent
xnx 4 days ago | parent
People aren't paying enough attention to how great EmbeddingGemma 2 and Gemma 4 are.
Shershah1024 3 days ago | parent
rahimnathwani 4 days ago | parent
Thank you!
uv tool install mlx-audio
mlx_audio.stt.generate \
--model ibm-granite/granite-speech-5.0-470m-turboctc \
--audio.wav \
--output-path transcript
(Until now I've been using mlx-community/parakeet-tdt-0.6b-v3)Shershah1024 3 days ago | parent
saaaaaam 4 days ago | parent
1-6 3 days ago | parent
sbdaman 4 days ago | parent
Pre-pandemic it seemed like even the very best in class auto-transcription features were just unusably bad. I guess that was like 7 years years ago though.
gambiting 4 days ago | parent
refulgentis 3 days ago | parent
gambiting 3 days ago | parent
whstl 4 days ago | parent
"One cool trick" I like for running those kinds of models very quickly on macOS is converting them to CoreML so they run in the Neural Engine.
I had amazing success with Spleeter, Demucs, MVSEP-MDX23-music-separation, DeepFilterNet, Whisper, Hunyuan3D for 3D mesh generation. Plus a lot of others for both work and leisure.
I also convert the code to Swift without dependencies, but that's a personal preference.
The runtime on some of them went sometimes from 60s to 10s. And since it's just Swift, I can just give them to non-technical co-workers and they don't have to setup a whole Python environment.
If you don't wanna do this by hand, this is something that existing LLM models are good at. Even Luna can do it without much fuss.
larodi 3 days ago | parent
whstl 3 days ago | parent
larodi 2 days ago | parent
whstl 2 days ago | parent
Although I'm sure someone is bolder than me is running a fleet of Mac Studios somewhere!
bbor 4 days ago | parent
Shershah1024 3 days ago | parent
motoboi 4 days ago | parent
But the overall transcription quality is very low.
Silagi 4 days ago | parent
My reaction to seeing the project was that being an embedding model it'd be pretty good at conveying the meaning but not great as using the same terms, is that what you're seeing?
mahlerbox 4 days ago | parent
Shershah1024 3 days ago | parent
cabarltos 4 days ago | parent
drakirus 4 days ago | parent
Shershah1024 3 days ago | parent
drakirus 3 days ago | parent
guigoguedes 4 days ago | parent
mrkn1 4 days ago | parent
p0w3n3d 4 days ago | parent
Library/Application\ Support/ai.haku.eg2demoraajg 3 days ago | parent
armcat 3 days ago | parent
You stated WER of 5% - against which benchmark?
Whistle [1] for example is a 16MB STT model but WER varies between 4-26% depending on the benchmark.
andai 3 days ago | parent
Ey7NFZ3P0nzAe 3 days ago | parent
Mahwizz 3 days ago | parent
Otterly99 3 days ago | parent
I'm guessing that would make it a good contender as a sort of all purpose tool for STT / TTS / Translation?
That could be super cool, right now it is really annoying to have to juggle between different models, all of which have different capabilities depending on the language.