Commit 453689cc1c2dcafa61b1a32feefc6f29e1f3bcfb
1 parent
ccc268c5
Exists in
master
and in
2 other branches
Correção da sincronização do Recognizer.
Showing
2 changed files
with
20 additions
and
19 deletions
Show diff stats
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 | ... | ... |