use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Decoder {
#[default]
Greedy,
BeamSearch,
WordBeamSearch,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct RecognitionConfig {
pub decoder: Decoder,
pub beam_width: usize,
pub batch_size: usize,
pub allowlist: String,
pub blocklist: String,
pub contrast_ths: f32,
pub adjust_contrast: f32,
pub filter_ths: f32,
}
impl Default for RecognitionConfig {
fn default() -> Self {
Self {
decoder: Decoder::Greedy,
beam_width: 5,
batch_size: 1,
allowlist: String::new(),
blocklist: String::new(),
contrast_ths: 0.1,
adjust_contrast: 0.5,
filter_ths: 0.003,
}
}
}