2
$\begingroup$

I have telephone audio at 16kHz and I am trying to use it with a speech transcription engine that converts spoken letters to text. However, the engine has some difficulty transcribing certain letters such as "p" and "t" due to the low quality of the audio.

This is being used in a real time application so although I would like the user to speak clearly, into the microphone in a quiet environment, this won't often be the case. The transcription engine has its own background noise removal however it isn't trained on telephone audio.

In light of my ignorance, I was hoping someone could make some suggestions on how to artificially "improve" the quality of the audio. I know this is vague but I would like to try and make the speech in the audio more discernable and experiment with the transcription engine.

Can I try and remove the static sound? Is it possible to "amplify signals" that are unique to a certain letter?

Thanks

$\endgroup$
  • 1
    $\begingroup$ is 16kHz the sampling frequency or the total bandwidth of the signal? Do you how the audio signal is encoded (samples per second and bits per sample)? Do you have additional info about the speech transcription engine? If the signal bandwidth is too large, you may filter out some noise. $\endgroup$ – vaz Feb 26 at 10:15
  • $\begingroup$ check youtube for audio noise reduction i.e. with audacity which is free, and which uses a noise profile of background from a silent moment, and has lots of settings. $\endgroup$ – com.prehensible Mar 1 at 8:14
1
$\begingroup$

The transcription engine has its own background noise removal however it isn't trained on telephone audio.

There are many engines which are trained on bad quality audio and which perform just right.

It is pretty hopeless to repair the quality when it is already lost, it is better to find an accurate engine.

$\endgroup$
  • $\begingroup$ the engine has to be trained to do what our ears (and brain) do. i have some hearing loss, which is sometimes embarrassing because i will mishear the consonant in initial onset of a word (or someone, usually of an Asian origin, will mispronounce the initial onset of the word; the classic "L" vs. "R" thing) and my brain will do template matching with the rest of the word and will sometimes stumble upon the wrong word. $\endgroup$ – robert bristow-johnson Aug 27 at 19:09
0
$\begingroup$

In this case I would try to implement a Wiener-Filter based on the statistical properties of the samples you know are speechless. You can detect speechless samples by using a voice-activity-detection like G.729.

An other approach would be to band-mute the noise in the frequency-spectra, which is pretty effective for colored noise.

$\endgroup$
0
$\begingroup$

Can you provide more details about the context? What speech recognition system are you using? Can you add code to it? What type of background noise?

A simple approach would be to add a pre-emphasis filter. A better approach would be to add a second microphone to capture background noise and then remove it.

$\endgroup$
0
$\begingroup$

Try a basic pre-emphasis filter, as suggested, boosting the mid-to-high frequencies of the speech signal. This may work depending on the spectro-temporal characteristics of the noise.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.