Implement real transcribe stage

This commit is contained in:
2026-05-03 15:42:44 -05:00
parent 24833194db
commit 2438a0b7a5
7 changed files with 660 additions and 26 deletions

View File

@@ -10,7 +10,6 @@ import (
"gitea.maximumdirect.net/eric/narratio/internal/adapters/notify"
"gitea.maximumdirect.net/eric/narratio/internal/adapters/seriatim"
"gitea.maximumdirect.net/eric/narratio/internal/adapters/storage"
"gitea.maximumdirect.net/eric/narratio/internal/adapters/whisperx"
"gitea.maximumdirect.net/eric/narratio/internal/artifacts"
"gitea.maximumdirect.net/eric/narratio/internal/manifest"
)
@@ -54,24 +53,6 @@ func (s placeholderStage) Run(ctx context.Context, env *Env, m *manifest.Manifes
paths := env.ArtifactStore.SessionPaths(sessionID)
switch s.name {
case "transcribe":
if env.WhisperX != nil {
req := whisperx.TranscribeRequest{
SpeakerID: "placeholder-speaker",
AudioPath: filepath.Join(paths.AudioDir, "placeholder-speaker.flac"),
OutputRawTranscriptPath: filepath.Join(paths.TranscriptsRawDir, "placeholder-speaker.json"),
}
resp, err := env.WhisperX.Transcribe(ctx, req)
if err != nil {
return nil, fmt.Errorf("placeholder transcribe adapter call failed: %w", err)
}
result.Outputs = append(result.Outputs, artifacts.Ref{
Kind: "transcript_raw",
Category: "transcripts",
SessionID: sessionID,
AbsolutePath: resp.OutputRawTranscriptPath,
})
}
case "merge":
if env.Seriatim != nil {
req := seriatim.MergeRequest{
@@ -164,7 +145,7 @@ func (s placeholderStage) Run(ctx context.Context, env *Env, m *manifest.Manifes
func All() []Stage {
return []Stage{
prepareStage{},
placeholderStage{name: "transcribe"},
transcribeStage{},
placeholderStage{name: "normalize"},
placeholderStage{name: "merge"},
placeholderStage{name: "polish"},