From eb5733083e429adef3c63ea30302859d7c29deff Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Mon, 27 May 2024 12:51:45 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=88=20fix(tts):=20update=20min=20value?= =?UTF-8?q?=20for=20playback=20rate=20(#2880)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🔈 fix: update min value for playback rate in TTS component * fix: prevent playbackRate from being set if less than or equal to 0 --- client/src/components/Chat/Input/StreamAudio.tsx | 1 + client/src/components/Chat/Messages/MessageAudio.tsx | 7 ++++++- .../Nav/SettingsTabs/Speech/TTS/PlaybackRate.tsx | 4 ++-- client/src/hooks/Input/useTextToSpeechExternal.ts | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/client/src/components/Chat/Input/StreamAudio.tsx b/client/src/components/Chat/Input/StreamAudio.tsx index ebf0f4e48e..52df1d6f2f 100644 --- a/client/src/components/Chat/Input/StreamAudio.tsx +++ b/client/src/components/Chat/Input/StreamAudio.tsx @@ -193,6 +193,7 @@ export default function StreamAudio({ index = 0 }) { if ( playbackRate && globalAudioURL && + playbackRate > 0 && audioRef.current && audioRef.current.playbackRate !== playbackRate ) { diff --git a/client/src/components/Chat/Messages/MessageAudio.tsx b/client/src/components/Chat/Messages/MessageAudio.tsx index 3c76790e38..bdefffa6ec 100644 --- a/client/src/components/Chat/Messages/MessageAudio.tsx +++ b/client/src/components/Chat/Messages/MessageAudio.tsx @@ -36,7 +36,12 @@ export default function MessageAudio({ index, message, isLast }: THoverButtons) if (!messageAudio) { return; } - if (playbackRate && messageAudio && messageAudio.playbackRate !== playbackRate) { + if ( + playbackRate && + playbackRate > 0 && + messageAudio && + messageAudio.playbackRate !== playbackRate + ) { messageAudio.playbackRate = playbackRate; } }, [audioRef, isSpeaking, playbackRate, message.messageId]); diff --git a/client/src/components/Nav/SettingsTabs/Speech/TTS/PlaybackRate.tsx b/client/src/components/Nav/SettingsTabs/Speech/TTS/PlaybackRate.tsx index e16bef62f3..489b8dc864 100755 --- a/client/src/components/Nav/SettingsTabs/Speech/TTS/PlaybackRate.tsx +++ b/client/src/components/Nav/SettingsTabs/Speech/TTS/PlaybackRate.tsx @@ -22,7 +22,7 @@ export default function DecibelSelector() { value={[playbackRate ?? 1]} onValueChange={(value) => setPlaybackRate(value[0])} doubleClickHandler={() => setPlaybackRate(null)} - min={-0.1} + min={0.1} max={2} step={0.1} className="ml-4 flex h-4 w-24" @@ -33,7 +33,7 @@ export default function DecibelSelector() { value={playbackRate ?? 1} disabled={!textToSpeech} onChange={(value) => setPlaybackRate(value ? value[0] : 0)} - min={-0.1} + min={0.1} max={2} className={cn( defaultTextProps, diff --git a/client/src/hooks/Input/useTextToSpeechExternal.ts b/client/src/hooks/Input/useTextToSpeechExternal.ts index 2017cb737c..3a413a1505 100644 --- a/client/src/hooks/Input/useTextToSpeechExternal.ts +++ b/client/src/hooks/Input/useTextToSpeechExternal.ts @@ -37,7 +37,7 @@ function useTextToSpeechExternal(messageId: string, isLast: boolean, index = 0) const playAudioPromise = (blobUrl: string) => { const newAudio = new Audio(blobUrl); const initializeAudio = () => { - if (playbackRate && playbackRate !== 1) { + if (playbackRate && playbackRate !== 1 && playbackRate > 0) { newAudio.playbackRate = playbackRate; } };