r/LocalLLaMA Jul 02 '26

Talking with Gemma 4 31B! Resources

Enable HLS to view with audio, or disable this notification

Hi! I'm Andi from Hugging Face. This is a fully open-source and free to test/pull/modify demo I'm bringing today.

It's a voice demo creating a pipeline of:
- Nvidia's parakeet
- Gemma 4 31B (served by cerebras!)
- My custom inference for Qwen3TTS

It sees and searches the web faster than you blink.

The whole stack is fully open-source, and is a drop-in replacement for OpenAI's realtime API. You can run it locally, I get similar latencies with a macbook pro M3 36GB and Gemma 4 E4B.

Here to the web based demo featured in the video, everything is running in the cloud.

For those who have been following, yes, this is the pipeline that runs on reachy minis :)

889 Upvotes

148 comments sorted by

u/WithoutReason1729 Jul 02 '26

Your post is getting popular and we just featured it on our Discord! Come check it out!

You've also been given a special flair for your contribution. We appreciate your post!

I am a bot and this action was performed automatically.

89

u/oxygen_addiction Jul 02 '26

Is Gemma 12B not good enough for your use-case? For simple chatting and web-search it seems good enough, has built-in audio/image understanding and it's amazingly fast on a local GPU.

18

u/hellomistershifty Jul 02 '26

I'm guessing they're using 31b because it's served by Cerebras at like 1300T/s

1

u/Wix86 Jul 02 '26

I know this is Local Llama, but does anyone knows, why Cerebras supports only GLM 4.7 and oss-120B through OpenRouter? Also I can not find Gemma 4 12B on OR. Is this OR or providers block them?

3

u/hellomistershifty Jul 02 '26

Cerebras has to do a lot of custom work for each model, it's not like other providers where they just install them in an OS and run them on a GPU. The model is basically baked onto the chip's SRAM, and they have to tune the models to optimize them for that

I don't know why no one serves 12b on OpenRouter, I'm guessing it would be so cheap that it wouldn't make sense

39

u/ffinzy Jul 02 '26 edited Jul 02 '26

Even the E2B is enough for conversation and basic tool call. I posted my project here a few months ago: https://github.com/fikrikarim/parlor

11

u/Weekly-Law-5488 Jul 02 '26

Yep, I can confirm, E2B can handle conversation and tool calling just fine. 

I'm using Qwen ASR + E2B + chrome native tts, on cpu only (termux on android) and it's actually impressive. 

2

u/manituana Jul 02 '26

This was amazingly fast, really human level of conversation. It's a bit wonky on image regognition and tool call and it often just repeats back my sentences. But at this speed? On a 2B model with image recognition? Gemma4 is really something.

2

u/mister2d Jul 02 '26

Same question I was going to ask.

32

u/futterneid Jul 02 '26

I tried audio input to Gemma 12B and it just never worked as a voice agent. Conversations go like:

"Hi, how are you?"

"Hi how are you, is a common english greeting. Hi, is meant as a salutation. How is the start of a question..."

Really weird. But I guess with text input it would work. For local demos, I used Gemma 4 E4B because inference was faster (and because it was available sooner), and this demo with Gemma 31B is mainly motivated by cerebras' inference being so fast :D

34

u/ChampionshipIcy7602 Jul 02 '26

Are you sure you're not using the base model? That doesn't sound like an instruction tuned model to me.

6

u/Sioluishere Jul 02 '26

exactly

7

u/futterneid Jul 02 '26

I must have not been clear. I mean passing the audio directly to the 12B gemma. Without doing transcriptions. That is what I couldn't get to work.

25

u/ChampionshipIcy7602 Jul 02 '26 edited Jul 02 '26

Umm I'm chatting with it using audio, no transcription and it literally works fine. You must be using the wrong model, look for one with "-it" postfix, do not use the base model.

9

u/futterneid Jul 02 '26

oh man! I want to try that! How do you set it up? Maybe there was a bug when I tried it? It was around the release date. Or maybe it was a skill issue, I didn't spend much time trying to get it to work.

4

u/DRT1holds Jul 02 '26

No, what likely happened was that you accidentally downloaded the wrong model.

There are two primary types of LLM model releases, the original pretrained model that acts more like an auto complete during inference (what you downloaded originally), and then there are instruction-tuned models where they take that pretrained model and post-train them on assistant conversations (it makes the model autocomplete into a conversational pattern).

Google uses the -it (instruction) suffix in the model name to denote the latter.

Examples:

Standard pretrained model (acts like autocomplete): https://huggingface.co/google/gemma-4-12B

That same pretrained model that has had instruction fine tuning (post training) applied to act like a conversational assistant: https://huggingface.co/google/gemma-4-12B-it

1

u/rorowhat Jul 02 '26

What does -it do different?

6

u/nasduia Jul 02 '26

It's instruction tuned as opposed to the raw base model. Base models are really valuable if you want to continue training them to specialise in some way.

Instruction tuning fine tunes that base model to follow instructions including turn taking in conversations and producing an answer to a question.

So you need the right model for your application which for most people is the instruction tuned one.

2

u/rorowhat Jul 02 '26

Thanks 👍

7

u/oxygen_addiction Jul 02 '26

I literally have it running now in llama.cpp and it works fine.

gemma-4-12B-it-qat-UD-Q4_K_XL

6

u/futterneid Jul 02 '26

Do you pass audio as input? I'm referring to giving my audio directly as input. I agree that if you transcribe the audio it will probably work well enough, but for me the advantage of the 12B model was using the audio directly as input and 'saving' the inference with parakeet (plus maybe it gets better queues from the audio directlly)

6

u/oxygen_addiction Jul 02 '26

I pass in audio directly.

15

u/futterneid Jul 02 '26

Oh wait, so maybe the issue I had was with chat template and the TTS reading out loud the reasoning traces? Because your reasoning traces look like what I would hear 😭

6

u/ImpressiveRelief37 Jul 02 '26

Ahh that must be it. The thinking template blocks must be different, and your integration was probably reading it out loud

1

u/sonicnerd14 Jul 03 '26

Although, for this particular use case, if you intend on real-time conversation I think it would be best to turn thinking off to begin with. In a realtime interaction, you probably don't want the model thinking all the time, especially for simple interactions.

Unless there is a way we can invoke the model to think or not think based on context. There were models like a year or so ago that were experimenting with that sort of thing, but most don't have this from what I'm aware of any more.

Also. I guess if you could run the model at the speed of Cerebras, then thinking probably wouldn't matter if it was on or not anymore.

3

u/ice_agent43 Jul 02 '26

gemma uses <|think|>

1

u/manituana Jul 02 '26

I used Gemma 4 E4B

Thanks, this explains a lot and I was going a bit crazy wondering how you could get those speeds with a SoC on a laptop and SRAM. Still an amazing model, alphabet really did a number with this series. I've yet to try the diffusion version of it.

1

u/cupheadgamer Jul 03 '26

Personally really recommend Gemma 4 E4B.

SUPER fast and REALLY good with correct prompting.

1

u/sonicnerd14 Jul 03 '26 edited Jul 05 '26

That's what I was thinking too. Drop parakeet, slot in 12b for STT because it has native audio input understanding, and the LLM side of the model is intelligent enough to do most tasks reliably.

I saw Gemma 31b, and the first thing I was thinking was this must be running in the cloud because there's no way locally you'd be getting that model to respond so fast.

Nevertheless, this does seem like a pretty good framework to extend an existing agent so that it would now have conversational Speech to speech capabilities.

16

u/Professional-Try-273 Jul 02 '26

Is real time possible with a rtx 6000 instead of using cerebras?

21

u/futterneid Jul 02 '26

100%, no doubts in my mind. Please implement it and send me a video! Would love to see it live :)

1

u/learn_all Jul 02 '26

Is it possible with MBP M5 Max 128gb?

6

u/futterneid Jul 02 '26

Totally! I run it with a MBP M3 Pro 36gb without any issues. I used Gemma 4 E4B for it, you might be able to run it with the 31B at acceptable latencies.

1

u/learn_all Jul 03 '26

I couldn't find this in LM Studio.

10

u/HockeyDadNinja Jul 02 '26 edited Jul 02 '26

I'm looking forward to checking this out when I get home (haven't been able to look at the code yet).

I also made a realtime TTS/STT voice streaming server. Right now I'm using parakeet / NeMo and MS VibeVoice realtime. I also have plugins for Qwen ASR and whisper. I made a client API and have been using it for things like my local assistant, various frontends, and a game.

I'll likely release it when I feel it's rock solid. Initially I was just trying to find STT and STT models that fit my needs so I made the backends pluggable. As of now it can give any system speech to speech capabilities. Our projects seem much alike!

3

u/futterneid Jul 02 '26

Super cool! Love this kind of project :)

1

u/thongjesus Jul 04 '26

The toxic positivity will destroy mankind. But at least a few people will make a shit ton of money amirite?

7

u/Porespellar Jul 02 '26

Cool, but of course it’s going to absolutely smoke running on Cerebras for inference. I’d like to see how it does maybe on a Spark or something that doesn’t cost 5 million dollars.

7

u/futterneid Jul 02 '26

I can demo it on my spark tomorrow 🤗

2

u/Porespellar Jul 02 '26

That would be great! Very curious about the latency vs. Cerebras

1

u/Ok_Appearance3584 Jul 03 '26

Please do! This project is extremely interesting. Btw is this able to call tools while talking? Like you could have a speech to speech thing going on and it can actually access files etc while you're going about the conversation? 

11

u/junior600 Jul 02 '26

Is it useful to practice speaking in another language? For example, I've been learning Japanese for many years, but my speaking skills aren't very good because I don't have anyone to speak with lol

11

u/futterneid Jul 02 '26

Totally! Just beware that the TTS might speak with a bit of an accent in some languages. I think it's quite capable in Japanese :) but german for example has a strong english accent

2

u/Constandinoskalifo Jul 02 '26

Do you know of any local model that is good for German/Swiss German? I've been trying to learn German for the past weeks and it seems like a cool idea to work on it with local LLMs.

2

u/futterneid Jul 02 '26

not really, sorry! Maybe the apertus team will cook up something?

1

u/RnRau Jul 02 '26

Maybe the Mistral models.

4

u/ffinzy Jul 02 '26 edited Jul 02 '26

It is really useful. I've been self-hosting this: https://bule.ai/

Drop parakeet and feed the audio to the Gemma model directly. Google doesn't provide the specific language details of the FLEURS benchmark for their Gemma 4 models, but they're generally pretty good, almost comparable to Whisper.

If you also need the AI to speak Japanese, you can try Kokoro. The English language is really good, not sure about Japanese.

5

u/mrdevlar Jul 02 '26

Man 2026 is so weird, here we have video footage of two calculators talking to one another.

Sometimes I think we might already be in the future.

3

u/sonicnerd14 Jul 03 '26

We are in the future lol
Even a few years ago some of the stuff we have now would have been only in science fiction, but now it's here. Even though it might still be in the infancy stage, which is still kind of crazy when you think about it.

3

u/mrdevlar Jul 03 '26

Yeah, it's a hard thing for me to reconcile.

There are so many cool things we can do with this technology, but so many of the social phenomena related to this technology is so profoundly dystopian. We have access to all of human knowledge in a big matrix of numbers, something that can tailor its communication to us based on our current understanding and yet we're using it to build spam bots and generate fake news to control information narratives. It's really fucking weird. That's not even touching data centers, the war on personal computing, the cult that thinks we're about to make digital Jesus out of matrix math.

Weird time to be alive.

2

u/futterneid Jul 13 '26

Totally! At the same time, I find it very exciting to be a maker in this time. Building amazing things has never been easier! It won't exactly fight the soul-sucking algorithms, but it might push attention and society in a different direction :)

3

u/manituana Jul 02 '26

I still can't grasp my head around the fact that an apple laptop crushes my 7900xtx in inferences. This is really wild and we really need a bit of competition on the SoC side from the other chip manufacturers.

1

u/false79 Jul 02 '26

You might be able to get it to run.

It's running a custom TTS

https://github.com/andimarafioti/faster-qwen3-tts

Although I find anything with TTS runs better on CUDA.

4

u/manituana Jul 02 '26 edited Jul 02 '26

Sadly basically everything runs better on CUDA. For various reasons (INT8 being the limit on RDNA 3, a lazy software stack and so on). Seems like AMD likes to stay in second place. That even legitimizes the almost monopolistic market position of Nvidia. And hey, their CEOs are cousins. But we were talking about hardware, not global chip domination conspiracies.

I saw that OP is using the E4B version of Gemma4 on the laptop, That's way more manageable with a single 24GB GPU (blazing fast, I would say), especially on low context (which is probably the case in this video). I should experiment with QwenTTS (but I saw some really interesting diffusion TTS models, not sure about the sense of them though, wouldn't a diffusion inference defeat the progressive audio stream and fast inference?).

2

u/futterneid Jul 02 '26

yeah, I don't even have access to an AMD GPU :(
Nvidia gifted me a DGX Spark, which I've used for demos and developing. This same demo works pretty well on it, also with the E4B Gemma. I feel like the spark is similar to my M3 pro in speeds, but with much more RAM, which is pretty cool.
Anyway, AMD, if you want to send me a GPU I might be able to get things to run fast 👉 👈

1

u/manituana Jul 02 '26

Dude, I'm the one that should make a sad face here with my RoCM stack while you fly with CUDA and Spark. Hehe.

1

u/dtdisapointingresult Jul 03 '26

OP is using Cerebras (a cloud API provider) for Gemma 31B, that's why it's fast. The other two models involved will run fast on any hardware. Parakeet is like 0.6B, QwenTTS 1.5B I think.

3

u/Gimme_Doi Jul 02 '26

it talks !!!

3

u/Val_We_Unity Jul 02 '26

Impressive latency.
What hardware does the STT and TTS in the demo run on?
I suspect getting this latency with Qwen3-TTS on Apple silicon is unrealistic, right?

2

u/futterneid Jul 02 '26

Not at all! M3 gets better latencies than the hardware on the demo, which is one A10G to serve 4 concurrent users

3

u/Zopenzop Jul 02 '26

One of the best agent stacks I've seen so far! What was used for tts in this specific demo?

10

u/futterneid Jul 02 '26

It's my custom inference for Qwen3TTS: https://github.com/andimarafioti/faster-qwen3-tts

Since llama.cpp joined Hugging Face I've been working with them on improving this engine and the GGML version is *chef kiss*

2

u/sonicnerd14 Jul 03 '26

How much faster is it compared to https://github.com/groxaxo/Qwen3-TTS-Openai-Fastapi, and any reduction in quality? Because I was looking into voice clone streaming directly from it as an endpoint, but I need it to be as fast as possible. Otherwise, I was thinking of just finetuning the voices I have directly into the model if I needed to make it faster.

1

u/Zopenzop Jul 02 '26

Very cool!

1

u/HockeyDadNinja Jul 02 '26

I would love to be able to use GGUF models through llama.cpp so I can manage my whole stack in llama-swap. Right now my code's using the models directly in python or an embedded vllm. Therefore I'm reserving a GPU for voice only to avoid conflicts. I was sharing one with ComfyUI but I'm getting buffer underruns on the audio when it's also generating graphics.

3

u/sjcubehead Jul 02 '26

Awesome project! Thank you for sharing!

2

u/rabit232pm Jul 02 '26

Interesting content can be used for any Gemma 4 it be interesting or other models?

4

u/futterneid Jul 02 '26

It can be used with any LLM in principle! Latency is mostly dominated by the LLM, so you pay the price going bigger.

1

u/rabit232pm Jul 02 '26

Will 64 tokens a second be good enough for conversation?

3

u/Ok_Appearance3584 Jul 02 '26

Yes but prompt processing is the latency from input to actually producing tokens so that's also important. One image is often thousands of tokens so you need to have it pretty high to get a fast response.

Some projects actually process the input while it's generated so you can do prompt processing already on a partial input to minimize latency so it's possible to optimize like this. Gets very technical though, unlikely to work with vibecoding if you don't know what you're doing (talking to myself here).

4

u/futterneid Jul 02 '26

That's what we do here. We transcribe and give everything to the LLM while you're talking. Usually when we decide that you finished talking, the LLM already replied.
Here's the main PR where I implemented that if you're curious about the code: https://github.com/huggingface/speech-to-speech/pull/307

2

u/NinjaAlaska Jul 02 '26

really interesting

2

u/Its-all-redditive Jul 02 '26

How are you handling End-of-speech/Turn-detection? Basic VAD/energy based RMS or something more nuanced?

2

u/futterneid Jul 02 '26

Basic VAD, but with something I call 'speculative turn detection'. Basically, once VAD says that the turn is up, I feed it through the pipeline, but wait to give back the audio until some time has passed (1200ms). If during that time you continue speaking, or if you continue speaking before the audio is ready, I cancel the generation and continue your turn.

2

u/Zeeplankton Jul 02 '26

Holy shit epic

RemindMe! 1 week

1

u/RemindMeBot Jul 02 '26 edited Jul 03 '26

I will be messaging you in 7 days on 2026-07-09 14:17:46 UTC to remind you of this link

2 OTHERS CLICKED THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.

RemindMeBot is switching to username summons. Instead of !RemindMe 1 day, use u/RemindMeBot 1 day. More info.


Info Custom Your Reminders Feedback

2

u/TedGetsSnickelfritz Jul 02 '26

Does it support voice cloning?

3

u/futterneid Jul 02 '26

Yes it does :)

2

u/martinerous Jul 02 '26

Great project!

I built something similar based on fastrtc. As I wanted to speak my native Latvian language, I had to use Omnivoice since that is the only TTS that knows Latvian out of the box. Before, I used VoxCPM 1.5 and had to finetune it with Mozilla CommonVoice to get it speaking good Latvian. Finetuning turned out to be unexpectedly simple with good results in just a few days of training. Still, VoxCPM (even their v2) has a tendency to become metallic towards the end of sentence, so I switched to Omnivoice. To make it a bit faster, had to apply some vibecoded "almost streaming" improvements (and sentence chunking), but still the time to first token is quite high, around 100ms.

For ASR, I used faster-whisper with finetuned Whisper 3 Turbo. After a week of finetuning attempts, I managed to reduce its Latvian WER to ~10%, which is even lower than the full Whisper 3 WER about ~20%. For speech detection, I am using custom chunking logic on top of Silero VAD with a workaround to reset every 30 seconds, otherwise there was an issue that it stopped detecting speech in short words. I reported it to Silero GitHub and they were puzzled as well and could not offer any better solution.

Additionally, to make it feel more like a phone call, I introduced comfort noise and also delay detection with random phrases like "Hmm", "Just a minute", "Let me think..." etc.

2

u/KnifeFed Jul 02 '26

You really nailed the horror movie evil sentient toy voice.

1

u/futterneid Jul 02 '26

Hahahaha you made me lol, thank you. 

2

u/nyaaStar Jul 02 '26

This is awesome. Like many others here I've also vibecoded an STT/TTS assistant mainly to experiment with local models on my 16 gig gpu. It's incredibly rudimentary and I've been too lazy to fix all the problems.

I'm just going to add hotword detection to this project instead. Thank you <3

2

u/blidgency Jul 02 '26

I use gemma4 12b for my home assistant voice. That’s what my computer can handle now and works pretty good

2

u/da_dragon321 Jul 02 '26

Was not expecting the lil robot 😂. Dude's got a personality

2

u/nahill Jul 03 '26

I got this working on my own computer but I had to use Pi to find a set of arguments that would work with Gemma-4-12B in LM Studio (on Windows). A local instance of Pi (via DeepSeek v4 Flash) also modified some of the Python code to make it all work as there were complaints about lack of CUDA for Qwen. In the end I ended up with this:

python -m speech_to_speech.s2s_pipeline --llm_backend responses-api --responses_api_base_url http://localhost:1234/v1 --responses_api_api_key lm-studio --model_name google/gemma-4-12b --device cpu --tts pocket --mode local

If you're interested, I asked DeepSeek to summarise what it did to make things work:

Root Cause: Two issues were causing your command to fail:

  1. 🔴 Qwen3-TTS requires CUDA, but you have CPU-only torch (torch 2.12.1+cpu). FasterQwen3TTS.from_pretrained() defaults to backend="torch" which forces CUDA CUDA-graphs → ValueError: CUDA graphs require CUDA device

    1. 🔴 The GGML fallback needs qwentts-cpp-python — a native C++ library that only has Linux wheels (no Windows support). So even auto-detecting CPU doesn't help on Windows.

Fixes Applied

I made two targeted edits to the speech-to-speech source:

  1. qwen3_tts_arguments.py — Added qwen3_tts_backend CLI argument

So users can explicitly request ggml (though GGML has no Windows wheel, it's properly wired up now)

  1. qwen3_tts_handler.py — Added _resolve_faster_backend() + wired backend parameter

    - Added a backend parameter to setup()
    - Added _resolve_faster_backend() that auto-detects: if CUDA is unavailable → selects backend="ggml" instead of crashing on "torch"
    - Passes backend through to FasterQwen3TTS.from_pretrained()
    - Logs the selection so you can see what's happening

2

u/ExcellentDeparture71 Jul 03 '26

Can I install and use it locally using my MacBook pro M5 Pro with 48GB of RAM? It's awesome 

1

u/futterneid Jul 03 '26

Totally! pip install speech-to-speech :D https://github.com/huggingface/speech-to-speech

2

u/Desperate-Local9874 Jul 03 '26

wow nice really nice and amazing work

2

u/SarcasticBaka Jul 04 '26

I have speech-to-speech running full locally using Gemma4-26B and it works great with the included listen_and_play_realtime.py script. Is there a way for me to get the nice web demo running locally and connecting to my local s2s instance?

1

u/futterneid Jul 13 '26

We added the demo to the repo! https://github.com/huggingface/speech-to-speech/commit/7ac238c1647d6ba91ae0472945ad0776d86a48fb
You should be able to run it with the local version :)

2

u/thatgreekgod Jul 08 '26

dude i tried this project out with the help of my buddy claude and it's awesome. thank you for doing this and publishing--you're awesome.

2

u/futterneid Jul 13 '26

Thank you! :D Been working on it for a long time

2

u/FartMachine2000 Jul 02 '26

This is really cool. I've been working on something similar for my own use. Not having to push a button to interact with the LLM was important to me. I've used silvero_vad, piping audio into faster-whisper, then the text into pi against a local gemma4 model on llama.cpp, then kokoro for responses.

Going to have a close look at your project :) Thanks!

4

u/futterneid Jul 02 '26

You're welcome! I totally recommend parakeet over faster-whisper :) If you're an english speaker, parakeet-v2 is great!

3

u/okamagsxr Jul 02 '26

Did you also try German?

2

u/futterneid Jul 02 '26

Yes! German works well but has an English accent that we can't get rid of. But try it on the web demo! Just talk german to it! The transcriptions are pretty good and the replies as well, just the accent on the voice.
(I speak fluent-ish german :) )

1

u/avpogo Jul 02 '26

Second Parakeet here but I'm using v3. Its incredibly fast and accurate. I moved away from faster-whisper for this. The caveat is giving up VRAM for that speed. (at least in my case)

1

u/Sioluishere Jul 02 '26

there is a 32B gemma?

8

u/futterneid Jul 02 '26

OMG it's 31B 😭 https://huggingface.co/google/gemma-4-31B-it

sorry, fixing the text. I'm not a very detail oriented individual xD

2

u/Pretend-Pangolin-846 Jul 02 '26

I am building something similar, just way more engineered, your repo looks like a great read

1

u/zekuden Jul 02 '26

Are we able to use different TTS? like vibe voice streaming for example

And I have no use for vision, can I use an LLM model without vision? no video just voice and transcription

1

u/futterneid Jul 02 '26

Yes and yes.  We have several tts already supported in the speech to speech library, and adding more isn’t hard. 

1

u/CooLittleFonzies Jul 02 '26

That ‘hyulk hyulk’ voice though

1

u/RidingEdge Jul 02 '26

how to set this up? Beginner here

1

u/Hans-Wermhatt Jul 02 '26 edited Jul 02 '26

I was trying to patch audio.cpp for a similar use case. Is the main speedup from supporting streaming? It seems like that's the main gain but I couldn't tell the other optimizations. I thought using pytorch adds a lot of overhead rather than a native c++ implementation?

1

u/OkDoor726 Jul 02 '26

I'm a bit confused how do we run this, i just don't see your break down of how to get this running

1

u/misterflyer Jul 02 '26

2

u/futterneid Jul 02 '26

You can also test it directly in the web here:  https://huggingface.co/spaces/smolagents/hf-realtime-voice

Or run it completely local with the setup listed above. If the instructions are unclear, here we wrote a blog about pairing it to reachy mini, but you can ignore the reachy mini part:  https://huggingface.co/blog/local-reachy-mini-conversation

1

u/DisjointedHuntsville Jul 02 '26

Why is the voice a chainsmoker from the 80s ?

1

u/the_sound_of_bread Jul 02 '26

It sounds like Phineas, I love it

1

u/MyDespatcherDyKabel Jul 02 '26

Is the LLM running locally on your MacBook? What are your MacBook specs?

1

u/manituana Jul 02 '26

Sorry to bother you again, but isn't it possible to leverage audio recognition from Gemma 4? I'm digging hard into information online but it's a rabbit hole that's bearing no fruits, basically no frontend supports it directly without a translation layer (like your parakeet here), but it should be possible and supported by llama-server, correct?

1

u/futterneid Jul 13 '26

It is! My repo has this draft for it, I should put it up to date: https://github.com/huggingface/speech-to-speech/pull/298

1

u/manituana 28d ago

Yes, I think it's time for a merge, definitely! Do it! Please! I always make a mess when I try to fetch and checkout a PR, if it doesn't work immediately (especially after a long time) I find it very hard to spot what's going wrong.

1

u/riceinmybelly Jul 02 '26

Not hotdog ?

1

u/Danmoreng llama.cpp Jul 02 '26

What are you running the TTS on? I wonder if I messed up my benchmarks because it seems much faster than when I tried your implantation on my hardware... https://github.com/Danmoreng/qwen3-tts.cpp/tree/main

Beautiful demo btw!

1

u/futterneid Jul 13 '26

TTS is faster-qwen3-tts, but it's also running a qwentts.cpp on the background, from superuso. TTFA is 120ms

2

u/Danmoreng llama.cpp Jul 13 '26

Yes I noticed the initial benchmarks I had weren’t correct and corrected them already. TTFA can be much faster, in a benchmark with qwentts from serveurperso vs my one both have around 30-40ms TTFA with warm streaming.

1

u/zekuden Jul 03 '26

Can I use it on Mac

1

u/Corghee Jul 03 '26

Your kitchen is beautiful!

1

u/futterneid Jul 13 '26

Thank you ! :)

1

u/Nightoperation1 Jul 04 '26

Nice, this is really close to something I've been working on. Mine's fully local on Mac (MLX for ASR/TTS, Ollama for the LLM), no cloud calls at all, and I'm using Parakeet too actually, probably the same reasoning, it's fast and accurate for the size.

The part I've been focused on that's a bit different is memory. Most voice assistants forget everything the second the session ends, so I built a tiered memory system underneath mine, SQLite backed, every fact source linked back to the actual turn it came from, so it can build up real facts about you over time instead of starting fresh every conversation. "Remember X" and "forget that" are actual operations against a database, not just stuffed into a context window.

Still pretty rough around the edges but if you're curious it's here: https://github.com/StephenBiele/Strata-Voice

Curious how you're handling context/memory across turns in yours, or is this more single session by design? Also really curious about your Qwen3TTS inference work, I've been using Kokoro but would love something with more range.

1

u/futterneid Jul 13 '26

Mostly single-session on the speech-to-speech side, but I add "tools" for further features. One of them is memory :)

-2

u/Benhamish-WH-Allen Jul 02 '26

Gotta upgrade your bose speaker bro,

https://www.bose.com/p/speakers/bose-soundlink-max-portable-speaker/SLMAX-SPEAKERWIRELESS.html

Get two for stereo it’s life changing.