Merge branch 'feature/tts' of https://github.com/FlowiseAI/Flowise into feature/tts
This commit is contained in:
commit
6aabcee1de
|
|
@ -487,15 +487,11 @@ const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, previews, setP
|
||||||
setIsMessageStopping(true)
|
setIsMessageStopping(true)
|
||||||
try {
|
try {
|
||||||
// Stop all TTS streams first
|
// Stop all TTS streams first
|
||||||
|
await handleTTSAbortAll()
|
||||||
stopAllTTS()
|
stopAllTTS()
|
||||||
|
|
||||||
// Abort TTS for any active streams
|
|
||||||
const activeTTSMessages = Object.keys(isTTSLoading).concat(Object.keys(isTTSPlaying))
|
|
||||||
for (const messageId of activeTTSMessages) {
|
|
||||||
await ttsApi.abortTTS({ chatflowId: chatflowid, chatId, chatMessageId: messageId })
|
|
||||||
}
|
|
||||||
|
|
||||||
await chatmessageApi.abortMessage(chatflowid, chatId)
|
await chatmessageApi.abortMessage(chatflowid, chatId)
|
||||||
|
setIsMessageStopping(false)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setIsMessageStopping(false)
|
setIsMessageStopping(false)
|
||||||
enqueueSnackbar({
|
enqueueSnackbar({
|
||||||
|
|
@ -1621,6 +1617,7 @@ const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, previews, setP
|
||||||
setTTSAction(true)
|
setTTSAction(true)
|
||||||
await ttsApi.abortTTS({ chatflowId: chatflowid, chatId, chatMessageId: messageId })
|
await ttsApi.abortTTS({ chatflowId: chatflowid, chatId, chatMessageId: messageId })
|
||||||
cleanupTTSForMessage(messageId)
|
cleanupTTSForMessage(messageId)
|
||||||
|
setIsMessageStopping(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
const stopAllTTS = () => {
|
const stopAllTTS = () => {
|
||||||
|
|
@ -1654,6 +1651,9 @@ const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, previews, setP
|
||||||
}
|
}
|
||||||
|
|
||||||
setTTSAction(true)
|
setTTSAction(true)
|
||||||
|
|
||||||
|
// abort all ongoing streams and clear audio sources
|
||||||
|
await handleTTSAbortAll()
|
||||||
stopAllTTS()
|
stopAllTTS()
|
||||||
|
|
||||||
handleTTSStart({ chatMessageId: messageId, format: 'mp3' })
|
handleTTSStart({ chatMessageId: messageId, format: 'mp3' })
|
||||||
|
|
@ -1798,7 +1798,7 @@ const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, previews, setP
|
||||||
audio.addEventListener('playing', () => {
|
audio.addEventListener('playing', () => {
|
||||||
setIsTTSLoading((prevState) => {
|
setIsTTSLoading((prevState) => {
|
||||||
const newState = { ...prevState }
|
const newState = { ...prevState }
|
||||||
newState[data.chatMessageId] = false
|
delete newState[data.chatMessageId]
|
||||||
return newState
|
return newState
|
||||||
})
|
})
|
||||||
setIsTTSPlaying((prevState) => ({
|
setIsTTSPlaying((prevState) => ({
|
||||||
|
|
@ -1987,6 +1987,13 @@ const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, previews, setP
|
||||||
cleanupTTSForMessage(messageId)
|
cleanupTTSForMessage(messageId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleTTSAbortAll = async () => {
|
||||||
|
const activeTTSMessages = Object.keys(isTTSLoading).concat(Object.keys(isTTSPlaying))
|
||||||
|
for (const messageId of activeTTSMessages) {
|
||||||
|
await ttsApi.abortTTS({ chatflowId: chatflowid, chatId, chatMessageId: messageId })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (ttsStreamingState.sourceBuffer) {
|
if (ttsStreamingState.sourceBuffer) {
|
||||||
const sourceBuffer = ttsStreamingState.sourceBuffer
|
const sourceBuffer = ttsStreamingState.sourceBuffer
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue