 Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a tutorial on Speech Recognition in MATLAB using Correlation. Speech recognition is used in almost every security project where you need to speak and tell your password to a computer and is also used for automation. For example, I want to turn my AC on or off using voice commands then I have to use Speech Recognition. I have to make the system recognize that whether I am saying ON or OFF. In short, speech recognition plays a vital role in voice control projects. In today’s post, I am gonna show you How to do Speech Recognition in Matlab and the technique I have used in this project is known as cross correlation. You should also have a look at Eye Ball Detection in MATLAB.

Correlation is normally used in signal processing, where you need to compare two signals and need to find the similarity between them. It is also known as the dot product of those two signals. Correlation has many uses and you can read more about it on its Wiki Page. Correlation is also used for pattern recognition like you want to find some pattern in the signal then you can use Correlation. Anyways, in our project, we are using correlation to find similarities between our stored signals and the testing signal. So, let’s get started with Speech Recognition in MATLAB using Correlation.

#### Speech Recognition in MATLAB using Correlation

• First of all, download this complete project by clicking the below button: • Now in this package, you will find nine audio wav files.
• Five of them are the recorded sounds that are already feed in MATLAB.
• Two are test files that will be recognized by the code.
• The remaining two are success and failure files which will run if you got the recognition or not.
• Let me explain the code a bit. First of all, what we need to do is to upload the first five training audio files in the software so and then we need to test these fives files with the test files and we need to check which one is a maximum match.
• Here’s the complete code:
```function speechrecognition(filename)
x=voice;
x=x';
x=x(1,:);
x=x';
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=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=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=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=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);
if m<=m1
soundsc(h,50000)
elseif m<=m2
soundsc(h,50000)
elseif m<=m3
soundsc(h,50000)
elseif m<=m4
soundsc(h,50000)
elseif m<m5
soundsc(h,50000)
else

end```
• Now if you read the code from start then you can see, first of all, I uploaded the test file which I want to compare with my samples.
• After that, I uploaded all 5 samples and also get their correlation with the test sample.
• Finally, in the end, I compared the results and on the basis of it I figured out which one is the correct speech file.
• You will also get spectrum graphs of your sound files as shown in the below figure: • It was quite an easy project and I have done it within half an hour and I hope you guys will understand.
• If you got any problems then ask in the comments and I will resolve them.
• Here’s the complete video demonstration for this project and I hope it’s going to help you out in understanding it.

That’s all for today, and I think you have understood How to do Speech Recognition in MATLAB using Correlation. Will meet you guys in the next tutorial soon. Till then take care !!! 🙂

1. Mohsen says:

what is happen in line 4 , 5 & 6
or 8 , 9 & 10

2. Ashwin says:

What is the filename to be given in that function parameters
ashwinwin1997@Gmail.com

3. afnan says:

Error in ==> speechrecognition at 5

4. Abhishek says:

Dear sir i am getting problem in comping the speech recognition code kindly resolve it sir

??? Undefined function or variable ‘x’.

??? Error using ==> run at 56
Input argument “filename” is undefined.

5. rathna says:

Error in ==> speechrecognition at 5
how to rectify this

6. Chiya says:

Thank you for sharing the code.
I would like to add some extra features
Can you suggest some ideas?

• sourav says:

did the code work for you?

7. anonymous says:

The denied code is not working. When I give a file not part of test file, the denied line 88, getting ‘too many output arguments’ as error. Can you please explain that part?

• Bernard says:

8. Bernard says:

Good morning, do you use some kind of filter to develop this application?

9. jyothsna says:

sir cant we read our own recording file

10. Swetha says:

11. Shubham says:

Can you give me an idea about how to approach for speech enhancement using matlab?

12. tuba says:

i want to know that what is 50000 ????? if it is sample rate then how it is same?? plz help men i am working on speech to text recognition anybody wants to help me?

13. hina says:

Error in ==> speechrecognition at 5

Sir, how to upload the files to check ? Can u plz tel sir.

• Sanaullah says:

Just click on “speechrecognition.m” file
And obviously an installed MATLAB is required as well

15. mitali says:

error is like Undefined function or variable ‘speechrecognition’.
how it is to be solved?? plz suggest me..

16. aysha says:

sir can you please send me code for convolution calculator??its is not presnt here

17. Manu says:

Sir I’m doing a project on audio encoder and decoder.
I need a program two compare the quality (in terms of error or similarity or difference) of wav files before and after encoding.

18. Yavuz Selim Yılmaz says:

Hello. I receive an error in line 5.

” >> speechrecognition
Not enough input arguments.

Error in speechrecognition (line 5)

Could anyone help?

• Syed Zain Nasir says:

I think problem is with your MATLAB version. I have tested it on MATLAB 2009 and it worked fine.

• umer says:

can u tell me how to input arguments in line 5

• Sakshi says:

i have the latest version and it is not working. Having same error in line 5

19. Salamah says:

where is the flowchart of the project ?

20. Lalitha says:

If some one imitate our voice can it works in that case?

21. Priya says:

Good afternoon sir,
My research is in speech enhancement. Can you suggest me how the noisy speech can be enhanced using DNN in matlab. Do u have any sample code for this speech enhancement using DNN?

22. JJ says:

Dear Sir,
x=x’;
x=x(1,:);
x=x’;
in line 4,5,6 respectively.

23. chirag raval says:

HELLO SIR I HAVE ONE ERROR LIKE THAT

Error using speechrecognition (line 5)
Not enough input arguments.

24. joe says:

hello sir,
Can you please get me the code for atrial fibrillation.

25. Elif Akgün says:

Hello

For every voice signal, you used transpose and I didn’t understand why it is necessary. After the transpose you took the one channel of the signal, then took the transpose again. I didn’t understand these lines of this code and I tried to uploud my voice which is saved as .m4a , but I got an error. Please, can you explain for me how can I uploud my voice and what does these lines used for?
Can you answer urgently, i have an assignment.
Thankss

26. dorzarin says:

hi sir
do you have any code for speech recognition? only for one person?
it mean’s that’s work for one person
for high security

27. sampath k p says:

Not enough input arguments.
Error in speechrecognition