tweaks to speech tools to score differently for pocketsphinx

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9003 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Brian West 2008-07-12 15:41:04 +00:00
parent 060d86c029
commit ebb35b5d97
2 changed files with 35 additions and 17 deletions

View File

@ -63,7 +63,7 @@ function SpeechDetect(session, mod, ip) {
this.AutoUnload = false;
this.debug = false;
/* Set the TTS info*/
/* Set the TTS info */
this.setTTS = function (tts_eng, tts_voice) {
this.tts_eng = tts_eng;
this.tts_voice = tts_voice;
@ -79,7 +79,7 @@ function SpeechDetect(session, mod, ip) {
this.audio_ext = audio_ext;
}
/* Add a grammar to be used*/
/* Add a grammar to be used */
this.addGrammar = function(grammar_object) {
this.grammar_hash[grammar_object.grammar_name] = grammar_object;
}
@ -180,18 +180,36 @@ function SpeechDetect(session, mod, ip) {
console_log("debug", "----Heard [" + interp.input + "]\n");
console_log("debug", "----Hit score " + interp.@score + "/" + grammar_object.min_score + "/" + grammar_object.confirm_score + "\n");
}
if (interp.@score >= grammar_object.min_score) {
if (interp.@score < grammar_object.confirm_score) {
rv.push("_confirm_");
}
eval("xo = interp." + grammar_object.obj_path + ";");
for (x = 0; x < xo.length(); x++) {
rv.push(xo[x]);
if (this.mod == "pocketsphinx") {
/* pocketsphinx scores 0 best to 100 worst. */
if (interp.@score >= grammar_object.min_score) {
if (interp.@score >= grammar_object.confirm_score) {
rv.push("_confirm_");
}
eval("xo = interp." + grammar_object.obj_path + ";");
for (x = 0; x < xo.length(); x++) {
rv.push(xo[x]);
console_log("info", "----" +xo[x] + "\n");
}
} else {
rv.push("_no_idea_");
}
} else {
rv.push("_no_idea_");
if (interp.@score >= grammar_object.min_score) {
if (interp.@score < grammar_object.confirm_score) {
rv.push("_confirm_");
}
eval("xo = interp." + grammar_object.obj_path + ";");
for (x = 0; x < xo.length(); x++) {
rv.push(xo[x]);
console_log("info", "----" +xo[x] + "\n");
}
} else {
rv.push("_no_idea_");
}
}
delete interp;
@ -234,7 +252,7 @@ function SpeechObtainer(asr, req, wait_time) {
this.waitTime = wait_time + 0;
/* Set the TTS info*/
/* Set the TTS info */
this.setTTS = function (tts_eng, tts_voice) {
this.tts_eng = tts_eng;
this.tts_voice = tts_voice;
@ -277,7 +295,7 @@ function SpeechObtainer(asr, req, wait_time) {
this.add_sound = add_sound;
}
/* Add acceptable items (comma sep list)*/
/* Add acceptable items (comma sep list) */
this.addItem = function(item) {
ia = item.split(",");
var x;

View File

@ -33,8 +33,8 @@ include("js_modules/SpeechTools.jm");
function on_dtmf(a, b, c) {}
var dft_min = 10;
var dft_confirm = 50;
var dft_min = 0;
var dft_confirm = 78;
/***************** Initialize The Speech Detector *****************/
var asr = new SpeechDetect(session, "pocketsphinx");
@ -130,7 +130,7 @@ pizza.toppingsObtainer.addItemAlias("ham", "ham");
/***************** Change Delivery Or Size Or Crust, Add/Rem Toppings Or Start Over *****************/
pizza.arsoObtainer = new SpeechObtainer(asr, 1, 5000);
pizza.arsoObtainer.setGrammar("pizza_arso", "", "result", dft_min, dft_confirm, true);
pizza.arsoObtainer.setGrammar("pizza_arso", "", "result", dft_min, 50, true);
pizza.arsoObtainer.setTopSound("GP-ARSO");
pizza.arsoObtainer.setBadSound("GP-NI");
pizza.arsoObtainer.addItemAlias("^delivery$", "delivery");
@ -142,7 +142,7 @@ pizza.arsoObtainer.addItemAlias("^remove\\s*", "rem_topping");
/***************** Yes? No? Maybe So? *****************/
pizza.yesnoObtainer = new SpeechObtainer(asr, 1, 5000);
pizza.yesnoObtainer.setGrammar("pizza_yesno", "", "result", dft_min, dft_confirm, true);
pizza.yesnoObtainer.setGrammar("pizza_yesno", "", "result", dft_min, 40, true);
pizza.yesnoObtainer.setBadSound("GP-NI");
pizza.yesnoObtainer.addItemAlias("^yes,^correct", "yes");
pizza.yesnoObtainer.addItemAlias("^no", "no");