feat: persist voice samples to disk, generate VTT, cleanup after analysis

This commit is contained in:
2026-04-16 19:50:38 +02:00
parent b4026235ab
commit 516ceb5882
13 changed files with 366 additions and 83 deletions

View File

@@ -87,10 +87,15 @@ func main() {
// Speech
transcriber := speech.NewOpenAIWhisper(cfg.Speech.OpenAIKey, cfg.Speech.WhisperModel, cfg.Speech.Language)
converter := speech.NewFFmpegConverter(cfg.Speech.FFmpegPath, "")
voiceFileStore, err := speech.NewLocalVoiceFileStore(cfg.Speech.VoiceStorePath)
if err != nil {
logger.Error("failed to initialise voice file store", "error", err)
os.Exit(1)
}
// Use cases
textUC := usecase.NewHandleTextMessage(intentRouter, dispatcher, sessionStore, gateway, logger)
voiceUC := usecase.NewHandleVoiceMessage(downloader, converter, transcriber, textUC, gateway, logger)
voiceUC := usecase.NewHandleVoiceMessage(downloader, converter, transcriber, voiceFileStore, textUC, gateway, logger)
// Handler + poller
handler := interfaces.NewTelegramHandler(textUC, voiceUC, logger)