How to play Audio File

1 次查看(过去 30 天)
A= testing;
B= [ten;
twenty;
fifty;
hundered;
fivehundered;
thousand];
G={'ten';
'twenty';
'fifty';
'hundered';
'five_hundered';
'thousand'};
class=knnclassify(A,B,G);
disp(class);
pathss=class
for index = 1:numel(pathss)
temp=pathss{index}
end
% [rows]=testing;
% for i=1:rows
if (temp=='ten')
a=wavread('stopsign.wav');
wavplay(a,44100);
% end
% end
% TF=strcmp(temp,ten)
% for index = 1:numel(pathss)
% temp1=pathss{index}
%
elseif (temp=='twenty')
a=wavread('crossroad.wav');
wavplay(a,44100);
elseif (temp=='fifty')
a=wavread('crossroad.wav');
wavplay(a,44100);
elseif (temp=='hundered')
a=wavread('crossroad.wav');
wavplay(a,44100);
elseif (temp=='five_hundered')
a=wavread('crossroad.wav');
wavplay(a,44100);
elseif (temp=='thousand')
a=wavread('crossroad.wav');
wavplay(a,44100);
end
end
This is a knnclassifer which i am using.It gets classifed into correct group but the audio file doesnt play.Whats the problem in here?

采纳的回答

Walter Roberson
Walter Roberson 2015-6-4
You should not be using "==" to compare strings. You should be using strcmp()
  3 个评论
Walter Roberson
Walter Roberson 2015-6-6
Do not name a variable "class". "class" is an important MATLAB routine.
Your code
for index = 1:numel(pathss)
temp=pathss{index}
end
assigns to temp and overwrites the result in the next iteration. The result is the same as if you had just done
temp = pathss{end};
The results would be the same if you only have a single sample in "testing" to classify, but in that case you would simply use
temp = pathss{1};
If you do have multiple samples to classify, then why would you be choosing the last one to play audio about? If you are only going to use the information about the last sample then why bother to classify the other samples?
What you have in your comments does not concern me. Your code tries to compare strings using "==", and that is going to fail.
You should be converting your code to use audioread() and audioplay() instead of wavread() and wavplay(), but that would not affect whether the audio comes out in existing releases. Having the wrong comparison operator for strings would cause audio to fail to come out, as MATLAB will error() out the code when you try to use "==" to compare strings of different lengths.
B.k Sumedha
B.k Sumedha 2015-6-8
Thanks Walter:).. Well i used the strcmp and it gave me the output.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by