Buckets:
| # Python API | |
| ## Load once | |
| ```python | |
| from inference import InflectTTS | |
| tts = InflectTTS(model_dir=".", device="cpu") | |
| ``` | |
| `model_dir` must contain `model.pth`, `config.json`, the public frontend, and | |
| `runtime/`. `device` accepts a PyTorch device string such as `cpu`, `cuda`, or | |
| `cuda:0`. Loading validates the release architecture and raises | |
| `FileNotFoundError` for missing artifacts or `RuntimeError` for an incompatible | |
| checkpoint. | |
| Keep one engine alive for repeated requests. Constructing an engine reloads the | |
| checkpoint and should not happen per utterance. | |
| ## `synthesize` | |
| ```python | |
| sample_rate, waveform = tts.synthesize( | |
| "A compact model can still speak clearly.", | |
| speed=1.0, | |
| variation=0.667, | |
| seed=7, | |
| ) | |
| ``` | |
| Signature: | |
| ```python | |
| synthesize(text, *, speed=1.0, variation=0.667, seed=0) | |
| ``` | |
| Returns `(sample_rate, waveform)`: | |
| - `sample_rate`: integer `24000`, in samples per second. | |
| - `waveform`: one-dimensional, mono `numpy.ndarray` with `float32` samples | |
| clipped to `[-1.0, 1.0]`. | |
| Validation: | |
| - empty or whitespace-only text raises `ValueError`; | |
| - `speed` must be in `0.5–2.0`; | |
| - `variation` must be in `0.0–1.0`; | |
| - `seed` is converted to an integer. | |
| `seed` repeats the same stochastic sample on the same model/runtime stack. | |
| Cross-version or cross-device bit identity is not guaranteed. | |
| ## `save` | |
| ```python | |
| output = tts.save( | |
| "This is written directly to disk.", | |
| "outputs/out.wav", | |
| seed=7, | |
| ) | |
| ``` | |
| `save(text, output, **synthesis_options)` creates parent directories, writes a | |
| mono 24 kHz PCM WAV, and returns the output `Path`. | |
| ## Long text | |
| Long input is normalized, split first at sentence punctuation and then at safe | |
| intra-sentence boundaries. Each chunk is generated independently with | |
| `seed + chunk_index`, edge-faded, and joined with punctuation-dependent silence. | |
| This bounds memory, but it is not one globally planned long-form prosody pass. | |
| ## Concurrency | |
| One `InflectTTS` instance mutates random-number state during synthesis. Serialize | |
| requests to one instance. For concurrent serving, use a worker pool with one | |
| engine per worker/device and enforce an application-level queue. | |
| ## CLI | |
| ```bash | |
| python inference.py \ | |
| --model-dir . \ | |
| --device cpu \ | |
| --text "Inflect is running locally." \ | |
| --output out.wav \ | |
| --speed 1.0 \ | |
| --variation 0.667 \ | |
| --seed 7 | |
| ``` | |
| Run `python inference.py --help` for the authoritative flag list. | |
| ## Deliberate omissions | |
| The v2 API does not expose speaker cloning, streaming state, SSML, native pitch | |
| control, or language switching. Pitch-shifting generated audio is | |
| post-processing and is not part of the model contract. | |
Xet Storage Details
- Size:
- 2.63 kB
- Xet hash:
- 9756c44b9899bbbebadfa478cb781ad48d6aaa770b52703662595e9b84c2dfdf
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.