refactor: voice resolution on ConversionRequest, PipelinePool without job param

- Added speakers field to ConversionRequest
- Rewrote collect_required_voice_ids(), initialize_voice_cache(),
  job_voice_fallback(), chapter_voice_spec(), chunk_voice_spec()
  to accept ConversionRequest instead of job
- PipelinePool.get() now takes request= instead of job=
- Updated all tests to use ConversionRequest interface
- 1493 tests passing
This commit is contained in:
Artem Akymenko
2026-07-26 14:11:55 +03:00
parent 73f42e9563
commit 713abdfd73
6 changed files with 141 additions and 92 deletions
+6 -6
View File
@@ -122,10 +122,10 @@ class TestPipelinePoolRegression:
def test_voice_cache_initialized_only_once(self, mock_cache, mock_create):
mock_create.return_value = MagicMock()
pool = PipelinePool()
job = MagicMock()
request = MagicMock()
pool.get("kokoro", "en", use_gpu=True, job=job)
pool.get("kokoro", "en", use_gpu=True, job=job)
pool.get("kokoro", "en", use_gpu=True, request=request)
pool.get("kokoro", "en", use_gpu=True, request=request)
assert mock_cache.call_count == 1
@patch("abogen.domain.pipeline_factory.create_pipeline_for_job")
@@ -133,13 +133,13 @@ class TestPipelinePoolRegression:
def test_after_dispose_voice_cache_can_reinitialize(self, mock_cache, mock_create):
mock_create.return_value = MagicMock()
pool = PipelinePool()
job = MagicMock()
request = MagicMock()
pool.get("kokoro", "en", use_gpu=True, job=job)
pool.get("kokoro", "en", use_gpu=True, request=request)
assert mock_cache.call_count == 1
pool.dispose_all()
assert pool._voice_cache_initialized is False
pool.get("kokoro", "en", use_gpu=True, job=job)
pool.get("kokoro", "en", use_gpu=True, request=request)
assert mock_cache.call_count == 2