Мне удалось вычислить несколько спектрограмм для большого речевого корпуса на MATLAB, используя следующий код, есть ли способ сделать подобное в python?
%Import and store audiofiles
PathToDatabase='\\doozer.ads.warwick.ac.uk\User64\u\u1738748\Documents\MATLAB\ES327\HARVARD_Edited_EP_5s';
datafolder = PathToDatabase;
ads= audioDatastore( datafolder, 'IncludeSubfolders',true,...
'FileExtensions','.wav',...
'LabelSource','foldernames');
ads0=copy(ads);
%Split into training and test data, 80% for training. Display datastore
[trainDatastore, testDatastore]=splitEachLabel(ads,0.80);
trainDatastore;
trainDatastoreCount= countEachLabel(trainDatastore);
testDatastore;
testDatastoreCount= countEachLabel(testDatastore);
%Preview content of Datastore
[sampleTrain, infor] =read(trainDatastore);
sound(sampleTrain, infor.SampleRate);
reset(trainDatastore); % Set read pointer to original
%Speech spectrograms
% %speechspectrogram function computes the STFT of audio samples across
% time %Length of clip specified as 5 in seconds, segment broken down into
% %frames of 0.025 and the hopduration set at 0.010.numBands is the number
% of...filters and equals the height of the spetrogram %These values can
% bechanged and optimised wherever necessary.
%Defining spectrogram parameters
segmentDuration = 5;
frameDuration = 0.025;
hopDuration = 0.010;
numBands = 40;
%Compute
epsil=1e-6;
XTrain = Spectrogramtest(trainDatastore,segmentDuration,frameDuration,hopDuration,numBands);
XTrain = log10(XTrain + epsil);
XTest= Spectrogramtest(testDatastore,segmentDuration,frameDuration,hopDuration,numBands);
XTest = log10(XTest + epsil);
%Visualise Data
specMin = min(XTrain(:));
specMax = max(XTrain(:));
idx = randperm(size(XTrain,4),3);
figure('Units','normalized','Position',[0.2 0.2 0.6 0.6]);
for i = 1:3
[x,fs] = audioread(trainDatastore.Files{idx(i)});
subplot(2,3,i)
plot(x)
axis tight
title(string(trainDatastore.Labels(idx(i))))
subplot(2,3,i+3)
spect = XTrain(:,:,1,idx(i));
pcolor(spect)
%caxis([specMin+2 specMax])
shading flat
sound(x,fs)
pause(2)
end
'''
Моя проблема в том, что данные, выводимые в MATLAB, не могут быть визуализированы, и поэтому я изо всех сил пытаюсь изменить их для ввода в нейронную сеть для обучения. Однако я видел несколько примеров успешного выполнения прогнозирования временных рядов с помощью LSTM в python, и поэтому я надеюсь выполнить все в python.