Dividing speech signal into short-time segments?

Hi all. I created a speech signal in Matlab. I need to divide speech signal into short-time segments with lengths 150 samples. Later I will process each segment to determine if it is voiced or unvoiced, and pitch period for voiced speechs. Here is the info:

 Accepted Answer

If your sound signal is a vector, try to use reshape. For example from the info I understand that your sound signal would be a vector with 72000 elements which you want to divide in groups of 150.
SeperatedSoundSignal = reshape(soundSignal,150,72000/150);
This will convert your vector into 72000/150 columns which have each 150 elements/samples.
Kind regards, Baltam

6 Comments

Thank you for your answer.
Now I want to ask you How can I saperate each 150 samples like this (with for loop?) :
y=SeperatedSoundSignal(150x480)
y1=y(1:150)
y2=y(151:300)
y3=y(301:450)
...
...
...
Maybe you can use cells.
y=SeperatedSoundSignal(150x480)
cell_y = num2cell(y,1);
What do you need to have them seperated for? Because you can easily do operations on the columns of the matrix 'SeperatedSoundSignal'
Baltam
I will process each segment to determine if it is voiced or unvoiced speech signal. Yet, I'm still looking for a method to do it in matlab.
Then I don't think you really need to split up the matrix SeperatedSoundSignal(150x480) just perform the calculations on the columns.
And I'm guessing you need to look at the frequency content to know if there is speech or not.
Good luck,
Baltam
Thank you very much.
Hi, I have a doubt in case if we couldnt make it as a square matrix then what is the alternative way?
In my case I have 112456x1 , I need to do the segmentation for 600 samples per segment .

Sign in to comment.

More Answers (0)

Categories

Tags

No tags entered yet.

Asked:

on 12 Apr 2016

Commented:

SSV
on 13 Oct 2019

Community Treasure Hunt

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

Start Hunting!