Просмотр исходного кода

update funasr-onnx-offline-vad

雾聪 2 лет назад
Родитель
Сommit
f192c1cc99
1 измененных файлов с 12 добавлено и 6 удалено
  1. 12 6
      funasr/runtime/onnxruntime/bin/funasr-onnx-offline-vad.cpp

+ 12 - 6
funasr/runtime/onnxruntime/bin/funasr-onnx-offline-vad.cpp

@@ -38,8 +38,8 @@ void GetValue(TCLAP::ValueArg<std::string>& value_arg, string key, std::map<std:
     }
     }
 }
 }
 
 
-void print_segs(vector<vector<int>>* vec) {
-    string seg_out="[";
+void print_segs(vector<vector<int>>* vec, string &wav_id) {
+    string seg_out=wav_id + ": [";
     for (int i = 0; i < vec->size(); i++) {
     for (int i = 0; i < vec->size(); i++) {
         vector<int> inner_vec = (*vec)[i];
         vector<int> inner_vec = (*vec)[i];
         seg_out += "[";
         seg_out += "[";
@@ -97,9 +97,12 @@ int main(int argc, char *argv[])
 
 
     // read wav_path
     // read wav_path
     vector<string> wav_list;
     vector<string> wav_list;
+    vector<string> wav_ids;
+    string default_id = "wav_default_id";
     string wav_path_ = model_path.at(WAV_PATH);
     string wav_path_ = model_path.at(WAV_PATH);
     if(is_target_file(wav_path_, "wav") || is_target_file(wav_path_, "pcm")){
     if(is_target_file(wav_path_, "wav") || is_target_file(wav_path_, "pcm")){
         wav_list.emplace_back(wav_path_);
         wav_list.emplace_back(wav_path_);
+        wav_ids.emplace_back(default_id);
     }
     }
     else if(is_target_file(wav_path_, "scp")){
     else if(is_target_file(wav_path_, "scp")){
         ifstream in(wav_path_);
         ifstream in(wav_path_);
@@ -113,7 +116,8 @@ int main(int argc, char *argv[])
             istringstream iss(line);
             istringstream iss(line);
             string column1, column2;
             string column1, column2;
             iss >> column1 >> column2;
             iss >> column1 >> column2;
-            wav_list.emplace_back(column2); 
+            wav_list.emplace_back(column2);
+            wav_ids.emplace_back(column1);
         }
         }
         in.close();
         in.close();
     }else{
     }else{
@@ -123,7 +127,9 @@ int main(int argc, char *argv[])
     
     
     float snippet_time = 0.0f;
     float snippet_time = 0.0f;
     long taking_micros = 0;
     long taking_micros = 0;
-    for(auto& wav_file : wav_list){
+    for (int i = 0; i < wav_list.size(); i++) {
+        auto& wav_file = wav_list[i];
+        auto& wav_id = wav_ids[i];
         gettimeofday(&start, NULL);
         gettimeofday(&start, NULL);
         FUNASR_RESULT result=FsmnVadInfer(vad_hanlde, wav_file.c_str(), NULL, 16000);
         FUNASR_RESULT result=FsmnVadInfer(vad_hanlde, wav_file.c_str(), NULL, 16000);
         gettimeofday(&end, NULL);
         gettimeofday(&end, NULL);
@@ -133,7 +139,7 @@ int main(int argc, char *argv[])
         if (result)
         if (result)
         {
         {
             vector<std::vector<int>>* vad_segments = FsmnVadGetResult(result, 0);
             vector<std::vector<int>>* vad_segments = FsmnVadGetResult(result, 0);
-            print_segs(vad_segments);
+            print_segs(vad_segments, wav_id);
             snippet_time += FsmnVadGetRetSnippetTime(result);
             snippet_time += FsmnVadGetRetSnippetTime(result);
             FsmnVadFreeResult(result);
             FsmnVadFreeResult(result);
         }
         }
@@ -142,7 +148,7 @@ int main(int argc, char *argv[])
             LOG(ERROR) << ("No return data!\n");
             LOG(ERROR) << ("No return data!\n");
         }
         }
     }
     }
- 
+
     LOG(INFO) << "Audio length: " << (double)snippet_time << " s";
     LOG(INFO) << "Audio length: " << (double)snippet_time << " s";
     LOG(INFO) << "Model inference takes: " << (double)taking_micros / 1000000 <<" s";
     LOG(INFO) << "Model inference takes: " << (double)taking_micros / 1000000 <<" s";
     LOG(INFO) << "Model inference RTF: " << (double)taking_micros/ (snippet_time*1000000);
     LOG(INFO) << "Model inference RTF: " << (double)taking_micros/ (snippet_time*1000000);