voice-changer/server/voice_changer/DiffusionSVC/pipeline/PipelineGenerator.py
2023-07-13 00:59:48 +09:00

52 lines
1.6 KiB
Python

import os
import traceback
import faiss
from data.ModelSlot import DiffusionSVCModelSlot, RVCModelSlot
from voice_changer.RVC.deviceManager.DeviceManager import DeviceManager
from voice_changer.RVC.embedder.EmbedderManager import EmbedderManager
from voice_changer.RVC.inferencer.InferencerManager import InferencerManager
from voice_changer.RVC.pipeline.Pipeline import Pipeline
from voice_changer.RVC.pitchExtractor.PitchExtractorManager import PitchExtractorManager
def createPipeline(modelSlot: DiffusionSVCModelSlot, gpu: int, f0Detector: str):
dev = DeviceManager.get_instance().getDevice(gpu)
half = DeviceManager.get_instance().halfPrecisionAvailable(gpu)
# # Inferencer 生成
# try:
# inferencer = InferencerManager.getInferencer(modelSlot.modelType, modelSlot.modelFile, gpu)
# except Exception as e:
# print("[Voice Changer] exception! loading inferencer", e)
# traceback.print_exc()
# # Embedder 生成
# try:
# embedder = EmbedderManager.getEmbedder(
# modelSlot.embedder,
# # emmbedderFilename,
# half,
# dev,
# )
# except Exception as e:
# print("[Voice Changer] exception! loading embedder", e)
# traceback.print_exc()
# # pitchExtractor
# pitchExtractor = PitchExtractorManager.getPitchExtractor(f0Detector, gpu)
# pipeline = Pipeline(
# embedder,
# inferencer,
# pitchExtractor,
# index,
# modelSlot.samplingRate,
# dev,
# half,
# )
# return pipeline