Files
spark-pocket-tts/CONTRIBUTING.md
T

61 lines
1.6 KiB
Markdown

# Contributing to Kyutai Pocket TTS
We welcome contributions from the community!
We recommend using `uv` to work on this project. While you can use `pip` too, `uv` is less error-prone and faster.
The instructions below assume you are using `uv`.
## Installing the pre-commit
```bash
uvx pre-commit install
```
This will handle file formatting and linting.
If you want to manually run the pre-commit hooks on all files, use:
```bash
uvx pre-commit run --all-files
```
## Running tests
```bash
uv run pytest -n 3 -v
```
This will run the test suite with 3 parallel workers.
## Running the CLI locally
You can run the CLI commands with:
```bash
uv run pocket-tts generate
```
## Coding agents
We use `AGENTS.md` to manage the coding agents context. If your coding agent does
not supports reading from this file directly, you can just
use a symlink. The most common ones are already added in the `.gitignore` file.
```bash
ln -s AGENTS.md CLAUDE.md
# or
ln -s AGENTS.md QWEN.md
```
## How does this model work?
Here is a high-level overview of the architecture:
![Architecture Diagram](./docs/model_arch.png)
Overall the model has four main components:
* The mimi vae encoder, to encode the audio prompts into a latent representation.
* The text "encoder" which is just a simple tokenizer + embedding layer.
* The calm model (`flow_lm` in the codebase) to generate autoregegressive the audio latents.
* The mimi vae decoder to decode the audio latents into waveform.
Note that two threads run in parallel in the current implementation:
* One with the calm model generating the latents.
* One with the mimi vae decoder decoding the latents into audio.