Commit 453689cc1c2dcafa61b1a32feefc6f29e1f3bcfb

Authored by Erickson Silva
1 parent ccc268c5
Exists in master and in 2 other branches api, devel

Correção da sincronização do Recognizer.

recognize/src/include/recognize.h
... ... @@ -75,7 +75,7 @@ private:
75 75 void executeJuliusEngine();
76 76 void filterOutputJulius();
77 77 void generateConfidence();
78   - void notifyListeners(char* text);
  78 + void notifyListeners(char* text, int64_t pts);
79 79 void notifyEndExtraction(int sentences_size);
80 80  
81 81 void cleanFiles();
... ...
recognize/src/recognize.cpp
... ... @@ -32,6 +32,7 @@
32 32 #define FIND_SENTENCE "\"sentence1:\""
33 33  
34 34 #define FILENAME_AUDIOPART "audio00"
  35 +#define AUDIO_SILENT "<input rejected by short input>"
35 36  
36 37 #define PROGRAM "ffmpeg" // ffmpeg
37 38 #define PTS_PATTERN 1000
... ... @@ -121,7 +122,7 @@ void Recognize::Run(){
121 122 cleanFiles();
122 123  
123 124 finished = true;
124   - notifyEndExtraction(count_lines-1);
  125 + notifyEndExtraction(count_lines);
125 126 }
126 127  
127 128 void Recognize::setFrequency(int freq) {
... ... @@ -343,8 +344,8 @@ void Recognize::filterOutputJulius() {
343 344 sentences = new std::list<char*>();
344 345  
345 346 string command = "cat ";
346   - command.append(PATH_GTAAAS_WEB).append(id).append(FILENAME_RECOGNIZED_OUT).append(" | grep ").
347   - append(FIND_SENTENCE).append(" >> ").append(PATH_GTAAAS_WEB).append(id).append(FILENAME_FILTEROUT);
  347 + command.append(PATH_GTAAAS_WEB).append(id).append(FILENAME_RECOGNIZED_OUT).append(" | grep -e ").
  348 + append(FIND_SENTENCE).append(" -e \"").append(AUDIO_SILENT).append("\"").append(" >> ").append(PATH_GTAAAS_WEB).append(id).append(FILENAME_FILTEROUT);
348 349  
349 350 system(command.c_str());
350 351 //printf("\n\n---> command: %s\n\n", command.c_str());
... ... @@ -365,17 +366,20 @@ void Recognize::filterOutputJulius() {
365 366 do {
366 367 getline(in, line);
367 368 if (line.length() > 0) {
368   - sizeLine = (int)line.length();
369   - strFilter = line.substr(strlen(FIND_SENTENCE), sizeLine);
370   - sentence_ptr = new char[strFilter.length()+1];
371   - strcpy(sentence_ptr, (char*) strFilter.c_str());
372   - if(getConfidence())
373   - notifyListeners(sentence_ptr);
374   - else
375   - notifyListeners((char*) "SENTENCA_COM_BAIXA_QUALIDADE");
376   - scores.erase(scores.begin());
  369 + if (line != AUDIO_SILENT){
  370 + sizeLine = (int)line.length();
  371 + strFilter = line.substr(strlen(FIND_SENTENCE), sizeLine);
  372 + sentence_ptr = new char[strFilter.length()+1];
  373 + strcpy(sentence_ptr, (char*) strFilter.c_str());
  374 + if(getConfidence())
  375 + notifyListeners(sentence_ptr, pts.front());
  376 + else
  377 + notifyListeners((char*) "SENTENCA_COM_BAIXA_QUALIDADE", pts.front());
  378 + scores.erase(scores.begin());
  379 + count_lines++;
  380 + }
  381 + pts.erase(pts.begin());
377 382 }
378   - count_lines++;
379 383 } while (!in.eof());
380 384 in.close();
381 385 }
... ... @@ -386,15 +390,12 @@ void Recognize::filterOutputJulius() {
386 390 }
387 391  
388 392  
389   -void Recognize::notifyListeners(char* text) {
  393 +void Recognize::notifyListeners(char* text, int64_t pts) {
390 394 //cout << "NOTIFY: " << text << endl;
391 395  
392   - int64_t pts_run = pts.front();
393 396 for(list<RecognizeListener*>::iterator it = listeners->begin(); it != listeners->end(); it++){
394   - (*it)->notifyTextRecognized((unsigned char*) text, calcula_pts(pts_run));
395   -
  397 + (*it)->notifyTextRecognized((unsigned char*) text, calcula_pts(pts));
396 398 }
397   - pts.erase(pts.begin());
398 399  
399 400 }
400 401  
... ...