whisper: add detected language callback

This commit is contained in:
Seven Du 2026-01-05 21:35:04 +08:00
parent 6d507e377e
commit bdb042f754
No known key found for this signature in database
2 changed files with 15 additions and 0 deletions

View File

@ -468,6 +468,9 @@ extern "C" {
// Progress callback
typedef void (*whisper_progress_callback)(struct whisper_context * ctx, struct whisper_state * state, int progress, void * user_data);
// Detected language callback
typedef void (*whisper_detected_language_callback)(struct whisper_context * ctx, struct whisper_state * state, void * user_data);
// Encoder begin callback
// If not NULL, called before the encoder starts
// If it returns false, the computation is aborted
@ -565,6 +568,10 @@ extern "C" {
whisper_new_segment_callback new_segment_callback;
void * new_segment_callback_user_data;
// called on detected language
whisper_detected_language_callback detected_language_callback;
void * detected_language_callback_user_data;
// called on each progress update
whisper_progress_callback progress_callback;
void * progress_callback_user_data;

View File

@ -5977,6 +5977,9 @@ struct whisper_full_params whisper_full_default_params(enum whisper_sampling_str
/*.new_segment_callback =*/ nullptr,
/*.new_segment_callback_user_data =*/ nullptr,
/*.detected_language_callback =*/ nullptr,
/*.detected_language_callback_user_data =*/ nullptr,
/*.progress_callback =*/ nullptr,
/*.progress_callback_user_data =*/ nullptr,
@ -6844,6 +6847,11 @@ int whisper_full_with_state(
params.language = whisper_lang_str(lang_id);
WHISPER_LOG_INFO("%s: auto-detected language: %s (p = %f)\n", __func__, params.language, probs[lang_id]);
if (params.detected_language_callback) {
params.detected_language_callback(ctx, state, params.detected_language_callback_user_data);
}
if (params.detect_language) {
return 0;
}