Improve result printing
This commit is contained in:
parent
eba33adadd
commit
6814cc9b02
5
main.cpp
5
main.cpp
@ -181,6 +181,9 @@ int main(int argc, char ** argv) {
|
|||||||
{
|
{
|
||||||
whisper_full_params wparams = whisper_full_default_params(WHISPER_DECODE_GREEDY);
|
whisper_full_params wparams = whisper_full_default_params(WHISPER_DECODE_GREEDY);
|
||||||
|
|
||||||
|
wparams.print_realtime = true;
|
||||||
|
wparams.print_progress = false;
|
||||||
|
wparams.print_timestamps = !params.no_timestamps;
|
||||||
wparams.print_special_tokens = params.print_special_tokens;
|
wparams.print_special_tokens = params.print_special_tokens;
|
||||||
|
|
||||||
if (whisper_full(ctx, wparams, pcmf32.data(), pcmf32.size()) != 0) {
|
if (whisper_full(ctx, wparams, pcmf32.data(), pcmf32.size()) != 0) {
|
||||||
@ -189,7 +192,7 @@ int main(int argc, char ** argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// print result;
|
// print result;
|
||||||
{
|
if (!wparams.print_realtime) {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
const int n_segments = whisper_full_n_segments(ctx);
|
const int n_segments = whisper_full_n_segments(ctx);
|
||||||
|
38
whisper.cpp
38
whisper.cpp
@ -1854,6 +1854,18 @@ whisper_vocab::id whisper_sample_timestamp(
|
|||||||
return probs_id[0].second;
|
return probs_id[0].second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string to_timestamp(int64_t t) {
|
||||||
|
int64_t sec = t/100;
|
||||||
|
int64_t msec = t - sec*100;
|
||||||
|
int64_t min = sec/60;
|
||||||
|
sec = sec - min*60;
|
||||||
|
|
||||||
|
char buf[32];
|
||||||
|
snprintf(buf, sizeof(buf), "%02d:%02d.%03d", (int) min, (int) sec, (int) msec);
|
||||||
|
|
||||||
|
return std::string(buf);
|
||||||
|
}
|
||||||
|
|
||||||
// naive Discrete Fourier Transform
|
// naive Discrete Fourier Transform
|
||||||
// input is real-valued
|
// input is real-valued
|
||||||
// output is complex-valued
|
// output is complex-valued
|
||||||
@ -2245,6 +2257,8 @@ struct whisper_full_params whisper_full_default_params(enum whisper_decode_strat
|
|||||||
.translate = false,
|
.translate = false,
|
||||||
.print_special_tokens = false,
|
.print_special_tokens = false,
|
||||||
.print_progress = true,
|
.print_progress = true,
|
||||||
|
.print_realtime = false,
|
||||||
|
.print_timestamps = true,
|
||||||
|
|
||||||
.language = "en",
|
.language = "en",
|
||||||
|
|
||||||
@ -2262,6 +2276,8 @@ struct whisper_full_params whisper_full_default_params(enum whisper_decode_strat
|
|||||||
.translate = false,
|
.translate = false,
|
||||||
.print_special_tokens = false,
|
.print_special_tokens = false,
|
||||||
.print_progress = true,
|
.print_progress = true,
|
||||||
|
.print_realtime = false,
|
||||||
|
.print_timestamps = true,
|
||||||
|
|
||||||
.language = "en",
|
.language = "en",
|
||||||
|
|
||||||
@ -2436,6 +2452,15 @@ int whisper_full(
|
|||||||
if (result_cur[i].id > whisper_token_beg(ctx)) {
|
if (result_cur[i].id > whisper_token_beg(ctx)) {
|
||||||
const auto t1 = result_cur[i].t;
|
const auto t1 = result_cur[i].t;
|
||||||
if (!text.empty()) {
|
if (!text.empty()) {
|
||||||
|
if (params.print_realtime) {
|
||||||
|
if (params.print_timestamps) {
|
||||||
|
printf("[%s --> %s] %s\n", to_timestamp(t0).c_str(), to_timestamp(t1).c_str(), text.c_str());
|
||||||
|
} else {
|
||||||
|
printf("%s", text.c_str());
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result_all.push_back({ t0, t1, text });
|
result_all.push_back({ t0, t1, text });
|
||||||
}
|
}
|
||||||
text = "";
|
text = "";
|
||||||
@ -2448,7 +2473,18 @@ int whisper_full(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!text.empty()) {
|
if (!text.empty()) {
|
||||||
result_all.push_back({ t0, seek + seek_delta, text });
|
const auto t1 = seek + seek_delta;
|
||||||
|
|
||||||
|
if (params.print_realtime) {
|
||||||
|
if (params.print_timestamps) {
|
||||||
|
printf("[%s --> %s] %s\n", to_timestamp(t0).c_str(), to_timestamp(t1).c_str(), text.c_str());
|
||||||
|
} else {
|
||||||
|
printf("%s", text.c_str());
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result_all.push_back({ t0, t1, text });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user