Hot answers tagged

17

The closest example I can think of is the beginning of Suzanne Vega's "Tom's Diner" which has been used for the mpeg-1 layer 3 development, and is still occasionally used to demo audio codecs.


16

Audio processing is a large field, but specifically in speech processing, an open database of samples known as Harvard Sentences is widely used. Harvard sentences are phonetically balanced collections of sentences in American English. Many equivalent databases exist for other languages as well. Actual files with Harvard Sentences speech can be found here.


13

It is really quite simple for values between 1 and -1: valueDBFS = 20*log10(abs(value)) If you have values between another range, for example 16bit, then it's: valueDBFS = 20*log10(abs(value)/32768) (because 16bit signed has values between -32768 and +32767, e.g. 2^15=32768) And so the general formula is: valueDBFS = 20*log10(abs(value)/maxValue) The ...


13

No. Why do you think it would? First of all, the human brain works very different then any human constructed computer (to date); so the assumption that it runs mathematical "algorithms" is somewhat dicey.. Here is roughly how it works: Sound wiggles the air drum That vibration is transferred by the ossicles to the cochlea. The ossicles act mainly as a ...


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


11

Two remarks: I am assuming you are plotting the real (or imaginary) part of the Fourier transform. It is much more common to work with the magnitude or squared magnitude (power spectrum). The peak in the spectrum is a very poor measure of fundamental frequency (pitch). Take a piano note at 440 Hz, apply a notch filter to it to remove the 440 Hz component. ...


11

This is only an approximation! While the sound of whistling has a very prominent first harmonic, the other harmonics are still present too; there's a non-harmonic noise component; and the first harmonic is more a narrow bump than a sharp line. A better description of the sound of whistling would be white noise filtered through a band-pass filter with a very ...


11

Two potential issues: Doing filtering in the frequency domain (using an FFT) requires overlap-add, overlap-save, or a related algorithm. This is caused by the difference between linear and circular convolution. Otherwise you get time-domain aliasing Some of the noise sounds like simple clipping. Filtering can actually increase the time domain amplitude for ...


10

First, grab Sonic Visualizer, it is much better than Audacity for looking at sounds. What you see here is probably the result of the sum of two simple and stationary sounds at fundamental frequencies close to each other. This causes beating of their fundamental, causing the amplitude modulation (tremolo) you observe. Two important factors make a synthetic ...


9

To measure the energy (which is closely related to, but not the same as, "loudness"), calculate the RMS (Root-Mean-Square). $ E = \sqrt{\frac{\displaystyle\sum\limits_{n=0}^{N-1} s[n]^2}{N}}$ $N$ is the number of samples and $s[n]$ is the sample at time $n$. You can do this in any block size of samples. You can do it on all the samples at once to get an ...


9

You're running into a property of the DFT that is usually used in the opposite direction: stuffing zeros between samples in one domain results in replication of the entire sequence in the opposite domain. Let's start in the frequency domain with the signal you plotted, $X[k]$, and look at the inverse transform to see what time-domain signal it corresponds to....


8

As you have realized, the hard part of doing digital communications is carrier, symbol and frame synchronization, and channel estimation/equalization. The bad news is that you can't get around these problems. The good news is that implementing these is not that hard, as long as you limit yourself to narrowband BPSK. I know, because I have done this myself, ...


7

First just a note, fourier transforms are not ideal for low/high pass filters. Butterworth filters are a good place to start and following that Chebyshev/Elliptical filters if you get more ambitious. It looks like your are trying to implement an ideal filter. There is no way we can implement these 'brick-wall' filters where we cut off all frequencies above/...


7

For what you intend to do, a low-pass filter is the way to go. Your statement about filtering frequencies vs filtering amplitudes is incorrect. Your signal contains many components at many frequencies, the amplitude of which varies in time, and the high frequency components are those causing the "jaggedness" and you want to get rid of them. Not sure why you ...


7

The "click" is caused by the discontinuity in the waveform and its derivatives - even if the waveform stops at a zero-crossing you might still hear a pop if there's a discontinuity in the higher order derivatives! Its loudness depends on the amplitude at the discontinuity - and it is thus influenced by the length/frequency/phase of the sinusoidal tone. Note ...


7

The beat and onset detection algorithms used at the Echo Nest are probably variants/improvements of the techniques developed by Tristan Jehan in his Ph.D. This is not the only approach, and I would recommend you to try first: Getting an onset detection function using spectral flux or complex amplitude. Using this algorithm to detect beats (you can improve ...


7

I believe that this "color graph" you are looking for is a spectrogram (although it looks to me more like a scalogram, but you did not mentioned wavelets). Let me give you an example in MATLAB of obtaining such plot: load handel nfft = 512; noverlap = 128; win = hamming(nfft); spectrogram(y, win, noverlap, nfft, Fs, 'yaxis') colormap('jet') So first line ...


7

From the ones I've been using I can recommend: YAAFE - very pleasant to work with in Python ESSENTIA - another one I like particularly due to Python integration aubio FEAPI Aquila - friend of mine used it extensively and he likes it a lot Recently I came across this paper and I believe that this should perfectly answer your question. Moffat D. et al - ...


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

An exponentially decaying envelope $a\exp(-b x)$ is a good choice, and is used for example in vintage Yamaha FM synthesizers. It has the favorable property that over any constant length time interval, by the end of the interval the envelope has decayed to a constant fraction of what it was at the beginning of the interval. Damped oscillation (with some ...


6

This is actually a really tough problem because of the channel characteristics. Most computer speakers have fairly limited bandwidth, have significant non-linearities and the room acoustics are often time variant. Life becomes A LOT easier if you can just run a cable from the headphone output of one PC into the line input of the other.


6

Another interesting audio denoising technique exploits the fact that many sound recordings contain silent time intervals that contain only noise. Such sections can be chopped out of the recording to obtain a noise spectrum and then spectral gating can be applied to suppress noise. Take a look at the following links for detailed discussion on this technique: ...


6

First of all, there is something wrong in your computation of the sine wave. It should be something like: volume * sin(2 * pi * frequency * n / SAMPLE_RATE); At the moment, your code is generating very high frequencies and what you are hearing are their mirror images. This is the very first thing to fix. Other problems in your code include: Resetting ...


6

The matlab codes that implemented D. Ellis's algorithm are on their website: http://labrosa.ee.columbia.edu/projects/beattrack/


6

"Ok Google" is described in many publications by Google Automatic Gain Control and Multi-style Training for Robust Small-Footprint Keyword Spotting with Deep Neural Networks Convolutional Neural Networks for Small-Footprint Keyword Spotting It is based on DNN specifically trained for keyphrase and runs really fast. It does not consume a lot of power even ...


6

The main reason why the tables don't have it, is that it's hard to measure. The measurement technique in ISO 354:2003 relies on measuring the difference in reverberation times in a reverberation rooms with and with/out a material sample. At higher frequencies, the reverb time is dominated by air absorption and and the sound field becomes less and less ...


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

Some accordions have multiple reeds per note, with the reeds not precisely in tune with other. So you see beats. You also see some odd harmonics unhidden during lower frequency beat cancellation.


5

The native sampling frequency of iOS devices is 44100 Hz, while Android devices can operate at either 8, 16, 24, 44.1 or 48 kHz. Support of all of these depends on Android device manufacturer, however most Android support all of them.


5

The audio feature extraction libraries given above could be a good start, with some caveats: The features you need for this task are plain MFCCs, so most of those libraries are totally overkill since they also extract features which are more meaningful in a musical context. Some of those libraries have been designed for offline analysis (processing a pre-...


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