diff --git a/kazeia-android/app/build.gradle.kts b/kazeia-android/app/build.gradle.kts index b7791e6..2fe5e08 100644 --- a/kazeia-android/app/build.gradle.kts +++ b/kazeia-android/app/build.gradle.kts @@ -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")}\"") diff --git a/kazeia-android/app/src/main/java/com/kazeia/service/KazeiaService.kt b/kazeia-android/app/src/main/java/com/kazeia/service/KazeiaService.kt index ca87a6a..4ffca83 100644 --- a/kazeia-android/app/src/main/java/com/kazeia/service/KazeiaService.kt +++ b/kazeia-android/app/src/main/java/com/kazeia/service/KazeiaService.kt @@ -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})") diff --git a/kazeia-android/app/src/main/java/com/kazeia/tts/CosyVoiceTtsEngine.kt b/kazeia-android/app/src/main/java/com/kazeia/tts/CosyVoiceTtsEngine.kt index 40183d7..b95d11e 100644 --- a/kazeia-android/app/src/main/java/com/kazeia/tts/CosyVoiceTtsEngine.kt +++ b/kazeia-android/app/src/main/java/com/kazeia/tts/CosyVoiceTtsEngine.kt @@ -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 diff --git a/kazeia-android/scripts/jnilibs.MANIFEST.sha256 b/kazeia-android/scripts/jnilibs.MANIFEST.sha256 index fa79cd2..f8d3363 100644 --- a/kazeia-android/scripts/jnilibs.MANIFEST.sha256 +++ b/kazeia-android/scripts/jnilibs.MANIFEST.sha256 @@ -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