Enha(tts): split remaining text on sentences; update build tags

This commit is contained in:
Grail Finder
2026-01-11 11:51:46 +03:00
parent 1c818cce86
commit 287ac98715
3 changed files with 17 additions and 14 deletions

View File

@@ -1,5 +1,4 @@
//go:build extra //go:build extra
// +build extra
package main package main

View File

@@ -165,17 +165,18 @@ func (o *KokoroOrator) readroutine() {
} }
} }
} }
// INFO: if there is a lot of text it will take some time to make with tts at once // flush remaining text
// to avoid this pause, it might be better to keep splitting on sentences
// but keepinig in mind that remainder could be ommited by tokenizer
// Flush remaining text
remaining := o.textBuffer.String() remaining := o.textBuffer.String()
remaining = cleanText(remaining) remaining = cleanText(remaining)
o.textBuffer.Reset() o.textBuffer.Reset()
if remaining != "" { if remaining == "" {
o.logger.Debug("calling Speak with remainder", "rem", remaining) continue
if err := o.Speak(remaining); err != nil { }
o.logger.Error("tts failed", "sentence", remaining, "error", err) o.logger.Debug("calling Speak with remainder", "rem", remaining)
sentencesRem := tokenizer.Tokenize(remaining)
for _, rs := range sentencesRem { // to avoid dumping large volume of text
if err := o.Speak(rs.Text); err != nil {
o.logger.Error("tts failed", "sentence", rs, "error", err)
} }
} }
} }
@@ -364,10 +365,14 @@ func (o *GoogleTranslateOrator) readroutine() {
remaining := o.textBuffer.String() remaining := o.textBuffer.String()
remaining = cleanText(remaining) remaining = cleanText(remaining)
o.textBuffer.Reset() o.textBuffer.Reset()
if remaining != "" { if remaining == "" {
o.logger.Debug("calling Speak with remainder", "rem", remaining) continue
if err := o.Speak(remaining); err != nil { }
o.logger.Error("tts failed", "sentence", remaining, "error", err) o.logger.Debug("calling Speak with remainder", "rem", remaining)
sentencesRem := tokenizer.Tokenize(remaining)
for _, rs := range sentencesRem { // to avoid dumping large volume of text
if err := o.Speak(rs.Text); err != nil {
o.logger.Error("tts failed", "sentence", rs.Text, "error", err)
} }
} }
} }

View File

@@ -1,5 +1,4 @@
//go:build !extra //go:build !extra
// +build !extra
package main package main