LocalAI [bot]
4bb592cf91
feat(qwen3-tts-cpp): migrate to ServeurpersoCom/qwentts.cpp (streaming, speakers, voice design) ( #10316 )
...
* feat(qwen3-tts-cpp): repoint upstream to ServeurpersoCom/qwentts.cpp
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(qwen3-tts-cpp): flatten qt_* ABI into qt3_* purego shim
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(qwen3-tts-cpp): build shim against upstream qwen-core static lib
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(qwen3-tts-cpp): add option/language/voice/sampling parsing
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(qwen3-tts-cpp): add 24kHz WAV encode/decode/stream-header helpers
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(qwen3-tts-cpp): purego backend with streaming, speakers, voice design
Map TTSRequest onto qwentts.cpp: instructions->instruct, voice->named
speaker or clone-reference path, params map->ref_text + sampling. Add
TTSStream over the qt chunk callback.
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* test(qwen3-tts-cpp): unit specs + build-gated TTS/TTSStream e2e
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* fix(qwen3-tts-cpp): close defensive PCM-free gap on zero-sample result
Register CppPCMFree before the n<=0 guard so a non-null buffer with zero
samples cannot leak (the C contract returns NULL on failure, so this is
defensive). Raised in code review.
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(qwen3-tts-cpp): advertise TTSStream capability
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* chore(qwen3-tts-cpp): update backend index metadata for qwentts.cpp
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* feat(gallery): qwentts.cpp models - base/customvoice/voicedesign, Q8_0 & Q4_K_M
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* docs(qwen3-tts-cpp): release note for qwentts.cpp migration
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* test(qwen3-tts-cpp): cover audio_path voice-cloning fallback
Add resolveRequest unit specs (config audio_path used as the clone
reference when Voice is empty; per-request audio Voice overrides it; a
named-speaker Voice does not trigger cloning) plus a real-inference e2e
that clones from audio_path (confirmed ref_spk_emb=yes in the pipeline).
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
* chore(qwen3-tts-cpp): drop the release-note doc
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
---------
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Co-authored-by: Ettore Di Giacinto <mudler@localai.io >
2026-06-13 23:09:59 +02:00
LocalAI [bot]
994063ba9a
feat(qwen3-tts-cpp): normalize request language for flexible matching ( #10174 )
...
The qwen3-tts.cpp backend honored the request `language` field only via exact lowercase two-letter codes in the C++ language_to_id table, silently defaulting to English for anything else (en-US, EN, english, ...).
Add normalizeLanguage() in the Go handler: lowercase + trim, strip the region/locale suffix (en-US, pt_BR, zh-Hans -> en/pt/zh), and resolve common English full names (english -> en). The canonical codes match the existing C++ table, so no C++ change is needed. Covered by a pure-Go Ginkgo spec. Also document the language field and accepted forms under the Qwen3-TTS docs.
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
Co-authored-by: Ettore Di Giacinto <mudler@localai.io >
2026-06-04 17:26:31 +02:00