LocalAI [bot]
ce8a3e9266
chore: ⬆️ Update ServeurpersoCom/qwentts.cpp to 4536dcdce27c3764a93a06d6bf64026b124962f5 ( #10431 )
...
⬆️ Update ServeurpersoCom/qwentts.cpp
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com >
2026-06-22 01:00:10 +02:00
LocalAI [bot]
dd928f0bdd
chore: ⬆️ Update ServeurpersoCom/qwentts.cpp to 26fcea5468e4069bc72d1f2fcc812c985e7361bb ( #10409 )
...
⬆️ Update ServeurpersoCom/qwentts.cpp
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com >
2026-06-20 01:36:36 +02:00
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
LocalAI [bot]
96758841d8
chore: ⬆️ Update predict-woo/qwen3-tts.cpp to 136e5d36c17083da0321fd96512dc7b263f94a44 ( #10165 )
...
⬆️ Update predict-woo/qwen3-tts.cpp
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mudler <2420543+mudler@users.noreply.github.com >
2026-06-04 12:06:55 +02:00
Ettore Di Giacinto
7a0e6ae6d2
feat(qwen3tts.cpp): add new backend ( #9316 )
...
Signed-off-by: Ettore Di Giacinto <mudler@localai.io >
2026-04-11 23:14:26 +02:00