diff --git a/mnemo_cards_admin/src/api/voiceService.ts b/mnemo_cards_admin/src/api/voiceService.ts index d691f9c..7cc9962 100644 --- a/mnemo_cards_admin/src/api/voiceService.ts +++ b/mnemo_cards_admin/src/api/voiceService.ts @@ -13,13 +13,15 @@ export const voiceServiceApi = { * @param voice Voice identifier (optional, defaults to 'alloy') * @param language Language code (optional) * @param instructions Instructions for speech generation (optional) + * @param model Model identifier (optional) * @returns Object ID and presigned URL */ async generateTTS( text: string, voice?: string, language?: string, - instructions?: string + instructions?: string, + model?: string ): Promise { const response = await adminApiClient.post( '/api/v2/media/generate-tts', @@ -28,6 +30,7 @@ export const voiceServiceApi = { voice: voice || 'alloy', ...(language && { language }), ...(instructions && { instructions }), + ...(model && { model }), } ) diff --git a/mnemo_cards_admin/src/components/CardVoicesManager.tsx b/mnemo_cards_admin/src/components/CardVoicesManager.tsx index ff4cd39..023b43a 100644 --- a/mnemo_cards_admin/src/components/CardVoicesManager.tsx +++ b/mnemo_cards_admin/src/components/CardVoicesManager.tsx @@ -43,6 +43,7 @@ export function CardVoicesManager({ const [dialogVoice, setDialogVoice] = useState('alloy') const [dialogLanguage, setDialogLanguage] = useState('es') const [dialogInstructions, setDialogInstructions] = useState('pronunciar la frase claramente') + const [dialogModel, setDialogModel] = useState('gpt-4o-mini-tts') // Load voices for the card const { data: voicesData, isLoading, refetch } = useQuery({ @@ -124,6 +125,7 @@ export function CardVoicesManager({ setDialogVoice('alloy') setDialogLanguage('es') setDialogInstructions('pronunciar la frase claramente') + setDialogModel('gpt-4o-mini-tts') setShowTTSDialog(true) } @@ -146,12 +148,13 @@ export function CardVoicesManager({ const voice = dialogVoice || 'alloy' const language = dialogLanguage || 'es' const instructions = dialogInstructions || undefined + const model = dialogModel || undefined - console.log('🔄 CardVoicesManager: Requesting TTS generation', { text, voice, language, instructions }) + console.log('🔄 CardVoicesManager: Requesting TTS generation', { text, voice, language, instructions, model }) // Generate TTS via backend API // Backend calls voice-service (which handles caching) and saves to MinIO - const ttsResponse = await voiceServiceApi.generateTTS(text, voice, language, instructions) + const ttsResponse = await voiceServiceApi.generateTTS(text, voice, language, instructions, model) console.log('✅ CardVoicesManager: TTS generated and saved to MinIO', { objectId: ttsResponse.objectId }) @@ -311,16 +314,27 @@ export function CardVoicesManager({ /> -
- -