Files
breakpilot-core/pitch-deck/lib/presenter/tts-client.ts
Benjamin Admin 3a2567b44d
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 27s
CI / test-python-voice (push) Successful in 25s
CI / test-bqas (push) Successful in 25s
CI / Deploy (push) Successful in 4s
feat(pitch-deck): add AI Presenter mode with LiteLLM migration and FAQ system
- Migrate chat API from Ollama to LiteLLM (OpenAI-compatible SSE)
- Add 15-min presenter storyline with bilingual scripts for all 20 slides
- Add FAQ system (30 entries) with keyword matching for instant answers
- Add IntroPresenterSlide with avatar placeholder and start button
- Add PresenterOverlay (progress bar, subtitle text, play/pause/stop)
- Add AvatarPlaceholder with pulse animation during speaking
- Add usePresenterMode hook (state machine: idle→presenting→paused→answering→resuming)
- Add 'P' keyboard shortcut to toggle presenter mode
- Support [GOTO:slide-id] markers in chat responses
- Dynamic slide count (was hardcoded 13, now from SLIDE_ORDER)
- TTS stub prepared for future Piper integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 11:45:55 +01:00

21 lines
769 B
TypeScript

import { Language } from '../types'
/**
* TTS Stub — prepared for future Piper TTS integration via compliance-tts-service (:8095)
* POST /synthesize { text, voice: 'de_DE-thorsten-high' }
* Returns audio URL from MinIO
*/
export async function synthesizeSpeech(text: string, lang: Language): Promise<string | null> {
// TODO: Connect to compliance-tts-service
// const voice = lang === 'de' ? 'de_DE-thorsten-high' : 'en_US-lessac-high'
// const res = await fetch('http://compliance-tts-service:8095/synthesize', {
// method: 'POST',
// headers: { 'Content-Type': 'application/json' },
// body: JSON.stringify({ text, voice }),
// })
// if (!res.ok) return null
// const data = await res.json()
// return data.audio_url
return null
}