Artem Akymenko
|
aec3462f1f
|
refactor: both UIs use shared tts_segments() from domain/conversion_pipeline.py
- domain/conversion_pipeline.py: add tts_segments() for pre-normalized text;
emit_text_segments() now delegates to tts_segments() internally
- pyqt/conversion.py: inner TTS loop replaced with tts_segments() iterator;
removed FakeToken import (handled by domain)
- webui/conversion_runner.py: emit_text() inner loop replaced with
tts_segments() iterator; removed FakeToken import
- Both UIs now share the same TTS emission logic — normalization + backend
invocation + segment iteration + token extraction
- +3 tests for tts_segments (no-normalization, chunk_start, basic)
- 1188 tests pass
|
2026-07-19 11:47:14 +00:00 |
|
Artem Akymenko
|
1193185833
|
refactor: create domain/conversion_pipeline.py with shared TTS emission loop
- domain/conversion_pipeline.py: emit_text_segments() — generator yielding
SegmentResult for each TTS segment; emit_text_to_sinks() — convenience
wrapper handling audio writing + token accumulation + subtitle flushing
- Both WebUI and PyQt can call these instead of reimplementing the TTS loop
- Caller provides backend, voice, speed, split_pattern; domain handles
normalization, TTS invocation, token extraction
- +7 tests (segment yielding, empty audio skip, chunk_start, tokens, fallback)
- 1185 tests pass
|
2026-07-19 10:31:58 +00:00 |
|