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,7 +75,7 @@ private:
75 void executeJuliusEngine(); 75 void executeJuliusEngine();
76 void filterOutputJulius(); 76 void filterOutputJulius();
77 void generateConfidence(); 77 void generateConfidence();
78 - void notifyListeners(char* text); 78 + void notifyListeners(char* text, int64_t pts);
79 void notifyEndExtraction(int sentences_size); 79 void notifyEndExtraction(int sentences_size);
80 80
81 void cleanFiles(); 81 void cleanFiles();
recognize/src/recognize.cpp
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
32 #define FIND_SENTENCE "\"sentence1:\"" 32 #define FIND_SENTENCE "\"sentence1:\""
33 33
34 #define FILENAME_AUDIOPART "audio00" 34 #define FILENAME_AUDIOPART "audio00"
  35 +#define AUDIO_SILENT "<input rejected by short input>"
35 36
36 #define PROGRAM "ffmpeg" // ffmpeg 37 #define PROGRAM "ffmpeg" // ffmpeg
37 #define PTS_PATTERN 1000 38 #define PTS_PATTERN 1000
@@ -121,7 +122,7 @@ void Recognize::Run(){ @@ -121,7 +122,7 @@ void Recognize::Run(){
121 cleanFiles(); 122 cleanFiles();
122 123
123 finished = true; 124 finished = true;
124 - notifyEndExtraction(count_lines-1); 125 + notifyEndExtraction(count_lines);
125 } 126 }
126 127
127 void Recognize::setFrequency(int freq) { 128 void Recognize::setFrequency(int freq) {
@@ -343,8 +344,8 @@ void Recognize::filterOutputJulius() { @@ -343,8 +344,8 @@ void Recognize::filterOutputJulius() {
343 sentences = new std::list<char*>(); 344 sentences = new std::list<char*>();
344 345
345 string command = "cat "; 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 system(command.c_str()); 350 system(command.c_str());
350 //printf("\n\n---> command: %s\n\n", command.c_str()); 351 //printf("\n\n---> command: %s\n\n", command.c_str());
@@ -365,17 +366,20 @@ void Recognize::filterOutputJulius() { @@ -365,17 +366,20 @@ void Recognize::filterOutputJulius() {
365 do { 366 do {
366 getline(in, line); 367 getline(in, line);
367 if (line.length() > 0) { 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 } while (!in.eof()); 383 } while (!in.eof());
380 in.close(); 384 in.close();
381 } 385 }
@@ -386,15 +390,12 @@ void Recognize::filterOutputJulius() { @@ -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 //cout << "NOTIFY: " << text << endl; 394 //cout << "NOTIFY: " << text << endl;
391 395
392 - int64_t pts_run = pts.front();  
393 for(list<RecognizeListener*>::iterator it = listeners->begin(); it != listeners->end(); it++){ 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