17

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 ...


6

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

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 ...


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.


4

A common technique for computing the inverse fft is to invert the imaginary part of the input array, perform a forward fft and then invert the imaginary part of the output array. In the case of the Cepstrum, the input to the ifft is real-valued (due to the absolute value function) and also symmetric. In this case there is no imaginary part on the input to ...


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

Let's think about it in a different way - Generate Noise from a Dictionary. Let's create a Dictionary $ A \in \mathbb{R}^{m \times n} $ where each of its rows is normalized (Has Euclidean Norm of $ 1 $) and generated by a Gaussian Random Vector. Now, let's create $ N $ random vector $ {\left\{ {r}_{i} \right\}}_{i = 1}^{N} $ by: $$ {r}_{i} = A {g}_{i} $$ ...


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

Signal to Noise ratio (SNR) is a ratio of powers and hence it is always greater than or equal to zero, it cannot be negative. On the other hand, very commonly SNR is expressed in decibel (dB) notation $$ \text{SNR}_{\text{dB}} = 10 \log_{10}\left( \frac{\sigma_x^2}{\sigma_n^2 } \right) $$ where $\sigma_x^2$ and $\sigma_n^2$ are the signal and noise powers ...


3

You may think of it as efficient way to apply Dirichlet Window Based interpolation in the Fourier Domain. The advantage of applying the interpolation using Zero Padding in the Time Domain is very simple - it is simpler and more computationally efficient.


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

Ok so here is what I found. The distance is dependent on the way that the mfccs are calculated. This makes sense to me and also explains why cepstral mean normalization affects the values of the MCD. I found this implementation (https://github.com/MattShannon/mcd), which unfortunately did not support .wav files. I ran this and it gives results that are in ...


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 ...


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