diff --git a/app/src/main/java/dev/kaizen/app/chat/ChatScreen.kt b/app/src/main/java/dev/kaizen/app/chat/ChatScreen.kt index 5325b0d..dd33555 100644 --- a/app/src/main/java/dev/kaizen/app/chat/ChatScreen.kt +++ b/app/src/main/java/dev/kaizen/app/chat/ChatScreen.kt @@ -126,6 +126,7 @@ fun ChatScreen( // TTS playback state var playingTtsForId by remember { mutableStateOf(null) } val ttsPlayerRef = remember { mutableStateOf(null) } + var ttsVoice by remember { mutableStateOf("Kore") } // Navigation State var currentScreen by remember { mutableStateOf(AppScreen.Chat) } @@ -261,7 +262,7 @@ fun ChatScreen( } ttsPlayerRef.value?.release() playingTtsForId = messageId - val voice = "Kore" + val voice = ttsVoice scope.launch { val cached = chat.messageDao.getTtsUrl(wireId, voice) if (cached != null) { @@ -297,6 +298,7 @@ fun ChatScreen( KaizenApi.fetchMe(cfg.baseUrl, cfg.token)?.let { me -> me.name?.let { settingsViewModel.updateUserName(it) } me.email?.let { settingsViewModel.updateUserEmail(it) } + me.ttsVoice?.let { ttsVoice = it } } chat.conversationRepo.refresh(cfg.baseUrl, cfg.token) if (errors.isNotEmpty()) { diff --git a/app/src/main/java/dev/kaizen/app/net/KaizenApi.kt b/app/src/main/java/dev/kaizen/app/net/KaizenApi.kt index 587c3f0..91b5ac8 100644 --- a/app/src/main/java/dev/kaizen/app/net/KaizenApi.kt +++ b/app/src/main/java/dev/kaizen/app/net/KaizenApi.kt @@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit val name: String? = null, val email: String? = null, val defaultModel: String? = null, + val ttsVoice: String? = null, ) @Serializable data class WireMessage(val role: String, val content: String) @Serializable private data class ChatRequest(