hibiki
App Listed Dormant
Hibiki is a model for streaming speech translation (also known as simultaneous translation).
- Downloads
- 0
- Dependents
- Not applicable
- Stars
- 1,537
- Forks
- 118
- Contributors
- 3
- Commits
- 33
- Latest release
- 0.1.2 ·
About
Hibiki: High-Fidelity Simultaneous Speech-To-Speech Translation
[Read the paper] [Samples] [HuggingFace]
Description
What is Hibiki?
Hibiki is a model for streaming speech translation (also known as simultaneous translation). Unlike offline translation—where one waits for the end of the source utterance to start translating--- Hibiki adapts its flow to accumulate just enough context to produce a correct translation in real-time, chunk by chunk. As the user speaks, Hibiki generates natural speech in the target language, optionally with voice transfer, along with a text translation.
Architecture
Hibiki is a decoder-only model for simultaneous speech translation. Hibiki leverages the multistream architecture of Moshi to model source and target speech jointly. This allows Hibiki to continuously process the input stream while generating the target speech. Hibiki produces text and audio tokens at a constant framerate of 12.5Hz. This allows for a continuous output audio stream, along with timestamped text translation.

Read the full README
How is it trained?
Hibiki relies on supervised training of aligned source speech and target speech and text, from the same speaker. Such data does not exist in significant amounts so we rely on synthetic data generation. Word-level matching is made between source and target transcripts using a contextual alignment weakly-supervised method that leverages an off-the-shelf MADLAD machine translation system. The derived alignment rule (a word should only appear in the target once it's predictable from the source) is applied either by inserting silences or by synthesizing targets with a voice controlled, alignment-aware TTS.

Inference
At inference, Hibiki continuously encodes source speech and produces target speech. Hibiki relies on simple temperature sampling and is thus compatible with batching unlike models that rely on complex inference policies. Moreover, the fidelity of Hibiki's voice transfer can be controlled by changing the coefficient of the Classifier-Free Guidance: a larger coefficient will increase voice similarity, but excessive coefficients can lead to worse translations. Hibiki currently only supports French-to-English translation. Its smaller alternative, Hibiki-M can run locally on smartphone hardware. Current models were trained on sequences up to 120 seconds and use a context size of 40 seconds.
Running the model
We provide inference code for PyTorch, Rust, MLX for macOS, and MLX-swift for iOS. Note that the implementation for Hibiki is very close to that of Moshi, and the actual code is in the kyutai-labs/moshi repository.
PyTorch
In order to translate an audio file using Hibiki/PyTorch, install the
moshi package via.
pip install -U moshi
Then you can retrieve some sample files from kyutai-labs/moshi and translate them via the following:
wget https://github.com/kyutai-labs/moshi/raw/refs/heads/main/data/sample_fr_hibiki_crepes.mp3
python -m moshi.run_inference sample_fr_hibiki_crepes.mp3 out_en.wav --hf-repo kyutai/hibiki-1b-pytorch-bf16
You can specify some classifier-free guidance using the --cfg-coef parameter.
The default value is 1, the higher the value, the closer the generated voice
should be to the original voice. A typical value to use is 3.
MLX
In order to translate an audio file using Hibiki/MLX, install the
moshi_mlx package via the following command. You need at least version 0.2.1
of this package.
pip install -U moshi_mlx
Then you can retrieve some sample files from kyutai-labs/moshi and translate them via the following:
wget https://github.com/kyutai-labs/moshi/raw/refs/heads/main/data/sample_fr_hibiki_crepes.mp3
python -m moshi_mlx.run_inference sample_fr_hibiki_crepes.mp3 out_en.wav --hf-repo kyutai/hibiki-1b-mlx-bf16
You can specify some classifier-free guidance using the --cfg-coef parameter.
The default value is 1, the higher the value, the closer the generated voice
should be to the original voice. A typical value to use is 3.
You can also use the model in real-time via the web-ui by running the following command.
python -m moshi_mlx.local_web --hf-repo kyutai/hibiki-1b-mlx-bf16
MLX-Swift
The kyutai-labs/moshi-swift repo contains a MLX-Swift implementation that can run on an iPhone. This was tested on an iPhone 16 Pro. Note that this code there is very much experimental.
Rust
The hibiki-rs
directory contains a simple Rust app that generates a translation based on an
original audio file. You can use either --features cuda to run on a nvidia gpu, or
--features metal to run on a mac.
cd hibiki-rs
wget https://github.com/kyutai-labs/moshi/raw/refs/heads/main/data/sample_fr_hibiki_crepes.mp3
cargo run --features metal -r -- gen sample_fr_hibiki_crepes.mp3 out_en.wav
Models
We release two models for FR -> EN translation:
- Hibiki 2B (for the backbone, a bit more with the depth transformer), 16 RVQ per stream.
- Hibiki 1B (for the backbone, a bit more with the depth transformer), 8 RVQ per stream, ideal for on device inferencde.
Depending on the backend, the file format will vary. Quantized models coming up soon. Current list of models:
- Hibiki 2B for PyTorch (bf16): kyutai/hibiki-2b-pytorch-bf16
- Hibiki 1B for PyTorch (bf16): kyutai/hibiki-1b-pytorch-bf16
- Hibiki 2B for MLX (bf16): kyutai/hibiki-2b-mlx-bf16
- Hibiki 1B for MLX (bf16): kyutai/hibiki-1b-mlx-bf16
All models are released under the CC-BY 4.0 license.
License
The present code is provided under the MIT license for the Python parts, and Apache license for the Rust backend. The web client code is provided under the MIT license.
The weights for the models are released under the CC-BY 4.0 license.
Citation
If you use Hibiki, please cite the following paper,
@misc{kyutai2025hibiki,
title={High-Fidelity Simultaneous Speech-To-Speech Translation},
author={Tom Labiausse and Laurent Mazar\'e and Edouard Grave and
Patrick P\'erez and Alexandre D\'efossez and Neil Zeghidour},
year={2025},
eprint={2502.03382},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2502.03382},
}
Compatibility
- Runs on
- CUDA, Metal
What shows it
- CUDA: hibiki feature cuda
- Metal: hibiki feature metal
- Native code
- Required
- Binds native code: sentencepiece-sys
- Python bindings
- No Python binding crate found
- License
- Apache-2.0 OR MIT
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
Hibiki is a model for streaming speech translation (also known as simultaneous translation). |
0 downloads over 30 days | Not applicable | 1,537 | 0.1.2 | CUDA, Metal | Binds native code: sentencepiece-sys | Apache-2.0 OR MIT |
|
sherpa-onnx Featured
Safe Rust wrapper for sherpa-onnx speech recognition toolkit |
259,599 downloads over 30 days | 28 | 15,834 | 2.0.1 | GPU support unknown | Binds native code: sherpa-onnx, sherpa-onnx-sys | Apache-2.0 |
|
jpreprocess Listed
Japanese text preprocessor for Text-to-Speech application (OpenJTalk rewrite in rust language). |
14,491 downloads over 30 days | 7 | 61 | 0.15.0 | GPU support unknown | No native code found | BSD-3-Clause |
|
silero Listed
Production-oriented Rust wrapper for the Silero VAD ONNX model. |
1,888 downloads over 30 days | 3 | 6 | 0.7.0 | CUDA, ROCm | Binds native code: ort-sys (feature coreml) | Apache-2.0 OR MIT |
|
A simple text-to-speech client for Azure TTS API. Python bindings |
488 binary downloads per release | Not applicable | 496 | 6.1.0 | GPU support unknown | No native code found | MIT |
|
cohere-transcribe-rs Listed
Rust implementation for the CohereLabs/cohere-transcribe-03-2026 speech-to-text model. Includes a CLI and an OpenAI-compatible API server. |
0 downloads over 30 days | 0 | 101 | 0.1.1 | CUDA | Binds native code: torch-sys (feature tch-backend). Build uses a native toolchain: cmake | Apache-2.0 |
|
voxr New
Audio and speech on boostr: compressed-audio decode, resampling, DSP and grapheme to phoneme, with speech synthesis (Kokoro, VITS), voice cloning (VoxCPM2), transcription with word timings (Whisper), voice activity (Silero) and audio-text scoring (CLAP), on CPU or CUDA. |
642 downloads over 30 days | 2 | 2 | 0.9.1 | CUDA | No native code found | Apache-2.0 |
Why ListedNo archive, New or Featured rule places it, so it is Listed.
What it lacks for Featured
- The project is dormant and not finished. Dormancy rule
What else the check found
- The last activity is on 15 Apr 2025, 573 days ago. That reaches the 365 days the rules expect, so the project is dormant. Dormancy rule
- The oldest outside issue waits 639 days for a reply, past the limit of 270. No maintainer replied in 365 days. Rot signals rule
Not measured: Unpatched vulnerabilities past the grace window.
Exact rules: Listed, Featured app. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: app: E = 365 daysdormancy: last activity 2025-04-15, 573 days ago, E = 365: dormantrot: oldest unanswered issue 639 days (limit 270), no maintainer reply in 365 daysfeatured: not featured: dormant and not stablelisted: listed: no archive, new or featured rule applies
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources6 sources
- Description: the GitHub repository description
- crates.io database dump, fetched
- GitHub repository, fetched
- crates.io package, fetched
- GitHub releases, fetched
- GitHub contributors, fetched
AdoptionNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | Not measured | Yes | ||
| New dependents (365 days) | Not measured | Yes | ||
| Peak active dependents | Not measured | Yes | ||
| Active dependents as a share of the peak | Not measured | Yes | ||
| Binary downloads per release | Not measured | Yes |
MaintenanceLatest human commit: 19 months ago4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2025-04-15 | GitHub repository | Yes | |
| Latest release | 2025-02-09 | crates.io database dump | Yes | |
| First release | 2025-02-06 | crates.io database dump | Yes | |
| Latest version | 0.1.2 | crates.io database dump | No | |
| Days the oldest outside issue waits for a reply | 639 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 0 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | No | |
| Published docs | Not measured | Yes | ||
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | Not measured | Yes | ||
| RustSec unmaintained advisory | Not measured | Yes | ||
| Deprecation notice | Not measured | Yes | ||
| Deprecated requirement | Not measured | Yes |
Distribution3 releases, 0 downloads over 30 days6 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 3 | crates.io database dump | No | |
| Downloads over 30 days | 0 | crates.io database dump | No | |
| Binary downloads over the last 3 releases | 0 | GitHub releases | Yes | |
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | Not measured | Yes | ||
| Crate deleted from crates.io | Not measured | Yes |
Repository1,537 stars, 118 forks, 3 contributors, 33 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 1537 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 118 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 3 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 33 | GitHub repository | No | |
| Repository's main crate left out of the entry | none | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | Apache-2.0 OR MIT | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | CUDA, Metal | crates.io database dump | No | |
| What shows each backend | CUDA: hibiki feature cuda; Metal: hibiki feature metal | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | Binds native code: sentencepiece-sys | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | No Python binding crate found | crates.io database dump | No | |
| Crates that depend on a listed crate directly | Not measured | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.