From 8ba2703895d7fe2cf3ac3554fdb5c13f75e30411 Mon Sep 17 00:00:00 2001 From: Benoit Favre <benoit.favre@lif.univ-mrs.fr> Date: Tue, 19 May 2015 07:06:53 +0200 Subject: [PATCH] update slu and fix missing actions --- .../automate/simple-example_dico_action.txt | 21 +++++++-------- .../automate/simple-example_section1.fst | Bin 854 -> 854 bytes .../automate/simple-example_section1.txt | 22 ++++++++-------- .../automate/simple-example_section2.fst | Bin 574 -> 574 bytes .../automate/simple-example_section2.txt | 12 ++++----- asr/tools/slu/src/process_xml_for_slu | Bin 18008 -> 18008 bytes asr/tools/slu/src/process_xml_for_slu.c | 24 +++++++++--------- main.py | 18 ++++++++----- xmlview.py | 1 + 9 files changed, 52 insertions(+), 46 deletions(-) diff --git a/asr/models/simple-example/automate/simple-example_dico_action.txt b/asr/models/simple-example/automate/simple-example_dico_action.txt index 9d03b9d..911ee7e 100644 --- a/asr/models/simple-example/automate/simple-example_dico_action.txt +++ b/asr/models/simple-example/automate/simple-example_dico_action.txt @@ -2,15 +2,16 @@ <joker> 1 change_section(1,"example1","go_to_section_one") 2 change_section(0,"example2","exit_section") 3 -action(1,1,0,"example1","futures") 4 -action(1,1,1,"example2","hidden_in_details") 5 -action(1,1,2,"him","the_architect") 6 -action(1,1,3,"action3","tossed_over") 7 -action(1,1,4,"#ENDSEQUENCE(1)","") 8 -action(1,1,4,"#ENDSECTION(1)","") 9 -change_section(0,"close","") 10 +change_section(0,"example2","") 4 +action(1,1,0,"example1","futures") 5 +action(1,1,1,"example2","hidden_in_details") 6 +action(1,1,2,"him","the_architect") 7 +action(1,1,3,"action3","tossed_over") 8 +action(1,1,4,"#ENDSEQUENCE(1)","") 9 +action(1,1,4,"#ENDSECTION(1)","") 10 change_section(2,"example3","open_section_two") 11 change_section(0,"example4","exit_section") 12 -action(2,1,4,"action4","life") 13 -action(2,1,5,"#ENDSEQUENCE(1)","") 14 -action(2,1,6,"#ENDSECTION(2)","") 15 +change_section(0,"example4","") 13 +action(2,1,4,"action4","life") 14 +action(2,1,5,"#ENDSEQUENCE(1)","") 15 +action(2,1,6,"#ENDSECTION(2)","") 16 diff --git a/asr/models/simple-example/automate/simple-example_section1.fst b/asr/models/simple-example/automate/simple-example_section1.fst index 2478b3e6e948d9b3b107da9a7004c71e89674c01..32673adcfb28b250bf1ba2ad1c98707922ab701a 100644 GIT binary patch delta 136 zcmcb{c8zU9kS!|%1TZo%Fn}<Gf5HjGW?*QjXNE{Ka4;}1utC{OP_=9m`-=tHp@JZd vAWiI(g&ExiLCQfAAX$(o$K-5A_sRDdIVSI7RAJ<re4kO9k!3SClQ$y(XVnhF delta 134 zcmcb{c8zU9kSz-X1TZo%Fn}<Gf5HjGW?*QjXNE{Ka4;}1utM2PP_?WR`-=tHpn@Pt rkS4at!i?^M>`+k<4H9LaoXzOY$T4{{qc$Vw<ok@;j9i<!nY<YRHVzF> diff --git a/asr/models/simple-example/automate/simple-example_section1.txt b/asr/models/simple-example/automate/simple-example_section1.txt index 4274939..2064e77 100644 --- a/asr/models/simple-example/automate/simple-example_section1.txt +++ b/asr/models/simple-example/automate/simple-example_section1.txt @@ -1,22 +1,22 @@ -0 1 futures 4 0 +0 1 futures 5 0 1 100 -0 1 <joker> 4 100 -1 2 hidden 5 0 +0 1 <joker> 5 100 +1 2 hidden 6 0 2 3 in 0 0 2 3 <epsilon> 0 10 3 4 details 0 0 4 100 -1 4 <joker> 5 100 -4 5 the 6 0 +1 4 <joker> 6 100 +4 5 the 7 0 5 6 architect 0 0 6 100 -4 6 <joker> 6 100 -6 7 tossed 7 0 +4 6 <joker> 7 100 +6 7 tossed 8 0 7 8 over 0 0 8 100 -6 8 <joker> 7 100 -8 9 <epsilon> 8 0 +6 8 <joker> 8 100 +8 9 <epsilon> 9 0 9 100 -9 10 <epsilon> 9 0 -10 11 <epsilon> 10 0 +9 10 <epsilon> 10 0 +10 11 <epsilon> 4 0 11 diff --git a/asr/models/simple-example/automate/simple-example_section2.fst b/asr/models/simple-example/automate/simple-example_section2.fst index 1b8663365d32aeb7a911e95b1156aca0ffe09c44..a18c933e1fcb950472d67483cbe1696416e0643f 100644 GIT binary patch delta 71 zcmdnTvX5m#kS-Sk1TccBhI%G2&A=eYz`(!<WrM^(@_ZBPr5X7r&emoWn0Q>9k$2-~ GZ$<zn_zCm? delta 71 zcmdnTvX5m#kS-?!1TccBhI%G2&A=eYz`(!@WrM^(^1Ku4r5X7q&emq+pLkrGk!#~; GZ$<znSPAR^ diff --git a/asr/models/simple-example/automate/simple-example_section2.txt b/asr/models/simple-example/automate/simple-example_section2.txt index b17ea96..c246a30 100644 --- a/asr/models/simple-example/automate/simple-example_section2.txt +++ b/asr/models/simple-example/automate/simple-example_section2.txt @@ -1,9 +1,9 @@ -0 1 <epsilon> 9 0 -1 2 life 13 0 +0 1 <epsilon> 10 0 +1 2 life 14 0 2 100 -1 2 <joker> 13 100 -2 3 <epsilon> 14 0 +1 2 <joker> 14 100 +2 3 <epsilon> 15 0 3 100 -3 4 <epsilon> 15 0 -4 5 <epsilon> 10 0 +3 4 <epsilon> 16 0 +4 5 <epsilon> 13 0 5 diff --git a/asr/tools/slu/src/process_xml_for_slu b/asr/tools/slu/src/process_xml_for_slu index 93feb1c7b38052d4db2ce03dfa989936eb23c156..2dff49a4f5a71069fa1e07043eeb6a368d6a8016 100755 GIT binary patch delta 5179 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 delta 5103 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 diff --git a/asr/tools/slu/src/process_xml_for_slu.c b/asr/tools/slu/src/process_xml_for_slu.c index dc919f0..d8c639e 100644 --- a/asr/tools/slu/src/process_xml_for_slu.c +++ b/asr/tools/slu/src/process_xml_for_slu.c @@ -91,10 +91,12 @@ char *get_field(char *ch, char *attribut, char *chfield) { int i,j; chfield[0]='\0'; -for(i=0;(ch[i])&&((ch[i]!=' ')||(strncmp(ch+i+1,attribut,strlen(attribut)))||(ch[i+1+strlen(attribut)]!='='));i++); +for(i=0;(ch[i])&&((ch[i]!=' ')||(strncmp(ch+i+1,attribut,strlen(attribut)))||((ch[i+1+strlen(attribut)]!='=')&&(ch[i+1+strlen(attribut)]!=' ')));i++); if (ch[i]) { - for(j=0,i=i+1+strlen(attribut)+2;(ch[i])&&(ch[i]!='"');i++,j++) chfield[j]=ch[i]; + for(i+=1+strlen(attribut);(ch[i])&&(ch[i]!='=');i++); if (!ch[i]) ERREUR("bad format in :",ch); + for(++i;(ch[i])&&(ch[i]!='"');i++); if (!ch[i]) ERREUR("bad format in :",ch); + for(j=0,i++;(ch[i])&&(ch[i]!='"');i++,j++) chfield[j]=ch[i]; if (ch[i]!='"') ERREUR("bad format1:",ch); chfield[j]='\0'; } @@ -128,7 +130,8 @@ for(i=0;ch[i];i++) if (ch[i]==' ') ch[i]='_'; int main(int argc, char **argv) { -int nbsection,i,j,k,nb,ordre,repetition,nbseq,actionsection,actionsequence,currentstate,statedebseq,action,findend,t_end[MAX_END_STATE],nbend,idac,actionfinsection,currentstatevoid; +int nbsection,i,j,k,nb,ordre,repetition,nbseq,actionsection,actionsequence,currentstate,statedebseq,action,findend,t_end[MAX_END_STATE],nbend,idac, + actionfinsection,actionfinsectionimplicit,currentstatevoid; FILE *file,*filevoid,*fileexit; char *pt,ch[TailleLigne],*t_field[MAX_FIELD],*chprefix,chname[TailleLigne],chfield[TailleLigne],chcontent[TailleLigne],ch2[TailleLigne]; @@ -156,7 +159,7 @@ if (!(filevoid=fopen(ch,"wt"))) ERREUR("can't write in:",ch); fprintf(filevoid,"0\n"); currentstatevoid=0; -ordre=STRICT; repetition=False; file=NULL; actionsection=0; findend=False; nbend=0; nbseq=0; actionfinsection=0; +ordre=STRICT; repetition=False; file=NULL; actionsection=0; findend=False; nbend=0; nbseq=0; actionfinsection=actionfinsectionimplicit=0; for(idac=nbsection=0;fgets(ch,TailleLigne,stdin);) { if (strstr(ch,"<section")) @@ -172,11 +175,10 @@ for(idac=nbsection=0;fgets(ch,TailleLigne,stdin);) { sprintf(chcontent,"action(%d,%d,%d,\"#ENDSEQUENCE(%d)\",\"\")",nbsection,nbseq,idac,nbseq); actionsequence=from_action_to_index(chcontent); sprintf(chcontent,"action(%d,%d,%d,\"#ENDSECTION(%d)\",\"\")",nbsection,nbseq,idac,nbsection); actionsection=from_action_to_index(chcontent); - sprintf(chcontent,"change_section(0,\"close\",\"\")"); actionfinsection=from_action_to_index(chcontent); for(i=0;i<nbend;i++) fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",t_end[i],currentstate+1,actionsequence); fprintf(file,"%d\t%d\n",currentstate+1,PENALEND); /* in order to quit on ANY action */ fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",currentstate+1,currentstate+2,actionsection); - fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",currentstate+2,currentstate+3,actionfinsection); + fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",currentstate+2,currentstate+3,actionfinsectionimplicit); fprintf(file,"%d\n",currentstate+3); currentstate+=2; nbend=0; @@ -185,7 +187,7 @@ for(idac=nbsection=0;fgets(ch,TailleLigne,stdin);) } nbseq=0; currentstate=0; //idac=0; get_field(ch,"id",chfield); - if (sscanf(chfield,"%d",&nbsection)!=1) ERREUR("bad value:",chfield); + if (sscanf(chfield,"%d",&nbsection)!=1) ERREUR("bad value:",ch); sprintf(ch2,"%s_section%s.txt",chprefix,chfield); if (!(file=fopen(ch2,"wt"))) ERREUR("can't write in:",ch2); /* we look for the "start" field */ @@ -208,9 +210,8 @@ for(idac=nbsection=0;fgets(ch,TailleLigne,stdin);) if (!(fileexit=fopen(ch2,"wt"))) ERREUR("can't write in:",ch2); get_field(ch,"action_end",chfield); if (!chfield[0]) { fprintf(stderr,"ERREUR: no action_end field in section: %d\n",nbsection); exit(0); } get_field(ch,"end",chcontent); if (!chcontent[0]) { fprintf(stderr,"ERREUR: no end field in section: %d\n",nbsection); exit(0); } - sprintf(ch2,"change_section(0,\"%s\",\"%s\")",chfield,chcontent); - remove_space(ch2); - actionfinsection=from_action_to_index(ch2); + sprintf(ch2,"change_section(0,\"%s\",\"%s\")",chfield,chcontent); remove_space(ch2); actionfinsection=from_action_to_index(ch2); + sprintf(ch2,"change_section(0,\"%s\",\"\")",chfield); remove_space(ch2); actionfinsectionimplicit=from_action_to_index(ch2); for(i=1,t_field[0]=strtok(chcontent," ");t_field[i-1];i++) t_field[i]=strtok(NULL," "); for(i=0;t_field[i];i++) { @@ -299,11 +300,10 @@ if ((file)&&(nbseq>0)) { sprintf(chcontent,"action(%d,%d,%d,\"#ENDSEQUENCE(%d)\",\"\")",nbsection,nbseq,idac++,nbseq); actionsequence=from_action_to_index(chcontent); sprintf(chcontent,"action(%d,%d,%d,\"#ENDSECTION(%d)\",\"\")",nbsection,nbseq,idac++,nbsection); actionsection=from_action_to_index(chcontent); - sprintf(chcontent,"change_section(0,\"close\",\"\")"); actionfinsection=from_action_to_index(chcontent); for(i=0;i<nbend;i++) fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",t_end[i],currentstate+1,actionsequence); fprintf(file,"%d\t%d\n",currentstate+1,PENALEND); /* in order to quit on ANY action */ fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",currentstate+1,currentstate+2,actionsection); - fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",currentstate+2,currentstate+3,actionfinsection); + fprintf(file,"%d\t%d\t<epsilon>\t%d\t0\n",currentstate+2,currentstate+3,actionfinsectionimplicit); fprintf(file,"%d\n",currentstate+3); } } diff --git a/main.py b/main.py index e9bc4e3..ce64ed7 100644 --- a/main.py +++ b/main.py @@ -55,9 +55,9 @@ class ScriptedASR(Gtk.Window): vbox.pack_start(self.asr, False, True, 5) # slu - #self.fake_asr = Gtk.Entry() - #self.fake_asr.connect('key-press-event', self.simulate_asr) - #vbox.pack_start(self.fake_asr, False, True, 5) + self.fake_asr = Gtk.Entry() + self.fake_asr.connect('key-press-event', self.simulate_asr) + vbox.pack_start(self.fake_asr, False, True, 5) slu_prefix = config_dict['slu_prefix'] slu_actions = config_dict['slu_actions'] @@ -136,10 +136,10 @@ class ScriptedASR(Gtk.Window): def set_section(self, section_id): self.xmlview.set_section(section_id) - #def simulate_asr(self, widget, event): - # if event.keyval == Gdk.KEY_Return: - # text = widget.get_text() - # print 'foo', text + def simulate_asr(self, widget, event): + if event.keyval == Gdk.KEY_Return: + text = widget.get_text() + self.hyp_changed([text.strip()]) def slu_finished(self, model, slu_output): #slu_output = str(slu_output) @@ -150,6 +150,9 @@ class ScriptedASR(Gtk.Window): #for action_id in range(0, len(self.slu_actions)): for action_id in range(len(self.kept_actions), len(self.slu_actions)): + if action_id > len(self.slu_actions) - 1: + print "WARNING: spurious action", action_id + continue print 'NEW ACTION:', action_id, self.slu_actions[action_id] action = actions.parse_slu_action(self.slu_actions[action_id]) if action.name.startswith('#ENDSEQUENCE('): @@ -172,6 +175,7 @@ class ScriptedASR(Gtk.Window): self.kept_actions = [] if new_section in self.slu: self.slu[new_section].reset_slu() + actions.perform_action(action, False) else: actions.perform_action(action, False) self.kept_history = self.slu_output diff --git a/xmlview.py b/xmlview.py index 2a32cc3..89ccdb3 100644 --- a/xmlview.py +++ b/xmlview.py @@ -144,6 +144,7 @@ class Keyword(Gtk.Label): def set_num(self, num): self.num = num + #self.set_markup(self.text + ' [<a href="%s">%s (%d)</a>] ' % (self.action, self.action, self.num)) def link_clicked(self, widget, uri): actions.perform_action(actions.Action(uri, keyword=widget), False) -- GitLab