#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Label {
pub phoneme: Phoneme,
pub mora: Option<Mora>,
pub word_prev: Option<Word>,
pub word_curr: Option<Word>,
pub word_next: Option<Word>,
pub accent_phrase_prev: Option<AccentPhrasePrevNext>,
pub accent_phrase_curr: Option<AccentPhraseCurrent>,
pub accent_phrase_next: Option<AccentPhrasePrevNext>,
pub breath_group_prev: Option<BreathGroupPrevNext>,
pub breath_group_curr: Option<BreathGroupCurrent>,
pub breath_group_next: Option<BreathGroupPrevNext>,
pub utterance: Utterance,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Phoneme {
pub p2: Option<String>,
pub p1: Option<String>,
pub c: Option<String>,
pub n1: Option<String>,
pub n2: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Mora {
pub relative_accent_position: i8,
pub position_forward: u8,
pub position_backward: u8,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Word {
pub pos: Option<u8>,
pub ctype: Option<u8>,
pub cform: Option<u8>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct AccentPhraseCurrent {
pub mora_count: u8,
pub accent_position: u8,
pub is_interrogative: bool,
pub accent_phrase_position_forward: u8,
pub accent_phrase_position_backward: u8,
pub mora_position_forward: u8,
pub mora_position_backward: u8,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct AccentPhrasePrevNext {
pub mora_count: u8,
pub accent_position: u8,
pub is_interrogative: bool,
pub is_pause_insertion: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct BreathGroupCurrent {
pub accent_phrase_count: u8,
pub mora_count: u8,
pub breath_group_position_forward: u8,
pub breath_group_position_backward: u8,
pub accent_phrase_position_forward: u8,
pub accent_phrase_position_backward: u8,
pub mora_position_forward: u8,
pub mora_position_backward: u8,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct BreathGroupPrevNext {
pub accent_phrase_count: u8,
pub mora_count: u8,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Utterance {
pub breath_group_count: u8,
pub accent_phrase_count: u8,
pub mora_count: u8,
}