I have a wav file and I want to play it....how?
46 次查看(过去 30 天)
显示 更早的评论
I have a project due tuesday and I am having trouble with this last part. I have to play a wav file, put noise to it and filter it out. How do I do this. Everytime I try to play the wav file it either will not work or plays ridiculously slow. Please help, I really need it.
0 个评论
采纳的回答
Image Analyst
2016-11-24
编辑:Image Analyst
2021-11-28
Try soundsc(). Here's one way to add white noise:
% Read in the standard demo wave file that ships with MATLAB.
[y, fs] = audioread('guitartune.wav');
soundsc(y, fs); % Here is where we actually play the music from the speakers.
% Plot the original waveform.
subplot(2, 1, 1);
plot(y, 'b-');
grid on;
drawnow;
% Give it time for it to finish playing the original tune
% while asking user if they want to play the noisy one.
message = sprintf('Do you want to play the noisy one?');
reply = questdlg(message, 'Play tune?', 'Yes', 'No', 'Yes');
if strcmpi(reply, 'No')
% User said No, so exit.
return;
end
% Define the noise amplitude. Change this to increate or decrease the noise.
noiseAmplitude = 0.1;
% Add noise to every element of the sound waveform.
yNoisy = y + noiseAmplitude * rand(length(y), 1) - noiseAmplitude/2;
% Plot the noisy waveform below the original one.
subplot(2, 1, 2);
plot(yNoisy, 'b-');
grid on;
drawnow;
% Here is where we actually play the music from the speakers.
soundsc(yNoisy, fs);
4 个评论
Razan Al Hakim
2021-11-28
Why the argument of plotting the noisy sound is “y” and not “ynoisy” ? yNoisy = y + noiseAmplitude * rand(length(y), 1) - noiseAmplitude/2; % Plot the noisy waveform below the original one. subplot(2, 1, 2); plot(***y***, 'b-');
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio Processing Algorithm Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!