Speech Recognition Engines

Flat
Limiting the match threshold with Julius
User: RainCT
Date: 6/19/2009 3:36 pm
Views: 4737
Rating: 7

Hey,

Maybe it's a bit off topic here but I wanted to ask if someone know how to limit the match threshold with Julius.

I have improved the music player control application I include as an example in Ubuntu's julius-voxforge package (and added support for Banshee to it) but there's a problem that has bugging me since I first wrote it: that it responds always it hears something; eg., I may speak something out loud or even just hit against the table and there's a big chance that it will execute a random command.

All recognized commands are prefixed with the word "computer" so I'd like to have Julius reject input where this first word isn't clear.

Thanks in advance for any help!

--- (Edited on 6/19/2009 3:36 pm [GMT-0500] by RainCT) ---

Re: Limiting the match threshold with Julius
User: kmaclean
Date: 6/22/2009 11:26 am
Views: 189
Rating: 6

Hi RainCT,

> how to limit the match threshold with Julius.

This was discussed a bit here: One word grammar, always recognized? (my second post).  From that post:

It seems like Julian returns the best fit for whatever grammar you have, and if you have a one word grammar that means returning that single word every time.

[...]

 

As a workaround, you might try creating a grammar with a few Out-of-Vocabulary words, in addition to the word you want to recognize, and then use your application to determine if your target word gets recognized.

Ken

--- (Edited on 6/22/2009 12:26 pm [GMT-0400] by kmaclean) ---

Re: Limiting the match threshold with Julius
User: kmaclean
Date: 6/25/2009 10:41 am
Views: 1889
Rating: 7

>then use your application to determine if your target word gets recognized.

An example of this approach can be found here: Querying a database using open source voice control software by Colin Beckingham.  From the article:

Dialog manager

The kernel of information we need here is in the line that begins with "sentence1:". We can throw away all other sentences unless we are in debugging mode or need to test scores. It is the job of the dialog manager to find that sentence, strip off the junk at the beginning and end, and leave us with "COMPUTER WAKE," which is a string that it can handle. Here is the introduction to a simple PHP dialog manager:


#!/usr/local/bin/php -q
<?php
$awake = false;
$myloop = true;
$in = defined('STDIN') ? STDIN : fopen('php://stdin' , 'r');
while ($myloop) { // infinite loop
$line = fgets($in,1024);
if (substr($line,0,8) == 'sentence') {
$sent = substr($line,15,-5);
$ok = more_stuff($sent);
}
}
?>


--- (Edited on 6/25/2009 11:41 am [GMT-0400] by kmaclean) ---

PreviousNext