Speech Recognition in MATLAB?

조회 수: 3 (최근 30일)
Abinaya Subramaniam
Abinaya Subramaniam 2017년 6월 8일
댓글: Alex Shubin 2018년 10월 4일
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
KSSV
KSSV 2018년 10월 4일
How about attaching the input files also..so that we can try?
Alex Shubin
Alex Shubin 2018년 10월 4일
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

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Speech Recognition에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by