any-tts 0.1.1

A Rust TTS library with Candle backends and runtime adapters for modern open TTS models
Documentation
# Contributing

Thanks for contributing to any-tts.

This repository is a model-integration project as much as it is a Rust library. Good contributions keep the public API honest, keep backend behavior explicit, and avoid documenting features that only exist upstream but not in this crate yet.

## Before you open a pull request

- Keep the scope focused. Do not mix a model change, formatting sweep, and unrelated refactor in one PR.
- Update docs when you change the public surface, supported models, flags, or examples.
- If a backend does not support something yet, return an explicit error instead of silently ignoring it.
- Keep examples aligned with exported API. If an example only exercises in-tree experimental code, label it that way.

## Local workflow

Use targeted checks first:

```bash
cargo test
cargo test --test test_traits
cargo run --example generate_kokoro --release
```

Ignored integration tests usually require local model weights. Run those only when you have the assets available and want to validate end-to-end behavior.

## Coding expectations

- Match the existing builder-style configuration API.
- Preserve feature gates and avoid enabling heavyweight dependencies by accident.
- Prefer small, explicit errors over fallback magic.
- Keep unsupported model capabilities explicit in both code and docs.
- Avoid unrelated churn in generated audio paths unless the change requires it.

## Model additions

When adding a new model or variant, include all of the following in the same PR when possible:

- The loader and runtime implementation.
- File-resolution rules in `TtsConfig` and `ModelFiles`, if needed.
- At least one example or smoke test path.
- README updates covering status, pros and cons, and license notes.

## Pull request checklist

- Explain the user-visible change.
- List the feature flags or platforms you tested.
- Mention whether model assets were required to validate the change.
- Call out any upstream capability that is still intentionally unsupported in this crate.

## Security issues

Do not file public issues for vulnerabilities. Use the process in [SECURITY.md](SECURITY.md).