mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-22 07:10:28 +02:00
refactor(pyqt): use create_pipeline_for_job() in LoadPipelineThread
Replace direct create_pipeline() call with domain function for consistent provider validation and device resolution.
This commit is contained in:
+3
-15
@@ -7,7 +7,7 @@ import base64
|
|||||||
import re
|
import re
|
||||||
from abogen.pyqt.queue_manager_gui import QueueManager
|
from abogen.pyqt.queue_manager_gui import QueueManager
|
||||||
from abogen.pyqt.queued_item import QueuedItem
|
from abogen.pyqt.queued_item import QueuedItem
|
||||||
from abogen.domain.device import select_device as _select_device
|
|
||||||
import abogen.hf_tracker as hf_tracker
|
import abogen.hf_tracker as hf_tracker
|
||||||
import hashlib # Added for cache path generation
|
import hashlib # Added for cache path generation
|
||||||
from PyQt6.QtWidgets import (
|
from PyQt6.QtWidgets import (
|
||||||
@@ -2427,15 +2427,9 @@ class abogen(QWidget):
|
|||||||
self.update_log((gpu_msg, gpu_ok))
|
self.update_log((gpu_msg, gpu_ok))
|
||||||
self.update_log("Loading modules...")
|
self.update_log("Loading modules...")
|
||||||
|
|
||||||
# Determine device based on GPU availability
|
|
||||||
if gpu_ok:
|
|
||||||
device = _select_device()
|
|
||||||
else:
|
|
||||||
device = "cpu"
|
|
||||||
|
|
||||||
lang_code = self.selected_lang or "a"
|
lang_code = self.selected_lang or "a"
|
||||||
load_thread = LoadPipelineThread(
|
load_thread = LoadPipelineThread(
|
||||||
pipeline_loaded_callback, lang_code=lang_code, device=device
|
pipeline_loaded_callback, lang_code=lang_code, use_gpu=gpu_ok
|
||||||
)
|
)
|
||||||
load_thread.start()
|
load_thread.start()
|
||||||
|
|
||||||
@@ -2873,15 +2867,9 @@ class abogen(QWidget):
|
|||||||
)
|
)
|
||||||
self.loading_movie.start()
|
self.loading_movie.start()
|
||||||
|
|
||||||
# Determine device based on GPU availability
|
|
||||||
if self.gpu_ok:
|
|
||||||
device = _select_device()
|
|
||||||
else:
|
|
||||||
device = "cpu"
|
|
||||||
|
|
||||||
lang = self.selected_lang or "a"
|
lang = self.selected_lang or "a"
|
||||||
load_thread = LoadPipelineThread(
|
load_thread = LoadPipelineThread(
|
||||||
self._on_pipeline_loaded_for_preview, lang_code=lang, device=device
|
self._on_pipeline_loaded_for_preview, lang_code=lang, use_gpu=self.gpu_ok
|
||||||
)
|
)
|
||||||
load_thread.start()
|
load_thread.start()
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -530,18 +530,18 @@ def prevent_sleep_end():
|
|||||||
|
|
||||||
|
|
||||||
class LoadPipelineThread(Thread):
|
class LoadPipelineThread(Thread):
|
||||||
def __init__(self, callback, lang_code="a", device="cpu"):
|
def __init__(self, callback, lang_code="a", use_gpu=True):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.lang_code = lang_code
|
self.lang_code = lang_code
|
||||||
self.device = device
|
self.use_gpu = use_gpu
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
from abogen.tts_plugin.utils import create_pipeline
|
from abogen.domain.pipeline_factory import create_pipeline_for_job
|
||||||
|
|
||||||
backend = create_pipeline(
|
backend = create_pipeline_for_job(
|
||||||
"kokoro", lang_code=self.lang_code, device=self.device
|
"kokoro", language=self.lang_code, use_gpu=self.use_gpu
|
||||||
)
|
)
|
||||||
self.callback(backend, None)
|
self.callback(backend, None)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user