восстановление звука после NMF - PullRequest
0 голосов
/ 03 марта 2020

Я использовал NMF для кластеризации 2-х элементного инструмента моего wav-файла. но я запутался в восстановлении выхода NMF (W и H). Я хочу восстановить звук компонента 1 и компонента 2. У меня очень низкая амплитуда, поэтому я не могу слышать звук

import librosa as librosa
import matplotlib.pyplot as plt
import numpy as np
from scipy import signal
from sklearn.decomposition import NMF
from scipy.io.wavfile import write
import pandas as pd


y, fs = librosa.load('myrdmsrn2mik3.wav',44100);

f, t, Zxx = signal.stft(y, fs, nperseg=1000)
plt.figure(figsize=(15,10))
plt.pcolormesh(t, f, np.abs(Zxx))
model = NMF(n_components=2, init='random', random_state=0)
X, X_phase = librosa.magphase(Zxx)
W = model.fit_transform(X)
H = model.components_
W1=W[:,0:1]
#W1=np.transpose(W1)
W2=W[:,1:2]
H1=H[0:1,:]
H2=H[1:2,:]

#write W1,
Xc1= np.dot(W1, H1)*X_phase
_,suara1 = signal.istft(Xc1, fs)
write("example1.wav", fs, suara1)

#write W2, 
Xc2= np.dot(W2, H2)*X_phase
_,suara2 = signal.istft(Xc2, fs)
write("example2.wav", fs, suara2)
...