正在加载视频...

视频加载失败

Smart Turn v2: open source, native audio turn detection in 14 languages. New checkpoint of the open source, open data, open training code, semantic VAD model on Hugging Face, fal, and Pipecat AI. - 3x faster inference (12ms on an L40) - 14 languages (13 more than v1, which...

42,395 次观看 • 1 年前 •via X (Twitter)

46 条评论

kwindla 的头像
kwindla1 年前

This model is designed to be used together with a traditional VAD model for voice AI conversations. The voice AI pipeline typically looks like this: 1. A very short VAD timeout chunks the audio stream for the smart-turn model 2. Transcription runs in parallel 3. Transcription output is gated on turn detection before going to the rest of the pipeline The basic idea here is that you want turn detection to happen faster than transcription. It doesn't really matter how much faster, because you need "final" transcription fragments before you can run LLM inference. We're generally aiming for ~400ms end-to-end for turn detection. But other approaches are possible. For example, you can build pipelines that do greedy LLM inference on every transcription segment, and gate *that* output. This gets youe even lower latency, but cost is higher because you're throwing away all the LLM inference for every incomplete turn speech segment. Or, doubling down on the greedy inference approach, you can skip transcription entirely and feed every speech segment to a model capable of native audio inference. Again, throw away that output for speech segments that the smart turn model classifies as incomplete.

kwindla 的头像
kwindla1 年前

Blog post with code examples and docs pointers: - Repo with training code and development notes: - Weights: - Data sets: - Use the model for free in Pipecat Cloud + @FAL: - Here's a demo app hosted on @ vercel and Pipecat Cloud: - -

Camera Search 的头像
Camera Search1 年前

@huggingface @FAL @pipecat_ai So good!!

Tal Hoffman 的头像
Tal Hoffman1 年前

@huggingface @FAL @pipecat_ai Great release! Awesome job

Jiwei Yuan 的头像
Jiwei Yuan1 年前

@huggingface @FAL @pipecat_ai cool, definitely will try it

Lukas Wolf 的头像
Lukas Wolf1 年前

@huggingface @FAL @pipecat_ai very nice -- thanks for doing this work!

mahir 的头像
mahir1 年前

@huggingface @FAL @pipecat_ai Just tested the demo and wow, this is really good! Definitely great for use cases where people might take longer to respond but you wouldn’t want to preemptively respond!

Sangy 的头像
Sangy1 年前

@huggingface @FAL @pipecat_ai Wow, it's..perfect!

Cameron Ehrlich 的头像
Cameron Ehrlich1 年前

@huggingface @FAL @pipecat_ai Now that I’ve seen this, this has to be the new standard. Awesome 👏

ruby 的头像
ruby1 年前

@trydaily @huggingface @FAL @pipecat_ai beautiful, putting the new model in sage maker and testing now !

kwindla 的头像
kwindla1 年前

@trydaily @huggingface @FAL @pipecat_ai Can’t wait to hear any suggestions you have!

nisten 的头像
nisten1 年前

@huggingface @FAL @pipecat_ai 400ms ??!! 👀 good job dude

kwindla 的头像
kwindla1 年前

And there's still some low-hanging stuff in the FastAPI request path that could cut another ~100ms I think. Actual inference on an L40 is ~12ms. Marcus, who did the heavy lifting on this version but isn't on X, was focused on getting inference time down without sacrificing accuracy. I think the P50 could easily be under 300ms, including the 200ms VAD timeout, and the network request to do smart-turn inference.

os 的头像
os1 年前

@huggingface @FAL @pipecat_ai voice is better than gpt

Jetson 的头像
Jetson1 年前

@huggingface @FAL @pipecat_ai This is so good! Whats the TTS you are using? Sounds great too

kwindla 的头像
kwindla1 年前

@studiokensense @huggingface @FAL @pipecat_ai This is @cartesia !

Sohan 的头像
Sohan1 年前

@huggingface @FAL @pipecat_ai @bratrat we prototyped this last year haha

bryan pratte 的头像
bryan pratte1 年前

@huggingface @FAL @pipecat_ai We got to get you a hallway character :)

kwindla 的头像
kwindla1 年前

@huggingface @FAL @pipecat_ai > We got to get you a hallway character :) 100%. Let's do that!

bryan pratte 的头像
bryan pratte1 年前

@huggingface @FAL @pipecat_ai Ill dm you 🚀

Aaron 的头像
Aaron1 年前

This is awesome @kwindla. Do you have any tips for systematically getting an agent to consistently both respond AND do a tool call within a single turn? Example: I've noticed, especially with turns with MCP tool calls, an agent will say something like, "Yes I will do X. Please wait", and then end the turn before actually executing the tool call.

Bhutani 的头像
Bhutani1 年前

@huggingface @FAL @pipecat_ai What’s the animation?

Himanshu Kumar 的头像
Himanshu Kumar1 年前

@huggingface @FAL @pipecat_ai Impressive, but real-world comms data shows overlap ups accuracy... Context is key for robust solutions..

kwindla 的头像
kwindla1 年前

@huggingface @FAL @pipecat_ai > Impressive, but real-world comms data shows overlap ups accuracy... Context is key for robust solutions.. ?

Prasanna 的头像
Prasanna1 年前

@huggingface @FAL @pipecat_ai This is awesome 👏

oogabooga.inc 🫡 $3.7vps club member ($h3lp) 的头像
oogabooga.inc 🫡 $3.7vps club member ($h3lp)1 年前

@huggingface @FAL @pipecat_ai awesome results, will try out the script!

Christopher 的头像
Christopher1 年前

@ClementDelangue @huggingface @FAL @pipecat_ai Really impressive turn detection. I especially like pause handling. What about scenarios where the current speaker re-interrupts the other speaker? In this example the human interrupted the bot & it allowed it every time but in real life this isn’t always the case. Great Job 👍

kwindla 的头像
kwindla1 年前

Say more about what interruption cases you're thinking of? I've built a bunch of multi-participant + AI stuff and have done a fair amount of thinking about problems around when the AI should talk (or not) and how to handle various kinds of interruptions. Generally, I think there are some common "building blocks" but a lot of things are dependent on your specific use case. Having said that, 99% of people trying to build voice agents are doing "one human talking to one agent." That's what this model was primarily designed to facilitate. Does that make sense?

Christopher 的头像
Christopher1 年前

@ClementDelangue @huggingface @FAL @pipecat_ai It does, thank you for the details. I think I was thinking about when a speaker doesn’t feel like being talked over, should an agent have the capability to interrupt a human just like the human interrupted the agent? I’m not clear where this would actually b useful so may b moot

kwindla 的头像
kwindla1 年前

That's definitely something you can implement fairly easily with an inference step early in the Pipecat pipeline that's just a few-shot classifier (should the bot interrupt, based on what the user is saying now). That's the way I've done it, but there are other approaches too, of course.

Christopher 的头像
Christopher1 年前

@ClementDelangue @huggingface @FAL @pipecat_ai Interesting and straightforward. I honestly hadn’t thought about a simple solution like that. I guess the only trick is deciding why & when the agent can interrupt the human. Could be a fun thought exercise or project at some point.

James 的头像
James1 年前

@huggingface @FAL @pipecat_ai Any licensing restrictions for commercial use for the entire pipeline?

kwindla 的头像
kwindla1 年前

@huggingface @FAL @pipecat_ai Answered here just so it doesn't get lost in the threads:

Victor M 的头像
Victor M1 年前

@huggingface @FAL @pipecat_ai You’re too good 🚀🚀

mrfakename 的头像
mrfakename1 年前

@huggingface @FAL @pipecat_ai Cool! Why use Wav2Vec2 over Whisper?

kwindla 的头像
kwindla1 年前

Lots of prior art using the Wav2Vec2 family of models for classification tasks. This task feels more like a classification task than a generative task. Though you can definitely get to a good model for turn detection either way, I'm sure. We did a bunch of experiments with different architectures and base models. Wav2Vec2 had a good combination of useful pre-training to build on, flexible architecture that can accommodate a lot of different potential classification heads and other modifications, and the potential for very fast inference. I actually think an LSTM approach here makes a lot of sense, too. I could imagine going that direction if I had a *lot* more time to work on this!

mrfakename 的头像
mrfakename1 年前

@huggingface @FAL @pipecat_ai Makes sense - but whisper also supports classification right?

kwindla 的头像
kwindla1 年前

> whisper also supports classification right? I don't think so, in the general sense I'm talking about classification, here. You could use the output of the encoder layers only (ignoring the decoder layers entirely) plus a classification head. That would be an interesting thing to play around with! But that starts to look like you are re-inventing Wav2Vec2, maybe. Feel free to correct me if you know more about this than I do.

mrfakename 的头像
mrfakename1 年前

@huggingface @FAL @pipecat_ai I haven’t played around with it much but I do remember once training a model using WhisperForAudioClassification in the Transformers repo and I think it works exactly how you described it. IIRC it was much better than Wav2Vec2 for classification

kwindla 的头像
kwindla1 年前

Oh, cool. I can definitely imagine Whisper performing better as a base for some kinds of audio classification tasks. Maybe especially the larger model sizes. A primary requirement for this task is very fast inference time. I’m not super optimistic that it would be easy to get a classification-oriented Whisper variant down to 12ms inference on an L40, which is what this checkpoint of the smart-turn model clocks in at. But I could be wrong. My intuition after working on this problem for a bit is that I’d probably put effort into going smaller and continuing to improve the data sets. Rather than going bigger. I had fun hacking for a couple of days on the quick and dirty LSTM version that a contributor posted.

Sandeep Rajaram 的头像
Sandeep Rajaram1 年前

@huggingface @FAL @pipecat_ai This is great! One question - people usually break down their mobile number (& other known/fixed entities) into multiple parts. Can this model detect such turns? I'm guessing the current model does not use any such context

Jetson 的头像
Jetson1 年前

@huggingface @FAL @pipecat_ai this is huge, congrats team! btw have you ran this on a mac? whats the hardware requirement like?

Sadi Moodi 的头像
Sadi Moodi1 年前

@huggingface @FAL @pipecat_ai good job @kwindla , can the model know at which exact word it was interrupted and understand that the full sentence was not heard by the user?

kwindla 的头像
kwindla1 年前

> can the model know at which exact word it was interrupted and understand that the full sentence was not heard by the user? Yes! Word-level context fidelity for interruptions is the default in Pipecat if you are using a TTS that outputs word-level timing metadata. (Note that that's separate from the smart-turn logic. But having both working together in the same pipeline is great.)

Bassim Eledath 的头像
Bassim Eledath1 年前

@huggingface @FAL @pipecat_ai This is neat! We've used the following 2 metrics (beyond accuracy) to compare turn detection models: 1. Bot interrupting user rate (ideally 0) 2. Average time to respond when user is done speaking (ideally close to 0ms) Curious to see how this model will perform on our evals

kwindla 的头像
kwindla1 年前

@huggingface @FAL @pipecat_ai Let me know!

相关视频

Introducing PhoneLLM, an open model for voice agents. GPT 5.6 Terra performance on typical voice agent tasks at 1/3 the latency and 1/18 the cost. For voice agents, we need models that are both very low latency and very good at tool calling and instruction following. There's a trade-off here, and we often have to compromise on either latency or capability when building voice agents. With PhoneLLM (and the training and data stack that made this model possible) we're fixing this problem. For the last couple of years, most of the effort in frontier model development has gone towards leveraging test-time compute. Which is awesome! Models of all shapes and sizes are available that perform really, really well ... if you have "thinking" turned on for your model. But if you need your agent to respond at voice conversation speed, you can't use thinking models. PhoneLLM is a full-weights fine-tune of NVIDIA Nemotron Nano 30B. We trained on a wide range of real-world telephone and customer support use cases. The training focused on taking the excellent Nano 30B base capabilities and teaching the model to do typical voice agent tasks with thinking disabled. The results are really good: accurate tool calling and concise, on-topic responses in long conversations. And fast: TTFAT measured server-side is <100ms if you run PhoneLLM on a lightly loaded B200. :-) But seriously, when we characterize model latency, we do it with full, end-to-end, batched request simulations using real Pipecat voice agent pipelines. You can serve more than 80 concurrent agents on a single B200 with P95 end-to-end TTFAT <600ms. Including network overhead. That's an LLM cost-per-minute around $0.0025. (1/4 of a cent.) At a latency lower than any third-party API offers today. More details about this model, including weights on Hugging Face, how to spin it up with one click on Modal, and a starter project repo you can clone, are in the thread ...

kwindla

335,479 次观看 • 2 个月前

Voice AI turn taking is a solved problem. The single most common complaint about voice AI, today, is that agents interrupt too often. But the voice agents I build for myself now respond quickly and interrupt me less often than the people I talk to every day. (I actually measured this.) Mark Backman made a Pipecat AI PR two weeks ago that was the last piece of the puzzle for turn taking so good that I no longer ever think about it. The approach combines three layers of processing: 1. Voice activity detection, with a short (200ms) trigger. 2. A native audio turn detection model that's small, fast, and runs on CPU. This model captures audio nuances like inflection and filler sounds that don't get transcribed. 3. A prompt mixin for the conversation LLM that decides turn completion based on conversation context. None of these are new. We've been using VAD for a long time. We trained the first version of the Pipecat Smart Turn native audio model in December 2024. And we've been experimenting with prompt-based large model turn detection (sometimes called "selective refusal") for more than a year. Now, the Smart Turn model and the SOTA LLMs we're using in voice agents have both gotten so good that using them together feels like we've finally "solved" turn detection. Mark also figured out how to elegantly apply a "single-token tagging" technique to this problem. We sometimes use single-token tagging in place of tool calling, when we need a near-zero latency programmatic trigger. Mark's Pipecat mixin defines three single-token characters and prompts the LLM to output exactly one of them at the beginning of every response. - ✓ means the agent should respond normally (immediately) - ○ is a "short incomplete" - the agent should wait 5 seconds - ◐ is a "long incomplete" - the agent should wait 10 seconds The wait times, and the details of the prompt, are configurable, of course. Watch the video to see me talk to an agent that handles all my various pauses and inflections, plus phrases like "let me think," pretty much the way a person would handle them, in terms of response latency. Also, in the second half of the video, I ask the agent to adjust its response pattern because I'm going to tell it a phone number. This kind of "in-context" adjustment of response wait times is really useful. The LLM in the video is GTP-4.1. We've tested the prompt and single-token adherance with GPT-4.1, Gemini 2.5 Flash, Anthropic Claude Sonnet 4.5, and AWS Nova 2 Pro. Note that older models in all these families (and, in general, smaller open weights models) aren't able to reliably output these single-token tags. But the new models we're using these days are pretty amazing.

kwindla

27,086 次观看 • 8 个月前

Cerebras inference is very fast. So fast that it changes how we think about configuring our LLMs for voice agent use cases. Kimi K2.6 is a 1T parameter reasoning model that Cerebras serves at 650 - 1,000 tokens per second (end-to-end throughput), with time to first token metrics as low as 150ms (latency). These numbers are two to three times faster than other similarly capable models. The biggest lever we get from this kind of speed is that we can use the model in reasoning mode, and still have excellent "time to first non-thinking token." This solves a big pain point we have in 2026 for voice agent use cases. Almost all recent innovation in post-training has focused on making models good at reasoning ("test time compute"). This is great, but it makes the user-facing model latency much, much slower. Which is a problem for conversational voice agents. We can run Kimi K2.6 with reasoning turned on, and get responses faster than other models produce with reasoning disabled. On my 30-turn voice agent benchmark, Kimi K2.6 with reasoning enabled ties GPT 5.1 and Haiku 4.5 with reasoning disabled, and is still about 200ms seconds faster! On my primary task agent benchmark, Kimi K2.6 is now the #2 model. It ranks just behind Gemini 3.5 Flash in "high" reasoning mode, and tied with GLM 5, Sonnet 4.6, and GPT 5.4 with reasoning set to "low." But Kimi K2.6 completes each turn in the agent loop in under 500ms. The other four models are all at least 3x slower. (Models only qualify for this benchmark if they can complete task turns at a P50 <4s.) A couple of other things that this speed buys us, for production voice agents: - Tool calls happen fast enough that we don't have to work around tool call latency in our pipeline design. - We can prompt the model to output structured data at the beginning of a response, followed by plain text for voice generation. This opens up possibilities like asking the model to do complex classification/generation tasks that influence the rest of the pipeline. For example, the model could create a detailed style prompt for a steerable TTS model, for each individual conversation turn. And, of course, you can use Kimi K2.6 with reasoning turned off. Cerebras calls this "instant" mode. Here's a video of a Cerebras Kimi K2.6 voice agent with voice-to-voice response time, measured at the client, under 500ms. This is the true response latency as perceived by the user, including all network and audio codec overhead, transcription and turn detection, Kimi K2.6 token generation, and voice generation. 500ms is, effectively, instant. So the Cerebras naming for this mode is a propos. :-)

kwindla

40,593 次观看 • 5 个月前