Mercurial Hosting > lang
diff src/chat.js @ 31:1e7d855afde3
voices
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 03 Aug 2025 17:05:38 -0600 |
parents | 505185272dd7 |
children | d34d709a7a8e |
line wrap: on
line diff
--- a/src/chat.js Sun Aug 03 12:25:01 2025 -0600 +++ b/src/chat.js Sun Aug 03 17:05:38 2025 -0600 @@ -3,13 +3,22 @@ let chat; function setChat(newChat) { + let audioChanged = chat && chat.voice != newChat.voice; chat = newChat; document.querySelector('[content] [name]').textContent = chat.name; + if(audioChanged) { + let s = `voice=${chat.voice}&`; + let audios = document.querySelectorAll('audio[src]'); + for( let audio of audios ) { + audio.src = audio.src.replace(/voice=[^&]+&/,s); + } + } } function editChat(name) { let dialog = document.querySelector('dialog[edit]'); dialog.querySelector('input[name=name]').value = chat.name; + dialog.querySelector('select[name=voice]').value = chat.voice; dialog.showModal(); } @@ -50,7 +59,7 @@ } function handleChatMarkdown() { - handleMarkdown(chat.language_region); + handleMarkdown(chat.language_region,chat.voice); } function scrollToEnd() { @@ -83,7 +92,7 @@ textarea.parentNode.scrollIntoViewIfNeeded(false); if( !audio ) audio = document.querySelector('div[buttons] audio'); - audio.src = `/tts.mp3?lang=${chat.language_region}&text=${encodeURIComponent(textarea.value)}`; + audio.src = `/tts.mp3?lang=${chat.language_region}&voice=${chat.voice}&text=${encodeURIComponent(textarea.value)}`; } function askAi() {