diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-21 23:12:52 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-21 23:12:52 +0300 |
| commit | 3e99f5a75e14455aa75ca3a1dc7d08bd3e6f55fd (patch) | |
| tree | 568bb781c0d71bdea58f5dc7192e6c5edec94c27 /internal/comic/narrator.go | |
| parent | d15846a2784d15c5043833874b6539b727555cb0 (diff) | |
u7: wire documented config knobs into runtime
Diffstat (limited to 'internal/comic/narrator.go')
| -rw-r--r-- | internal/comic/narrator.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/comic/narrator.go b/internal/comic/narrator.go index 24a523b..d5d8867 100644 --- a/internal/comic/narrator.go +++ b/internal/comic/narrator.go @@ -22,6 +22,7 @@ type NarratorConfig struct { VoiceName string Language string Script string + ChunkWords int } // Narrator generates intro, story, and conclusion narration. @@ -33,6 +34,7 @@ type Narrator struct { voiceName string language string script string + chunkWords int initErr error } @@ -53,6 +55,7 @@ func NewNarrator(cfg *NarratorConfig) *Narrator { n.voiceName = cfg.VoiceName n.language = orDefault(cfg.Language, n.language) n.script = orDefault(cfg.Script, n.script) + n.chunkWords = normalizePositive(cfg.ChunkWords, narratorChunkWords) if n.conclusionProvider == nil { n.conclusionProvider = n.mainProvider } @@ -112,7 +115,7 @@ func (n *Narrator) ready() error { } func (n *Narrator) narrateMainStory(ctx context.Context, storyText, tmpDir string) ([]string, error) { - chunks := splitIntoNarrationChunks(storyText, narratorChunkWords) + chunks := splitIntoNarrationChunks(storyText, n.chunkWords) fmt.Printf(" Splitting narration into %d chunks for consistent voice quality...\n", len(chunks)) var paths []string @@ -156,7 +159,7 @@ func (n *Narrator) narrateConclusion(ctx context.Context, storyText, tmpDir stri return "", false } - chunks := splitIntoNarrationChunks(conclusion, narratorChunkWords) + chunks := splitIntoNarrationChunks(conclusion, n.chunkWords) var paths []string for i, chunk := range chunks { path := filepath.Join(tmpDir, fmt.Sprintf("conclusion_%03d.mp3", i+1)) |
