Partial voice recognition

I am currently very familiar with voice recognition using the Microsoft Speech Engine. It is fairly easy to configure and use with C # and allows you to achieve great results with fewer lines of code than I imagined.

Now the thing is, I really donโ€™t know how to deal with this: I understand that the engine should start listening, then you say a word or sentence, and it compares in its dictionary to see if it can see a match. If so, the program does everything you want.

What I am combing is that I would like the engine to โ€œdetectโ€ the words contained in its dictionary in a complete random phrase containing one or all of these words.

For example, suppose a dictionary has the following words: - "Read" - "News"

I would like to encode something to detect these specific words whenever I say, for example: - "Read the news" - "You can read the news" - "Read the news" ...

How can i achieve this?

+4
source share
1 answer

This functionality is called Keyword Definition. Typically, you cannot perform keyword definition using the speech recognition engine; you need a specific definition package. The main problem is that the engine must constantly compare two results: the word found and the word not found. Speech recognition only searches for words that are in the grammar, and does not take into account other sounds. Spotting just requires a different algorithm.

There is a workaround that allows you to add many possible syllables or other sounds to the speech recognition grammar and hope that the engine will find them instead of the keyword, but this is not a very good solution in terms of accuracy compared to a specific keyword scanner.

If you are not closely tied to the Microsoft engine, and you need a common language, such as English or French, you can implement keywords using open source speech recognition software such as CMUSphinx .

+6
source

Source: https://habr.com/ru/post/1438948/


All Articles