We’re rewarding the question askers & reputations are being recalculated! Read more.
14

Encouraged by Hilmar, I've decided to update the answer with all the steps necessary to calculate the Reverberation Time from a scratch. Presumably, it will be useful for others interested in this area. Obviously, it is the simplest approach because more advanced are definitely beyond a scope. In the beginning, you must obtain the impulse response of a room....


12

The FFT can only be performed over a limited chunk of data. The basic math is based on the assumption that the time domain signal is periodic, i.e. your chunk of data is repeated in time. That typically results in a major discontinuity at the edges of the chunk. Let's look at a quick example: FFT size = 1000 points, Sample Rate = 1000 Hz, Frequency ...


7

In line with a previous similar question here are my suggestions: There are so many nice books but I believe you should first have a look at the science of sound from Rossing for getting the most broad view on the subject. Then you can look at the following books , each dealing with a particular dimension of the problem: 1- Acoustics_BERANEK 2- Elements ...


7

Why is each window/frame overlapping? Windowing is a means to stationarize signals. Inside a small enough window, you can expect that the properties of the signal chunk do not vary too fast. And you now can use tools well-suited to stationary signals, like Fourier-based techniques. You can imagine non-overlapping rectangular windows, each defining a frame....


6

More overlap means you end up with more windows (of a given length) per second of audio. More windows (of a given length) requires more FFTs which requires more MACs or FLOPs which generally requires more processing power. In return, more window overlap provides greater time locality of information (e.g. on average, random transient events are likely ...


5

Depending on the actual recordings, the algorithm complexity could range from dead easy to really complex... I'll take the studio recording case first, so I can assume : - (Almost) no noise coming from outside (cars, trucks, bus...) - Nobody slamming the door in the middle of the recording - Voice samples are recorded at optimal level independently of who ...


5

My own interpretation: Sound: a mechanical wave that propagates through the air or water. Audio: sound in the 20 Hz to 20 kHz range; in other words, sound that is (at least in theory) audible to a large number of humans. Voice: sound produced by the human vocal tract. Speech: intelligible voice (i.e. not grunts or screams) Tone: signal dominated by a ...


5

any window (almost any) is better than a boxcar window, unless your spectrum is flat. speech signals are not flat. I suspect that Hamming and Hann are commonly used because you can avoid scalloping loss for 50% overlap. One gets a sufficiently favorable tradeoff between time resolution and frequency domain dynamic (side lobe level) range. There is also ...


4

I highly doubt that something as complex as recognizing a word can be done directly in the time domain using features as basic as zero-crossing rate.


4

The main issue here is that you are implementing a time-variant filter. Both FIR filter and overlap algorithms are only valid if your filter is time-invariant. If you need time variant filters, you need to solve two problems: continuity of the state variable and continuity of the output waveform. The easiest way to deal with this is to basically run both ...


4

It's better to copy first frame and last frame values to extend vector sequence beyond boundaries than to assign 0. This could be implemented just by adjusting indexes: if (index1 < 0) index1 = 0 if (index2 > N - 1) index2 = N - 1 delta = v[index1] - v[index2]


4

By performing the windowing with overlap we are artificially increasing our time resolution (larger granularity of features in time). This is especially useful when frame duration is long (bad time resolution, very good frequency resolution), thus yielding kind of extra 'time resolution'. Usually no one is using the rectangular window, but other types such ...


4

The standard method to remove stationary noise is spectral subtraction, where the magnitudes of the short-time Fourier transform of the noisy signal are modified based on an SNR estimate in the respective frequency bin. The algorithm by Ephraim and Malah (see this paper) and its variants are used a lot. Note that the basic principle of spectral subtraction ...


4

But which features of signals reveal differences between piano and guitar Look at things like timbre; basically, most things when excited to oscillate will not only produce a single tone, but a set of overtones, too, and those are weighted differently; also, there tends to be a different temporal "decaying" and frequency changing after excitation.


3

you can also find speech corpus from here English: American National Corpus Open to All Huge Corpus from Vox Forge Repository Indian Local: Hindi Language Corpus Bengali Corpus Speeches from Indian Language Consortium


3

It's common, when computing a cepstrum, to replace any zero's or tiny magnitudes in the 1st FFT result with some (noise) floor value to keep the scale and range of the log function "reasonable looking". Huge negative spikes (or -inf) from the log() of tiny spectrum magnitudes don't usually provide that much added useful information to the rest of the ...


3

Tapering the two ends of a short audio signal allows it to be played at an arbitrary time after and before silence without a speaker "pop" or loud click. Using a raised cosine taper reduces potential high frequency spectral content inherent in any sudden sharp startup transient, which might not be present in the rest of the data due to prior low pass ...


3

So when will you think you need moving average in an algorithm design? If you mean moving average filters; moving averages as the name suggest are computed as averages of samples say, $M-1$ previous samples (+ current sample) from input $x[n]$ to get an average output $y[n]$, repeating the process to get all $y$ samples. Computing their mean to get an ...


3

As already mentioned by other people, the bilinear transform is often used to map a continuous-time system described in the $s$-domain to a discrete-time system described in the $z$-domain. However, a bilinear transform is a more general tool that can also be used to transform a discrete-time system to another discrete-time system. Since you didn't give any ...


3

Here is a series of tutorial videos on Speech and Audio Processing by Professor E. Ambikairajah; about 1 hour each. They can serve as a basis to focus on more specific topic. Speech and Audio Processing 1: Introduction to Speech Processing Speech and Audio Processing 2: Speech Analysis Speech and Audio Processing 3: Linear Predictive Coding (LPC) Speech and ...


3

Let's note $x_k$ and $x_{k+1}$ two successive samples. In the usual case of uniform sampling, the spacing between two successive samples is independent of $k$ and is given by $T$, the sampling period. This is illustrated in the figure below. In the case of logarithmic sampling, the spacing increases exponentially with $k$. This is again illustrated in the ...


3

ImageMagick is a great tool to edit multiple images in the command line. Thanks to your question, I just discovered SoX, or Sound eXchange: SoX is a cross-platform (Windows, Linux, MacOS X, etc.) command line utility that can convert various formats of computer audio files in to other formats. It can also apply various effects to these sound files, ...


3

Audio quality assessment is one of the most critical pieces of audio coding and enhancing applications. The task requires an accurate and objective (mathematical) modeling of human auditory system including its subjective virtues. However, the task of subjective quality assessment is one of the most complex problems to be attacked on Earth. Currently all ...


3

Band-pass filtering with cut-off frequencies of 300 Hz and 3400 Hz should result in a good approximation. Try with a Chebychev filter or order not more than 6. Then you may need to downsample your audio to 8000 samples per second, which is the standard for telephony. P.S. The actual cut-off frequencies (especially the 3400 Hz) may be different according to ...


3

All recognition tasks (doesn't even have to be speech recognition) are reductions of a very high-dimensional signal (your speech recording's dimension is the number of audio samples!) to a low-dimensional signal. As such, it is generally advisable to transform the input signal through an easy operation to a representation where the dimensionality can be ...


2

Using the standard deviation of time lags is not a bad idea - the problem is that for very noisy signals such as consonants you won't really get a pattern with peaks. Your suggestion would be more useful in the context of musical instruments sound (for example to measure the inharmonicity of a sound, from violin to piano to bell...) You can look at the ...


2

Here's one example: http://www.izotope.com/tech/aes_suppr/ Googling "Musical Noise" certainly turns up a lot of noise music, so I'd suggest looking for academic papers that have web links to sound examples.


2

The features are the same. You might encounter differences in some of the implementation details (window sizes, number of mel filters, number of extracted coefficients) reported in research papers, but these are not significant.


2

Both speech recognition and speaker recognition require some set of features to distinguish one speaker (or speech section) from another. Suppose you have two speakers $S_1$ and $S_2$ and two words $w_1$ and $w_2$. Let's call $u_{ij}$ the utterance of speaker $i$ of word $j$. Then the MFCC's of the speech are $M(u_{ij})$. One way to pose the speaker ...


2

Zero crossing rate is not a good approach indeed, you can use any keyword spotting software to spot for the word, keyword spotting is based on HMM too and statistical hypothesis testing. You can try keyword spotting with CMUSphinx


Only top voted, non community-wiki answers of a minimum length are eligible