This commit is contained in:
Kovid Goyal 2024-09-03 09:23:52 +05:30
parent c4e4661e21
commit 16120d8b39
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 13 additions and 11 deletions

View File

@ -42,7 +42,7 @@ class MainWindow(MainWindow):
marked_text.append(c.position()) marked_text.append(c.position())
if not c.movePosition(QTextCursor.MoveOperation.NextWord, QTextCursor.MoveMode.KeepAnchor): if not c.movePosition(QTextCursor.MoveOperation.NextWord, QTextCursor.MoveMode.KeepAnchor):
break break
marked_text.append(c.selectedText()) marked_text.append(c.selectedText().replace('\u2029', '\n'))
c.setPosition(c.position()) c.setPosition(c.position())
c.setPosition(0) c.setPosition(0)
self.marked_text = marked_text self.marked_text = marked_text

View File

@ -167,16 +167,18 @@ def split_long_sentences(sentence: str, offset: int, lang: str = 'en', limit: in
def split_into_utterances(text: str, counter: count, lang: str = 'en'): def split_into_utterances(text: str, counter: count, lang: str = 'en'):
text = re.sub(r'\n{2,}', PARAGRAPH_SEPARATOR, text.replace('\r', '')).replace('\n', ' ') text = re.sub(r'\n{2,}', PARAGRAPH_SEPARATOR, text.replace('\r', '')).replace('\n', ' ')
for start, length in sentence_positions(text, lang): for start, length in sentence_positions(text, lang):
sentence = text[start:start+length].rstrip().replace('\n', ' ') sentence = text[start:start+length].rstrip().replace('\n', ' ').strip()
for start, sentence in split_long_sentences(sentence, start, lang): if sentence:
payload = json.dumps({'text': sentence}).encode('utf-8') for start, sentence in split_long_sentences(sentence, start, lang):
ba = QByteArray() payload = json.dumps({'text': sentence}).encode('utf-8')
ba.reserve(len(payload) + 1) ba = QByteArray()
ba.append(payload) ba.reserve(len(payload) + 1)
ba.append(UTTERANCE_SEPARATOR) ba.append(payload)
u = Utterance(id=next(counter), payload_size=len(ba), audio_data=QByteArray(), left_to_write=ba, start=start, length=len(sentence)) ba.append(UTTERANCE_SEPARATOR)
debug(f'Utterance created {u.id}: {sentence}') u = Utterance(id=next(counter), payload_size=len(ba), audio_data=QByteArray(),
yield u left_to_write=ba, start=start, length=len(sentence))
debug(f'Utterance created {u.id}: {sentence}')
yield u
class Piper(TTSBackend): class Piper(TTSBackend):