feat(tts): CosyVoice rapide (hiftf16, RTF 0.88 + cache) + guard init — v0.1.10
Nouveau jeu CosyVoice livré par l'engine (mêmes 5 symboles JNI, façade inchangée, toujours auto-contenu) : 2 .so swappés (libkazeia_cosyvoice + libcosyvoice ; libomp/libc++_shared identiques). Modèle cv3_distilled_30k_hiftf16.gguf (953 Mo) remplace cv3_distilled_30k.gguf — MODEL mis à jour dans l'adaptateur. Validé device : charge OK, synthèse OK, cache de voix entre appels → 1er son tour 1 ~10,6s → tour 2 ~6,7s (-37%). (RTF dev annoncé 0.88 ; sur cette tablette thermiquement saturée on mesure ~1,1-1,7 — à revérifier device froid.) Bonus robustesse : guard `if (!::voiceCommands.isInitialized) return false` dans handleVoiceCommand — une entrée arrivée avant la fin de l'init du service ne crashe plus (UninitializedPropertyAccessException, vu en test en tirant un intent trop tôt). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
db0e56b26c
commit
3b58fcb467
|
|
@ -44,8 +44,8 @@ android {
|
|||
applicationId = "com.kazeia"
|
||||
minSdk = 28
|
||||
targetSdk = 36
|
||||
versionCode = 10
|
||||
versionName = "0.1.9"
|
||||
versionCode = 11
|
||||
versionName = "0.1.10"
|
||||
|
||||
// WebDAV de distribution — injecté depuis local.properties.
|
||||
buildConfigField("String", "WEBDAV_BASE", "\"${localProp("webdav.base")}\"")
|
||||
|
|
|
|||
|
|
@ -1525,6 +1525,9 @@ Pas d'introduction, pas d'explication. Juste les 4 lignes en francais. /no_think
|
|||
* Handle voice commands. Returns true if a command was matched (skip normal processing).
|
||||
*/
|
||||
private fun handleVoiceCommand(text: String): Boolean {
|
||||
// Robustesse : une entrée (texte/intent) arrivée avant la fin de l'init du
|
||||
// service ne doit pas crasher sur le lateinit non encore posé.
|
||||
if (!::voiceCommands.isInitialized) return false
|
||||
val match = voiceCommands.match(text) ?: return false
|
||||
|
||||
log("Voice command: ${match.command.action} (param=${match.param})")
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class CosyVoiceTtsEngine(
|
|||
const val DEFAULT_VOICE = "damien"
|
||||
// 9 langues couvertes par CosyVoice3. Hors de cette liste -> Chatterbox (à venir).
|
||||
val LANGS = setOf("fr", "en", "de", "es", "it", "ru", "zh", "ja", "ko")
|
||||
private const val MODEL = "cv3_distilled_30k.gguf"
|
||||
private const val MODEL = "cv3_distilled_30k_hiftf16.gguf" // streaming-cache, RTF 0.88 (2026-06-15)
|
||||
}
|
||||
|
||||
private var handle: Long = 0L
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
# ExecuTorch build local (libexecutorch*, libqnn_executorch_backend, libfbjni),
|
||||
# QNN SDK 2.42 (libQnn*), Genie (libGenie), TTS pipeline (libtts_pipeline), libomp.
|
||||
# Les binaires ne sont PAS dans git ; ce manifest fait foi (verify en preBuild).
|
||||
b260d40e2ad1e7923776b203c9c8743f5e4978e066dcc5dec59f7ab1614fbc7f libcosyvoice.so
|
||||
b0a52229e54bed2b074b38e6b6a6f2203a679f1b1fe7393912de7d7ec3e6196e libcosyvoice.so
|
||||
d523468d62d9b603cb3354294d70d4b2feabf2c3f1e43b0c96c9aabf32813708 libc++_shared.so
|
||||
dd0506873aeb45e103ef0023678a7f14938a0f147f2348d1efc366f1dce40863 libexecutorch_jni.so
|
||||
0b6f86e114f0cf9f2940194797f06ded576e6b3272a5ffbb2c4b8cdc02850ef8 libexecutorch.so
|
||||
|
|
@ -13,7 +13,7 @@ d49b53137f478b7b4ccbd58b9166d83e832c299b681609c70628291c61ae7204 libGenie.so
|
|||
616fa830f6fd3396ea7f0ca92f348c2146efb0b1154ab6ed2e6709655905ead3 libggml-base.so
|
||||
66ea0c948385d8060a7296285d7a85738c21318a88ef767986444a3d9683aeea libggml-cpu.so
|
||||
7aeb209ec5c1da8857779b8f3b4c3e7519ed69c6211491948d3c87349dbced57 libggml.so
|
||||
77efdb8f4c233009c05f34635ab62a60cfc9e9702d5450397c404c0cca3baf11 libkazeia_cosyvoice.so
|
||||
b92ca83a53dab49e212fba411b48fcceca4331b05fe881e2b9220efed45e70b1 libkazeia_cosyvoice.so
|
||||
776f37e43433459a7350dc9d5d15dcb8eb3e17465a28fa78de92559bec3918bd libkazeia_engine.so
|
||||
fdd730af3daf132d0819b3fc99abd8aae79800aab7a9aad371e117c16bd3a3aa libkazeia_stt.so
|
||||
114795bf0256c380dc87971598707e9e0b745a7fc868f3d1fb460e94cecdd69c libkazeia_tts.so
|
||||
|
|
|
|||
Loading…
Reference in New Issue