diff options
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)) |
