mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
feat: add KokoroBackend implementing TTSBackend protocol
- Create KokoroBackend class implementing TTSBackend protocol - Move all KPipeline interaction inside KokoroBackend - Update LoadPipelineThread to create backend via create_backend() - Update ConversionThread and VoicePreviewThread to accept backend - Replace np_module/kpipeline_class parameters with single backend - Add 24 unit tests for KokoroBackend - KPipeline is now an internal implementation detail of KokoroBackend
This commit is contained in:
+9
-5
@@ -530,15 +530,19 @@ def prevent_sleep_end():
|
||||
|
||||
|
||||
class LoadPipelineThread(Thread):
|
||||
def __init__(self, callback):
|
||||
def __init__(self, callback, lang_code="a", device="cpu"):
|
||||
super().__init__()
|
||||
self.callback = callback
|
||||
self.lang_code = lang_code
|
||||
self.device = device
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
from abogen.tts_backends.kokoro import load_numpy_kpipeline
|
||||
from abogen.tts_backend_registry import create_backend
|
||||
|
||||
np_module, kpipeline_class = load_numpy_kpipeline()
|
||||
self.callback(np_module, kpipeline_class, None)
|
||||
backend = create_backend(
|
||||
"kokoro", lang_code=self.lang_code, device=self.device
|
||||
)
|
||||
self.callback(backend, None)
|
||||
except Exception as e:
|
||||
self.callback(None, None, str(e))
|
||||
self.callback(None, str(e))
|
||||
|
||||
Reference in New Issue
Block a user