Parley

Parley is a full-duplex speech model. It listens while it talks and decides every 80 ms whether to speak, keep speaking, or listen.

It's the model from the blog post Inside Frankenstein's lab: a full-duplex model at home, which covers how it works, how it was trained, and where it falls short.

What it is

  • Thinker: Gemma 4 12B (audio-native, no speech encoder), adapted with LoRA. It hears 16 kHz audio in 40 ms slices and writes text or control tokens on an 80 ms clock: SIL while listening, EPS while still speaking, or words when it has them.
  • Talker: CSM-1B (Sesame) speaks the words Gemma writes, in chunks, through a playout queue that handles interruption and yielding.
  • Codec: Mimi (Kyutai) provides the audio codes CSM renders.

This repo holds the thinker's LoRA adapter and processor. CSM-1B and Mimi are used as released.

Training

  • Supervised: synthetic spoken conversations, with replies rewritten to sound like speech and training examples where the user interrupts mid-reply. User audio is synthetic voices only.
  • Reinforcement learning: GRPO on the decision to speak only, on mid-sentence pause clips from Meta's Seamless Interaction, heard over room tone. This is what teaches the model to wait through pauses. The released adapter is the step-20 save of that run.

Intended use

Research, experimentation, and demos of full-duplex voice interaction. Not a production voice agent. The code is at https://github.com/walln/parley, including a live demo you can run yourself: parley serve starts a full-duplex server with a browser page to talk to it.

Limitations

  • Trained on synthetic voices only; recorded human speech is weaker.
  • It waits through pauses well, but answers later than it should at the end of a turn.
  • One voice (the CSM reference clip).
  • Gemma gets one text token per frame, so long text and tool calls don't fit.
  • It stops for any interruption, including backchannels like "okay".
  • Research-only weights.

Components and licenses

  • Gemma 4 12B (google/gemma-4-12B-it): Apache 2.0.
  • CSM-1B (sesame/csm-1b): Apache 2.0, built on Llama 3.2 (Llama Community License).
  • Mimi (kyutai/mimi): CC BY 4.0.

Training data and attributions

  • Seamless Interaction (Meta): CC BY-NC 4.0. Pause clips for reinforcement learning.
  • databricks-dolly-15k (Databricks): CC BY-SA 3.0.
  • alpaca-cleaned: CC BY 4.0. Answers originally written by an OpenAI model.
  • no_robots (Hugging Face H4): CC BY-NC 4.0.
  • hh-rlhf (Anthropic), helpful split: MIT. Source of the multi-turn conversations.
  • Training replies were partly rewritten by a teacher model.

Weights license

Research-only, under CC BY-NC 4.0. Commercial use requires a separate agreement.

Citation

@misc{wall2026fullduplex,
  author = {Nick Wall},
  title = {Inside Frankenstein's lab: a full-duplex model at home},
  year = {2026},
  month = {oct},
  howpublished = {\url{https://walln.dev/blog/full-duplex-at-home/}},
  note = {Blog post}
}
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for walln/parley

Adapter
(139)
this model