2
$\begingroup$

I need to develop an app which makes speech recognition. Because I need to be able to constantly improve the recognition capability, I would like to train the engine with real recordings and match the recognized text with the expected text.

To generate the expected text, I would need to listen to the recording, understand what the talker says and manually write the "expected text". To preserve the talker's identity for privacy reasons, I would make available for listening a distorted version of the original audio file, while using the original one for real recognition to improve the system.

From the signal processing point of view, what would be a good flow for this task?

$\endgroup$
1
  • $\begingroup$ This is a gigantic task. You don't want to train your own voice recognition engine. That would taken hundreds of thousands of voice snippets to do reliably and generalizibly, just for one language. There's literally 50 years of experience in the state of the art, even if successful voice recognition algorithms are based on "modern" methods like DNNs. Use a library that someone else wrote. $\endgroup$ Commented May 30, 2019 at 15:14

1 Answer 1

1
$\begingroup$

To preserve the talker's identity for privacy reasons, I would make available for listening a distorted version of the original audio file, while using the original one for real recognition to improve the system.

This won't work.

The point is that the whole job of your speech recognition algorithm is to figure out which "components" in your audio signal are of significance, and what they mean, and to ignore things that are irrelevant to the textual content, namely identity of the speaker.

By wanting an algorithm that removes a dominant aspect of the signal but preserves the original speech content, you'd first need to have an algorithm able to tell the content-wise important components from the unimportant. That would be the major part of your speech recognition algorithm, which is exactly what you wanted to build in the first place.

Generally, this sounds like you want to do something that other companies literally spent several millions on with a small team and little experience. I'm afraid that's not really a promising approach.

$\endgroup$
1
  • $\begingroup$ sorry, maybe I didn't explain clearly enough: what I want to achieve is to build the system able to recognize speech and take according actions. If the app is not able to recognize some dialog, the app should upload the recorded audio and recognized text, then it would be great if someone could listen to the speech and try to analyze what went wrong. Maybe it would be possible to improve recognition by (let me say) adding more words to the dictionary or taking other actions. To decide what to do, I would just need to hear the dialog... $\endgroup$
    – Ivano85
    Commented May 30, 2019 at 16:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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