Speech Recognition in MATLAB?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have written a code that recognizes specific words.
Basically , if I upload an audio file and give some keyword, I want the time stamps where that keyword has been played in the audio file from MATLAB.
Any heads up on that ?
function speechrecognition(filename)
voice=wavread(filename);
x=voice;
x=x';
x=x(1,:);
x=x';
y1=wavread('one.wav');
y1=y1';
y1=y1(1,:);
y1=y1';
z1=xcorr(x,y1);
m1=max(z1);
l1=length(z1);
t1=-((l1-1)/2):1:((l1-1)/2);
t1=t1';
%subplot(3,2,1);
plot(t1,z1);
y2=wavread('two.wav');
y2=y2';
y2=y2(1,:);
y2=y2';
z2=xcorr(x,y2);
m2=max(z2);
l2=length(z2);
t2=-((l2-1)/2):1:((l2-1)/2);
t2=t2';
%subplot(3,2,2);
figure
plot(t2,z2);
y3=wavread('three.wav');
y3=y3';
y3=y3(1,:);
y3=y3';
z3=xcorr(x,y3);
m3=max(z3);
l3=length(z3);
t3=-((l3-1)/2):1:((l3-1)/2);
t3=t3';
%subplot(3,2,3);
figure
plot(t3,z3);
y4=wavread('four.wav');
y4=y4';
y4=y4(1,:);
y4=y4';
z4=xcorr(x,y4);
m4=max(z4);
l4=length(z4);
t4=-((l4-1)/2):1:((l4-1)/2);
t4=t4';
%subplot(3,2,4);
figure
plot(t4,z4);
y5=wavread('five.wav');
y5=y5';
y5=y5(1,:);
y5=y5';
z5=xcorr(x,y5);
m5=max(z5);
l5=length(z5);
t5=-((l5-1)/2):1:((l5-1)/2);
t5=t5';
%subplot(3,2,5);
figure
plot(t5,z5);
m6=300;
a=[m1 m2 m3 m4 m5 m6];
m=max(a);
h=wavread('allow.wav');
if m<=m1
soundsc(wavread('one.wav'),50000)
soundsc(h,50000)
elseif m<=m2
soundsc(wavread('two.wav'),50000)
soundsc(h,50000)
elseif m<=m3
soundsc(wavread('three.wav'),50000)
soundsc(h,50000)
elseif m<=m4
soundsc(wavread('four.wav'),50000)
soundsc(h,50000)
elseif m<m5
soundsc(wavread('five.wav'),50000)
soundsc(h,50000)
else
{soundsc(wavread('denied.wav'),50000)}
end
4 commentaires
Alex Shubin
le 4 Oct 2018
Basically my task was find timestamps of one sound in long track. for example: you want separate a track by some noise or music intro you need peek that intro and script must provide you a timestamps where that sound located in track (it can be repeated a many times)
here is my current code:
function [] = untitled(inputArg2,inputArg1)
[x, Fs] = audioread(inputArg1);
[x1,Fs1] = audioread(inputArg2);
x=x';
x=x(1,:);
x=x';
x1=x1';
x1=x1(1,:);
x1=x1';
tt1 = (0:length(x)-1)/Fs;
tt2 = (0:length(x1)-1)/Fs1;
Y = fft(x);
Z = fft(x1);
subplot(3,1,1), plot(tt1,x);
subplot(3,1,2), plot(tt2,x1);
[C1,lag1] = xcorr(abs(Y),abs(Z) );
subplot(3,1,3), plot(lag1/Fs,C1);
end
Réponses (0)
Voir également
Catégories
En savoir plus sur Speech Recognition dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!