From 5d56f48879aa465f92db34f9268057b31b017623 Mon Sep 17 00:00:00 2001 From: Marco Beretta <81851188+berry-13@users.noreply.github.com> Date: Tue, 15 Apr 2025 04:39:01 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8B=20feat:=20remove=20Edge=20TTS=20(#?= =?UTF-8?q?6885)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: remove Edge TTS * remove the remaining edge code * chore: cleanup * chore: cleanup package-lock --- client/package.json | 1 - client/src/common/types.ts | 1 - client/src/components/Audio/TTS.tsx | 96 +------ client/src/components/Audio/Voices.tsx | 30 +-- .../components/Chat/Messages/MessageAudio.tsx | 3 +- .../Speech/TTS/EngineTTSDropdown.tsx | 6 +- .../SettingsTabs/Speech/TTS/VoiceDropdown.tsx | 7 +- client/src/hooks/Audio/index.ts | 1 - client/src/hooks/Audio/useTTSEdge.ts | 100 ------- client/src/hooks/Input/useTextToSpeech.ts | 17 +- client/src/hooks/Input/useTextToSpeechEdge.ts | 249 ------------------ client/src/locales/en/translation.json | 7 - package-lock.json | 92 ++++--- 13 files changed, 63 insertions(+), 547 deletions(-) delete mode 100644 client/src/hooks/Audio/useTTSEdge.ts delete mode 100644 client/src/hooks/Input/useTextToSpeechEdge.ts diff --git a/client/package.json b/client/package.json index 184e768c5f..db82362a18 100644 --- a/client/package.json +++ b/client/package.json @@ -73,7 +73,6 @@ "lodash": "^4.17.21", "lucide-react": "^0.394.0", "match-sorter": "^6.3.4", - "msedge-tts": "^2.0.0", "qrcode.react": "^4.2.0", "rc-input-number": "^7.4.2", "react": "^18.2.0", diff --git a/client/src/common/types.ts b/client/src/common/types.ts index ce47a4667b..3551436ee8 100644 --- a/client/src/common/types.ts +++ b/client/src/common/types.ts @@ -29,7 +29,6 @@ export enum STTEndpoints { export enum TTSEndpoints { browser = 'browser', - edge = 'edge', external = 'external', } diff --git a/client/src/components/Audio/TTS.tsx b/client/src/components/Audio/TTS.tsx index 14c6346b0f..3ceacb7f8d 100644 --- a/client/src/components/Audio/TTS.tsx +++ b/client/src/components/Audio/TTS.tsx @@ -2,9 +2,8 @@ import { useEffect, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; import type { TMessageAudio } from '~/common'; -import { useLocalize, useTTSBrowser, useTTSEdge, useTTSExternal } from '~/hooks'; -import { VolumeIcon, VolumeMuteIcon, Spinner } from '~/components/svg'; -import { useToastContext } from '~/Providers/ToastContext'; +import { useLocalize, useTTSBrowser, useTTSExternal } from '~/hooks'; +import { VolumeIcon, VolumeMuteIcon, Spinner } from '~/components'; import { logger } from '~/utils'; import store from '~/store'; @@ -85,97 +84,6 @@ export function BrowserTTS({ isLast, index, messageId, content, className }: TMe ); } -export function EdgeTTS({ isLast, index, messageId, content, className }: TMessageAudio) { - const localize = useLocalize(); - const playbackRate = useRecoilValue(store.playbackRate); - const isBrowserSupported = useMemo( - () => typeof MediaSource !== 'undefined' && MediaSource.isTypeSupported('audio/mpeg'), - [], - ); - - const { showToast } = useToastContext(); - const { toggleSpeech, isSpeaking, isLoading, audioRef } = useTTSEdge({ - isLast, - index, - messageId, - content, - }); - - const renderIcon = (size: string) => { - if (isLoading === true) { - return ; - } - - if (isSpeaking === true) { - return ; - } - - return ; - }; - - useEffect(() => { - const messageAudio = document.getElementById(`audio-${messageId}`) as HTMLAudioElement | null; - if (!messageAudio) { - return; - } - if (playbackRate != null && playbackRate > 0 && messageAudio.playbackRate !== playbackRate) { - messageAudio.playbackRate = playbackRate; - } - }, [audioRef, isSpeaking, playbackRate, messageId]); - - logger.log( - 'MessageAudio: audioRef.current?.src, audioRef.current', - audioRef.current?.src, - audioRef.current, - ); - - return ( - <> - - {isBrowserSupported ? ( -