Undefined function 'preprocessAudio' for input arguments of type 'single'
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Saurabh Deshmukh
el 9 de Mzo. de 2023
Comentada: Saurabh Deshmukh
el 10 de Mzo. de 2023
Dear all Coding Experts in Matlab.
I am trying to Train Generative Adversarial Network (GAN) for Sound Synthesis.
But while operating perfor i am getting following error.
for the parfor-loop that is trying to execute on the worker could not be found.
Caused by:
Undefined function 'preprocessAudio' for input arguments of type 'single'.
Error using remoteParallelFunction
Worker unable to find file.
Undefined function 'preprocessAudio' for input arguments of type 'single'.
What Am i Doing Wrong ? I am implementing the code as it is.
Here is my code
downloadFolder = 'audio_folder';% Some folder that contains 100 audio files type .wav
percussivesoundsFolder = fullfile(downloadFolder);
ads = audioDatastore(percussivesoundsFolder,IncludeSubfolders=true);
fftLength = 256;
win = hann(fftLength,"periodic");
overlapLength = 128;
if canUseParallelPool
pool = gcp;
numPar = numpartitions(ads,pool);
else
numPar = 1;
end
parfor ii = 1:numPar
subds = partition(ads,numPar,ii);
STrain = zeros(fftLength/2+1,128,1,numel(subds.Files));
for idx = 1:numel(subds.Files)
% Read audio
[x,xinfo] = read(subds);
% Preprocess
x = preprocessAudio(single(x),xinfo.SampleRate);
% STFT
S0 = stft(x,Window=win,OverlapLength=overlapLength,FrequencyRange="onesided");
% Magnitude
S = abs(S0);
STrain(:,:,:,idx) = S;
end
Please help. Thank you in Advance.
0 comentarios
Respuesta aceptada
Steven Lord
el 9 de Mzo. de 2023
Look at the Utility Functions section at the end of that example's documentation page. The preprocessAudio function is part of that example and so is not on the MATLAB search path by default. You will need to create a file named preprocessAudio.m in a directory that is on the search path (in the directory whose path is returned by userpath is a good place if you don't already have a folder for the code you're trying to run) and copy that code into it.
Since that uses the trimOrPad utility function also included in that example you'll need to either make a similar trimOrPad.m file or copy the trimOrPad function as a subfunction inside preprocessAudio.m.
3 comentarios
Steven Lord
el 10 de Mzo. de 2023
Still the error remains same as it expects a Single Data type of variable numPar and Double Data Type is generated from the statements given below
No, it's the other way around. As stated in the documentation for the resample function in Signal Processing Toolbox, the first input argument (x) must be of data type double. The code checks whether that first input is a double and in your application it's not. It's single precision. So you need to convert your data to double or find an alternate way to resample your data (perhaps using interp1?)
Más respuestas (0)
Ver también
Categorías
Más información sobre Audio I/O and Waveform Generation en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!