diff --git a/src/domains/chat/services/chatService.js b/src/domains/chat/services/chatService.js index 4d33f82..cdf9372 100644 --- a/src/domains/chat/services/chatService.js +++ b/src/domains/chat/services/chatService.js @@ -75,8 +75,8 @@ export const messageService = { // 음성 API export const voiceService = { // TTS 변환 - synthesize: async (text, voice = 'FEMALE') => { - return chatApi.post('/chat/voice/synthesize', { text, voice }) + synthesize: async (messageId, roomId, voice = 'FEMALE') => { + return chatApi.post('/chat/voice/synthesize', { messageId, roomId, voice }) }, } diff --git a/src/domains/freetalk/components/ChatRoomModal.jsx b/src/domains/freetalk/components/ChatRoomModal.jsx index e5f6dde..6f74fe3 100644 --- a/src/domains/freetalk/components/ChatRoomModal.jsx +++ b/src/domains/freetalk/components/ChatRoomModal.jsx @@ -176,12 +176,12 @@ const ChatRoomModal = ({ open, onClose, room, onLeave }) => { } // TTS 재생 (모든 메시지에서 가능) - const handlePlayTTS = async (messageId, text) => { + const handlePlayTTS = async (messageId) => { if (playingTTS === messageId) return setPlayingTTS(messageId) try { - const response = await voiceService.synthesize(text, settings.ttsVoice) + const response = await voiceService.synthesize(messageId, room.id, settings.ttsVoice) const responseData = response.data || response if (responseData.audioUrl) { const audio = new Audio(responseData.audioUrl) @@ -376,7 +376,7 @@ const ChatRoomModal = ({ open, onClose, room, onLeave }) => { <> handlePlayTTS(message.id, message.content)} + onClick={() => handlePlayTTS(message.id)} disabled={playingTTS === message.id} sx={{ p: 0.25 }} > @@ -410,7 +410,7 @@ const ChatRoomModal = ({ open, onClose, room, onLeave }) => { handlePlayTTS(message.id, message.content)} + onClick={() => handlePlayTTS(message.id)} disabled={playingTTS === message.id} sx={{ p: 0.25 }} > diff --git a/src/domains/freetalk/pages/ChatRoomPage.jsx b/src/domains/freetalk/pages/ChatRoomPage.jsx index 6a666a6..ce4257e 100644 --- a/src/domains/freetalk/pages/ChatRoomPage.jsx +++ b/src/domains/freetalk/pages/ChatRoomPage.jsx @@ -142,14 +142,15 @@ const ChatRoomPage = () => { } // TTS 재생 - const handlePlayTTS = async (messageId, text) => { + const handlePlayTTS = async (messageId) => { if (playingTTS === messageId) return setPlayingTTS(messageId) try { - const response = await voiceService.synthesize(text) - if (response.audioUrl) { - const audio = new Audio(response.audioUrl) + const response = await voiceService.synthesize(messageId, roomId) + const responseData = response.data || response + if (responseData.audioUrl) { + const audio = new Audio(responseData.audioUrl) audio.onended = () => setPlayingTTS(null) audio.onerror = () => setPlayingTTS(null) await audio.play() @@ -315,7 +316,7 @@ const ChatRoomPage = () => { handlePlayTTS(message.id, message.content)} + onClick={() => handlePlayTTS(message.id)} disabled={playingTTS === message.id} sx={{ p: 0.5 }} >