Demucs.api или demucs.pretrained не работаютPython

Программы на Python
Ответить
Anonymous
 Demucs.api или demucs.pretrained не работают

Сообщение Anonymous »

Я создал свою среду и установил несколько пакетов для CUDA 11.8.0 (включая DEMUCS, PyTorch, Torchaudio и FFmpeg). Я хочу разделить трек с помощью DEMUCS с Python в Spyder (не в приглашении Anaconda). Я получаю:

AttributeError: у модуля «demucs» нет атрибута «Разделитель» (1)


Ошибка импорта: невозможно импортировать имя «load_pretrained» из «demucs.pretrained» (2) (C:\Users\User\anaconda3\envs\Pytorch\Lib\site-packages\demucs\pretrained.py)


ModuleNotFoundError: нет модуля с именем «demucs.api» (3)


ModuleNotFoundError: Нет модуля с именем «demucs.model»(4)

Я проверил версии библиотеки, обновил DEMUCS и другие пакеты, а также удалил и переустановил их. Почему DEMUCS работает некорректно? Вот что вернуло эти ошибки:
#1:
import demucs
separator = demucs.Separator()
model = demucs.load_pretrained('demucs')
audio_sources = separator.separate('Zweite_Aufnahme_mit_Piano.wav')
for source_name, source_audio in audio_sources.items():
source_audio.to_file(source_name + '.wav')

#2:
import torchaudio
from demucs.pretrained import load_pretrained
import soundfile as sf
import os

input_audio_file = 'Zweite_Aufnahme_mit_Piano.wav'
output_directory = 'Separated_audios'
model = load_pretrained('demucs_quantized')
audio, _ = torchaudio.load(input_audio_file)
sources = model(audio)

os.makedirs(output_directory, exist_ok=True)

for i, source in enumerate(sources):
source_path = os.path.join(output_directory, f'source_{i}.wav')
sf.write(source_path, source[0].numpy(), 44100)

print("Source separation complete. Separated sources saved in the output directory.")

#3:
from pydub import AudioSegment
import IPython
import numpy as np
import demucs.api
import pathlib
import torch

audiosegment = AudioSegment.from_mp3("Zweite_Aufnahme_mit_Piano.wav")
arr = audiosegment.get_array_of_samples()
sr = audiosegment.frame_rate
ch = audiosegment.channels
aac = np.array(arr, dtype=np.float32).reshape((-1, ch))
aac = aac[30*sr:40*sr,:]
IPython.display.Audio(aac[:, 0], rate=sr)

separator = demucs.api.Separator()
model = separator.load_model()
input = torch.from_numpy(aac.reshape((ch, -1)))
separator.add_track("born", input)
separated = separator.separate_loaded_audio()
for (file, stems) in separated:
for stem, waveform in stems.items():
print(stem)
print(waveform.shape)
aac_again = waveform.numpy().reshape((-1, ch))
IPython.display.display(IPython.display.Audio(aac_again[:,0], rate=sr))

№4:
import torchaudio
from demucs.model import load_pretrained

audio, sample_rate = torchaudio.load('Zweite_Aufnahme_mit_Piano.wav')
model = load_pretrained('demucs')
separated_sources = model(audio)
torchaudio.save('vocals.wav', separated_sources['vocals'], sample_rate)
torchaudio.save('accompaniment.wav', separated_sources['accompaniment'], sample_rate)
torchaudio.save('drums.wav', separated_sources['drums'], sample_rate)
torchaudio.save('bass.wav', separated_sources['bass'], sample_rate)


Подробнее здесь: https://stackoverflow.com/questions/773 ... nt-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»