From 9de74281f65e8f7f4ff4a0b5cc6a0edd8abe9a66 Mon Sep 17 00:00:00 2001 From: w-okada Date: Thu, 27 Jul 2023 04:12:58 +0900 Subject: [PATCH] RMVPE: different device bug, not finding root caused yet. --- .../DiffusionSVC/pitchExtractor/rmvpe/rmvpe.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server/voice_changer/DiffusionSVC/pitchExtractor/rmvpe/rmvpe.py b/server/voice_changer/DiffusionSVC/pitchExtractor/rmvpe/rmvpe.py index 8526f13c5..be7c0e644 100644 --- a/server/voice_changer/DiffusionSVC/pitchExtractor/rmvpe/rmvpe.py +++ b/server/voice_changer/DiffusionSVC/pitchExtractor/rmvpe/rmvpe.py @@ -4,6 +4,10 @@ import numpy as np from librosa.filters import mel +from mods.log_control import VoiceChangaerLogger + +logger = VoiceChangaerLogger.get_instance().getLogger() + class BiGRU(nn.Module): def __init__(self, input_features, hidden_features, num_layers): @@ -318,6 +322,9 @@ def forward(self, audio, keyshift=0, speed=1, center=True): if resize < size: magnitude = F.pad(magnitude, (0, 0, 0, size - resize)) magnitude = magnitude[:, :size, :] * self.win_length / win_length_new + if self.mel_basis.device != magnitude.device: + logger.warn(f"[RMVPE] Device is not same. mel_basis:{self.mel_basis.device}, magnitude:{magnitude.device}") + self.mel_basis.to(magnitude.device) mel_output = torch.matmul(self.mel_basis, magnitude) if self.is_half is True: mel_output = mel_output.half()