Commit Graph
22 Commits
Author SHA1 Message Date
Gabriel de Marmiesse 7db278ee57 Add default voice for each language (#180)
Fix https://github.com/kyutai-labs/pocket-tts/issues/166
2026-05-04 15:35:22 +02:00
Gabriel de Marmiesse 13542b4f9d Fix support for devices that are not cpu (#165)
Fixes https://github.com/kyutai-labs/pocket-tts/issues/164
2026-04-22 19:18:48 +02:00
Gabriel de Marmiesse 5304da453b Add the demo (#163) 2026-04-20 15:55:33 +02:00
Gabriel de Marmiesse c90fc8ced6 Add french, italian, portuguese, spanish, german (#155)
The french 6 layers variant wasn't included because it's not good enough
yet. Use the `french_24l` variant for now.
2026-04-17 17:52:16 +02:00
John Costa ef69ab8652 Split long sentences on commas to prevent skipped words (#143)
## Summary

When a single sentence exceeds `max_tokens` (50) and has no
sentence-ending punctuation (`.`, `!`, `?`), the text splitting logic
now falls back to splitting on commas, semicolons, and colons. This
prevents the model from silently skipping parts of long sentences.

Fixes #38
2026-03-24 11:50:44 +01:00
nabil-tazi 670e777260 Add int8 dynamic quantization support (#147)
# Add int8 dynamic quantization
 
Closes #7
 
## Summary
 
This PR implements mixed-precision int8 dynamic quantization for
pocket-tts, as requested in issue #7. It adds a `quantize=True` flag to
`TTSModel.load_model()` that reduces runtime memory usage by ~48% and
improves inference speed by ~27% on x86 and up to 23% on ARM, with no
measurable impact on audio quality.
2026-03-24 11:29:14 +01:00
darknight054 33a93718f6 Changed the implementation to fuse the transformers (#85) 2026-02-20 14:45:34 +01:00
Gabriel de Marmiesse 8443de8e06 Add functions to export and import the model state for a given voice (#129) 2026-02-16 15:37:00 +01:00
Sachin Sankar 4ae9fb2590 Automated Docs Site (#101) 2026-02-12 14:01:42 +01:00
darknight054 a47c7e4ba9 Reduce KV cache memory (#51)
Hi! This PR tackles the memory issues discussed in [Reduce Memory
Usage](https://github.com/kyutai-labs/pocket-tts/issues/14) by removing
the "always allocate 1000 steps" KV-cache behavior.
2026-02-03 12:32:46 +01:00
Václav Volhejn 28b8244428 Improve consistency in variant -> config rename (#87)
Small follow-up on #59
2026-01-27 08:55:34 +00:00
teddybear082 2b51649a65 Basic changes to allow loading of local model files (#59)
-modify main,py to not hardcode using DEFAULT_VARIANT

-allow submission of path string to path of variant.yaml file saved in
custom directory in lieu of model variant identifier in CLI to use when
loading model

-addresses #57
2026-01-27 09:42:35 +01:00
Václav Volhejn 77cc74a443 Clarifications regarding voices + fix missing @classmethod (#86) 2026-01-26 12:46:44 +01:00
thataboyandVáclav Volhejn edec7f8790 Add .safetensors save/load to get_state_for_audio_prompt (#69)
Quality of life improvement to save user voice embedding as a
.safetensors file that can be loaded for subsequent use, achieving the
same efficiency as the predefined voices, all via the existing
get_state_for_audio_prompt function.

---------

Co-authored-by: Václav Volhejn <8401624+vvolhejn@users.noreply.github.com>
2026-01-26 10:36:27 +01:00
Saleem DjimaandVáclav Volhejn 4ec89acf95 Feat/add chunk size control arg (#56)
This pull request addresses issue #38 

**Changes included:**

- Added a `max_tokens` parameter to the typer cli for the `generate`
command, allowing user to set a default number of tokens per chunk.
- Introduced a default variable `MAX_TOKEN_PER_CHUNK` to centralize the
default value.
- Fixed a tokenization issue by inserting a comma, allowing the model to
correctly read each chunk as intended rather than treating one chunk as
a single sentence.

**Future improvement suggestion :**

- Consider enhancing the `split_into_best_sentences` function using
regex to split text more accurately without modifying it, which would
improve clarity and maintainability.

---------

Co-authored-by: Václav Volhejn <8401624+vvolhejn@users.noreply.github.com>
2026-01-21 11:54:53 +01:00
BatteryShark 36f21a0a7f fix: respect frames_after_eos parameter in generate_audio_stream() (#58)
The `frames_after_eos` parameter in `generate_audio_stream()` and
`generate_audio()` was accepted but never used - the code always used
the auto-calculated guess.

**Before:** User passes `frames_after_eos=0` → ignored, uses guess (3+
frames of silence)
**After:** User passes `frames_after_eos=0` → respected, minimal
trailing silence

Default behavior preserved when `frames_after_eos=None`.

I *think* this is the intention of that argument.
2026-01-21 11:31:25 +01:00
Arihant Tripathy 8cadf71b0f Slice the kvcache when getting the model state for a given voice (#32)
Related to #14
2026-01-17 15:55:57 +01:00
Gabriel de Marmiesse 222714c495 Fix memory leak by using no_grad in all threads (#16)
`torch.no_grad` is thread local, I now run the autoregressive generation
in a separate thread, in addition of the thread running mimi, and forgot
to add `torch.no_grad` to the function inside this thread.
2026-01-13 18:07:02 +01:00
Gabriel de Marmiesse 366aa68c23 Change voices available without voice cloning (#12) 2026-01-13 11:06:23 +01:00
Gabriel de Marmiesse 2ba3b64f52 Allow and handle infinitely long text inputs (#11)
Fix #5
2026-01-12 17:16:24 +01:00
Gabriel de Marmiesse becd3137a1 Use the new checkpoints structure (#10) 2026-01-12 12:56:13 +01:00
gabrieldemarmiesse f5fa328a58 Copy the files in the new repo for public release 2026-01-12 11:25:16 +01:00