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 |
|
speech signal segmentation
Started by ●September 9, 2000
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 ●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 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 |