Hot answers tagged

14

This is a well-studied problem, dating back from the mid 90s (DARPA/NIST broadcast transcription challenges). Search for "speech/music segmentation" or "audio segmentation" and you'll find thousands of research papers. There are two broad approaches to solve this problem: Supervised classification Train a speech/music classifier, using a standard machine ...


14

What you want to do is called "Super Resolution" in the field of imaging. This is an ill posed problem. Hence in order to solve it you need some prior / model about your audio data. For example you may look at the model in Speech Super Resolution Using Parallel WaveNet.


11

So essentially, @porten pointed out what chunks of sound are. Let's look at your code: CHUNK = 1024 # What is CHUNKS here ? The chunk is like a buffer, so therefore each buffer will contain 1024 samples, which you can then either keep or throw away. We use CHUNKS of data, instead of a continuous amount of audio because of processing power. (Let's assume ...


9

While I don't know about tools for upsampling using AI, I am challenging the assumption that the main problem with your sample is lost high frequncies due to resampling from 44kHz to 22kHz, so "just" upsampling is unlikely to solve your root problem. The possibility of AI upsampling itself is sensible, though: While standard (mathematical) ...


7

Yes, it's possible to analyse sound the way ears do. For example, you could compute the DFT of a signal continuously using several Goertzel filters. $$ y_k[n] = e^{j2\pi k/N} y_k[n-1] + x[n] $$ where $k= 0,1,\ldots, N-1$, so that $y_0$ is the DC or zero frequency term. Of course, this is an unstable filter, so some resetting or forgetting factor is ...


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


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

What is intended to do with the loop for is to record a determined number of seconds. This number is specified by RECORD_SECONDS. In order to do it, it is necessary know how many samples we have to take. In your example RECORD_SECONDS = 5 , so we want to record 5 seconds. Also, the variable RATE says how many samples are taken per second. Its unit is Hz = ...


4

I am afraid there's not much you can do. The voice part seems to have gone through the equivalent of a low pass filter with a cut off of around 1000 Hz. Basically, all of the speech components above 1000Hz are gone. The filtering action may not have been an intentional filter, but may have been due to the improper biasing of the tape during recording. If ...


4

As pointed in some of the comments, there are several issues involved in your problem that you should consider to go for an optimal solution: Quality of the record system. Features of the microphone, filter of the preamps, etc. What is the frequency response of the system (mic + preamp + adc)? https://blog.faberacoustical.com/2009/ios/iphone/iphone-...


3

Here is a picture of me whistling into the FFT Spectrum Analyzer app on my android. Center-line is 1.2k Hz. Notice the overwhelming strength of the first harmonic. Also note that while there is a second harmonic, it is about 20 to 40 times weaker than the first harmonic.


3

Usually a data stream is broken up into chunks of data, where each chunk is some number of samples. In practice an analog to digital converter (ADC) has a buffer that you read data from it. So the buffer is also sometimes called a chunk of data. It's usually faster in practice to read many samples in a chunk, then process that chunk, instead of reading the ...


3

The noise sounds very stationary, so I guess spectral subtraction should work well. Note however that most implementations usually have quite a few parameters to tweak, and spectral subtraction can sound either very good or completely useless depending on whether the parameters are chosen well for the given problem. If you search for Matlab implementations ...


3

How we should go about from converting Google Text to Speech's m3 file to Justin Bieber's voice? Ask Mr. Bieber to repeat what your MP3 says. I think letting one speech synthesizer first speak something and then hoping to convert it is a bad approach (as you can see if you consider how complicated that would be – first, you need to recognize in some low-...


2

Dan Ellis has some neat Matlab scripts that allow you to pull audio features from files . . . http://labrosa.ee.columbia.edu/matlab/ The dynamic time warp might be a good starting point for the task you describe.


2

This is an addition to porten's answer. You are not exactly right with your description of rate. The rate is in Hertz, meaning in your case 44100 Hz - or 44100 samples per second. So you are basicly reading out that many digitized values from your device. So if you want to record 5 seconds, you will have to save $5\cdot 44100$ samples. Because, as porten ...


2

Are you being asked to write a simple vocoder? Your question is somewhat vague and confusing, but it seems like you are being asked to determine parameter thresholds for deciding when a speech frame is voiced (has fundamental periodic component and harmonics), unvoiced or frictional (noise generated), and silent (do not encode). It looks like you would ...


2

There is no (known) magic solution, as the sound of the same word from very different speakers are often not actually similar to one another in term of any simple characteristics such as you list (frequency range, intensity range, pitch, etc.) To often, humans can only guess at what word is said from an unknown speaker based on context. And you don't have ...


2

The a priori SNR is the ratio of the power of the clean signal and of the noise power. The a posteriori SNR is the ratio of the squared magnitude of the observed noisy signal and the noise power. Both SNRs are computed for each frequency bin. Of course, the only signal we have is the observed noisy signal. The noise power as well as the power of the clean ...


2

To give more variants to Aaron's answer, speech recognition pipeline has multiple stages where you can cut the line between client and server. There are the following variants: Lossless audio (flac) Lossy audio (speex 8kb/s) MFCC features (about 6.3kb/s bitrate) Compressed MFCC features ETSI distributed speech recognition standard, 4.4 kb/s bitrate Phonetic ...


2

Its probably safe to assume that all of the major companies send enough information to reconstruct the audio. This is because having that audio for training is such a valuable resource. A certain percentage of the audio segments will be listened to and transcribed by a human annotator. Also features in these systems are more complicated than MFCCs. You ...


2

The 1st mentioned tutorial https://medium.com/@jud.dagnall/dynamic-range-compression-for-audio-with-ffmpeg-and-compand-621fe2b1a892 is a great introduction and the filter documentation also adds a few examples. http://www.ffmpeg.org/ffmpeg-filters.html#toc-compand Its very dependent on situation if your set up for near field or far field but generally its ...


2

I just came across one article related to the compand command that might be useful (just in case someone looking for help sees this article). From the article: To test this, and my understanding of compand, I added a very simple filter to remove the quiet section of the audio by decreasing their volume dramatically: ffmpeg -i in.mp3 -filter_complex \ ...


2

Some recent ideas (2-3 years old, I haven't followed recently): Design an elaborate generative model of the spectrogram of music signals, combining a non-negative mixture of a small set of background frames (models the background music) + a harmonic comb filtered by a non-negative mixture of smooth basis functions (the source filter model of the lead ...


2

On file: noisy_00_41_718_to_01_04_287.wav, I tried spectral subtraction and then some high-pass filtering to taste. You can download the snippet here. There are definite artifacts, but I fear the source audio is too degraded. Noise aside, the speaker is very muffled and it is hard (esp. not speaking Schwiizertüütsch) to make out anything clearly. High pass ...


2

You can use Voice Activity Detector(VAD) for detecting the pauses in speech and there location(and duration). if your input signal is not very noisy and noise is not varying much you can use a fixed threshold on the energy(calculated for short frames, ex-20 ms), so if energy is above that threshold you declare that frame as speech else pause. if input signal ...


2

Let me put in an unconnected form things about audio codecs. Audio can be music or speech (discluding ultrasound, sonar etc). Music is wideband and requires high-fidelity. Speech has a lower bandwidth and does not require fidelity but intelligibility. A Codec can be lossy or lossless, the choice depends on the source type, the purpose of application and ...


2

I know some audio software that does a good job: Audacity (free software) - effect -> change pitch (set the pitch to down, lower down the semi-tones and the percent change) Adobe Audition (paid software) - there is a plugin called pitch shifter (lower down a little bit the semi-tones and cents) Both are audio software which means you will need to export ...


2

Given MFCC values for some wav’s, how can I easily tell if all speakers are the same? In general, you would deal with this kind of problem using some form of Clustering. The fundamental premise behind this idea is that the features of similar data items would have similar values. How you assess similarity, how you assess "a cluster" and what this means ...


2

You can increase the sampling rate, instead of the signal $x(nT_s) = x(n/F_s)$, you can play it at say $\frac{11}{10}F_s, \frac{12}{10}F_s, \text{or}\ 2F_s$. So you have: \begin{align} x\left(\frac{n}{\frac{11}{10}F_s}\right) &=x\left(\frac{10n}{11F_s}\right) = x\left(n\frac{10}{11}T_s\right)\\ x\left(\frac{n}{\frac{12}{10}F_s}\right) &=x\left(\frac{...


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