add device selector
This commit is contained in:
+16
-7
@@ -83,13 +83,22 @@ class WhisperTranscriber:
|
|||||||
Объект устройства PyTorch.
|
Объект устройства PyTorch.
|
||||||
"""
|
"""
|
||||||
if torch.cuda.is_available():
|
if torch.cuda.is_available():
|
||||||
# Проверяем, доступна ли GPU с индексом 1
|
# Получаем device_id из конфигурации, по умолчанию 0
|
||||||
if torch.cuda.device_count() > 1:
|
device_id = self.config.get("device_id", 0)
|
||||||
logger.info("Используется CUDA GPU с индексом 1 для вычислений")
|
|
||||||
return torch.device("cuda:1")
|
# Проверяем, что device_id является целым числом
|
||||||
else:
|
if not isinstance(device_id, int):
|
||||||
logger.info("Доступна только одна CUDA GPU, используется GPU с индексом 0")
|
logger.warning(f"device_id должен быть целым числом, получено: {device_id}. Используем значение по умолчанию 0")
|
||||||
return torch.device("cuda:0")
|
device_id = 0
|
||||||
|
|
||||||
|
# Проверяем, доступен ли запрошенный GPU
|
||||||
|
device_count = torch.cuda.device_count()
|
||||||
|
if device_id >= device_count:
|
||||||
|
logger.warning(f"Запрошенный GPU с индексом {device_id} недоступен. Доступно GPU: {device_count}. Используем GPU с индексом 0")
|
||||||
|
device_id = 0
|
||||||
|
|
||||||
|
logger.info(f"Используется CUDA GPU с индексом {device_id} для вычислений")
|
||||||
|
return torch.device(f"cuda:{device_id}")
|
||||||
elif hasattr(torch.backends, "mps") and torch.backends.mps.is_available():
|
elif hasattr(torch.backends, "mps") and torch.backends.mps.is_available():
|
||||||
logger.info("Используется MPS (Apple Silicon) для вычислений")
|
logger.info("Используется MPS (Apple Silicon) для вычислений")
|
||||||
# Обходное решение для MPS
|
# Обходное решение для MPS
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"norm_level": "-0.55",
|
"norm_level": "-0.55",
|
||||||
"compand_params": "0.3,1 -90,-90,-70,-50,-40,-15,0,0 -7 0 0.15",
|
"compand_params": "0.3,1 -90,-90,-70,-50,-40,-15,0,0 -7 0 0.15",
|
||||||
"audio_speed_factor": 1.0,
|
"audio_speed_factor": 1.0,
|
||||||
|
"device_id": 0,
|
||||||
"file_validation": {
|
"file_validation": {
|
||||||
"max_file_size_mb": 500,
|
"max_file_size_mb": 500,
|
||||||
"allowed_extensions": [".wav", ".mp3", ".ogg", ".flac", ".m4a", ".oga"],
|
"allowed_extensions": [".wav", ".mp3", ".ogg", ".flac", ".m4a", ".oga"],
|
||||||
|
|||||||
Reference in New Issue
Block a user