Reply by Emerson Tan 95-28046 September 13, 20002000-09-13

You could find the indices that have absolute values less than
a certain threshold (a numerical value that you can consider silent).
After knowing the indices, it would be easy to break the speech
signal into segments. --emer

> On Sat, 9 Sep 2000, Koliya N Pulasinghe wrote:
>
> >
> > Dear All,
> > I have a speech signal in a matrix form (through wavread)
> > Now I want to eliminate silent periods of the sound track.
> > If you have any idea, please let me know...
> >
> >
> > My Objective:
> > I am trying to break the speech signal into word segment to
> > analyze phonemes. First I should eliminate the unnecessary
> > parts. If you have any idea.. It is a grate help to me..
> >
> >
> > Thanks in advance..!
> >
> > Koliya
> >
> >
> >
> > To Join:
> >
> > To Post:
> >
> > To Leave:
> >
> > Archives: http://www.egroups.com/group/matlab
> >
> > More DSP-Related Groups: http://www.dsprelated.com
> >
> > To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.egroups.com/group/matlab
>
> More DSP-Related Groups: http://www.dsprelated.com




Reply by Ian Dexter Garcia 1995-21345 September 13, 20002000-09-13
Koliya,
A trial-and-error method of doing it is by using
plot('sample#s','magnitudes') and sound('sample#s','fs','bits').
However, a more efficient way of doing your
concatenations/segmentations and other processes is by using a program
called goldwave. It lets you easily playback and process any part of your
wav file. A sample version is downloadable.

On Sat, 9 Sep 2000, Koliya N Pulasinghe wrote:

>
> Dear All,
> I have a speech signal in a matrix form (through wavread)
> Now I want to eliminate silent periods of the sound track.
> If you have any idea, please let me know... > My Objective:
> I am trying to break the speech signal into word segment to
> analyze phonemes. First I should eliminate the unnecessary
> parts. If you have any idea.. It is a grate help to me.. > Thanks in advance..!
>
> Koliya >
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.egroups.com/group/matlab
>
> More DSP-Related Groups: http://www.dsprelated.com





Reply by September 10, 20002000-09-10
The simplest approach is to read thru the array of samples and calc the running
avg(abs(x(n)), with the avg. calc including terms from x(n) to x(n-time) where
time= typical time "it takes a human to get a word out of the mouth"*2, ~
(500-1000ms)*2. If the calc value ever becomes very low, ,~0, for that amount of
time, you just found a silent time period that lasted for ~2 secs. Then, using
the current sample index, delete the section that starts back 2 secs in time up
till the current sample, and concatenate the two remaining array sections back
together. Over and over....
Then to fine tune, instead of brute force deletion of the silent period, go
thru the data first in this section and detect exactly where the speech stops,
and ends. Then use these points to identify the actual silent section, and
delete this instead.


Reply by Koliya N Pulasinghe September 9, 20002000-09-09
Dear All,
I have a speech signal in a matrix form (through wavread)
Now I want to eliminate silent periods of the sound track.
If you have any idea, please let me know... My Objective:
I am trying to break the speech signal into word segment to
analyze phonemes. First I should eliminate the unnecessary
parts. If you have any idea.. It is a grate help to me.. Thanks in advance..!

Koliya