bool print_special = false;
bool no_context = true;
bool no_timestamps = false;
+ bool tinydiarize = false;
std::string language = "en";
std::string model = "models/ggml-base.en.bin";
else if (arg == "-l" || arg == "--language") { params.language = argv[++i]; }
else if (arg == "-m" || arg == "--model") { params.model = argv[++i]; }
else if (arg == "-f" || arg == "--file") { params.fname_out = argv[++i]; }
+ else if (arg == "-tdrz" || arg == "--tinydiarize") { params.tinydiarize = true; }
+
else {
fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
whisper_print_usage(argc, argv, params);
fprintf(stderr, " -l LANG, --language LANG [%-7s] spoken language\n", params.language.c_str());
fprintf(stderr, " -m FNAME, --model FNAME [%-7s] model path\n", params.model.c_str());
fprintf(stderr, " -f FNAME, --file FNAME [%-7s] text output file name\n", params.fname_out.c_str());
+ fprintf(stderr, " -tdrz, --tinydiarize [%-7s] enable tinydiarize (requires a tdrz model)\n", params.tinydiarize ? "true" : "false");
fprintf(stderr, "\n");
}
wparams.audio_ctx = params.audio_ctx;
wparams.speed_up = params.speed_up;
+ wparams.tdrz_enable = params.tinydiarize; // [TDRZ]
+
// disable temperature fallback
//wparams.temperature_inc = -1.0f;
wparams.temperature_inc = params.no_fallback ? 0.0f : wparams.temperature_inc;
const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
- printf ("[%s --> %s] %s\n", to_timestamp(t0).c_str(), to_timestamp(t1).c_str(), text);
+ std::string output = "[" + to_timestamp(t0) + " --> " + to_timestamp(t1) + "] " + text;
+
+ if (whisper_full_get_segment_speaker_turn_next(ctx, i)) {
+ output += " [SPEAKER_TURN]";
+ }
+
+ output += "\n";
+
+ printf("%s", output.c_str());
+ fflush(stdout);
if (params.fname_out.length() > 0) {
- fout << "[" << to_timestamp(t0) << " --> " << to_timestamp(t1) << "] " << text << std::endl;
+ fout << output;
}
}
}