diff --git a/api/routes.py b/api/routes.py index 47d9bad0..58404f4d 100644 --- a/api/routes.py +++ b/api/routes.py @@ -13577,6 +13577,7 @@ def _handle_tts(handler, parsed): "fr-CA-AntoineNeural", "fr-CA-JeanNeural", "fr-CA-SylvieNeural", "fr-CA-ThierryNeural", "fr-FR-DeniseNeural", "fr-FR-EloiseNeural", "fr-FR-HenriNeural", + "id-ID-GadisNeural", } if voice not in allowed: from api.helpers import bad as _bad diff --git a/static/panels.js b/static/panels.js index bd320023..d6b5067c 100644 --- a/static/panels.js +++ b/static/panels.js @@ -7372,6 +7372,7 @@ async function loadSettingsPanel(){ {value:'zh-CN-YunyangNeural',label:'Yunyang (Chinese, Male)'}, {value:'en-US-AriaNeural',label:'Aria (English, Female)'}, {value:'en-US-GuyNeural',label:'Guy (English, Male)'}, + {value:'id-ID-GadisNeural',label:'Gadis (Indonesian, Female)'}, ]; ttsVoiceSel.innerHTML=''; edgeVoices.forEach(v=>{ diff --git a/static/ui.js b/static/ui.js index 5a4f05d0..7346fed8 100644 --- a/static/ui.js +++ b/static/ui.js @@ -6095,6 +6095,8 @@ function _buildBrowserUtterance(text, btn){ } function _playEdgeTtsChunked(text, btn){ + _ttsSpeaking=true; + if(btn) btn.dataset.speaking='1'; const chunks=_splitForTTS(text); const _playOne=function(idx){ if(idx>=chunks.length){