Stop tts on chat change / new recording

This commit is contained in:
Webifi 2023-06-07 12:30:02 -05:00
parent 867c6d7e33
commit 01fe033583
1 changed files with 11 additions and 2 deletions

View File

@ -100,6 +100,7 @@
// clean up
// abort any pending requests.
controller.abort()
ttsStop()
})
onMount(async () => {
@ -460,7 +461,7 @@
focusInput()
}
const tts = (text:string, recorded:boolean) => {
const ttsStart = (text:string, recorded:boolean) => {
// Use TTS to read the response, if query was recorded
if (recorded && 'SpeechSynthesisUtterance' in window) {
const utterance = new SpeechSynthesisUtterance(text)
@ -468,6 +469,13 @@
}
}
const ttsStop = () => {
// Use TTS to read the response, if query was recorded
if ('SpeechSynthesisUtterance' in window) {
window.speechSynthesis.cancel()
}
}
const submitForm = async (recorded: boolean = false, skipInput: boolean = false): Promise<void> => {
// Compose the system prompt message if there are no messages yet - disabled for now
if (updating) return
@ -501,7 +509,7 @@
await response.promiseToFinish()
const message = response.getMessages()[0]
if (message) {
tts(message.content, recorded)
ttsStart(message.content, recorded)
}
focusInput()
}
@ -551,6 +559,7 @@
}
const recordToggle = () => {
ttsStop()
if (updating) return
// Check if already recording - if so, stop - else start
if (recording) {