J.A.R.V.I.S-py/crates/jarvis-core/src/db/structs.rs

57 lines
1.6 KiB
Rust
Raw Normal View History

use crate::config;
2025-12-11 23:43:50 +05:00
use serde::{Deserialize, Serialize};
use crate::config::structs::SpeechToTextEngine;
2025-12-11 23:43:50 +05:00
use crate::config::structs::WakeWordEngine;
use crate::config::structs::IntentRecognitionEngine;
use crate::config::structs::NoiseSuppressionBackend;
use crate::config::structs::VadBackend;
2026-01-04 09:00:51 +05:00
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Settings {
pub microphone: i32,
pub voice: String,
pub wake_word_engine: WakeWordEngine,
pub intent_recognition_engine: IntentRecognitionEngine,
pub speech_to_text_engine: SpeechToTextEngine,
2026-01-05 03:38:04 +05:00
pub vosk_model: String,
// audio processing
pub noise_suppression: NoiseSuppressionBackend,
pub vad: VadBackend,
pub gain_normalizer: bool,
2025-12-11 23:43:50 +05:00
pub api_keys: ApiKeys,
}
impl Default for Settings {
fn default() -> Settings {
Settings {
microphone: -1,
voice: String::from(""),
wake_word_engine: config::DEFAULT_WAKE_WORD_ENGINE,
intent_recognition_engine: config::DEFAULT_INTENT_RECOGNITION_ENGINE,
speech_to_text_engine: config::DEFAULT_SPEECH_TO_TEXT_ENGINE,
2026-01-05 03:38:04 +05:00
vosk_model: String::from(""), // auto detect first available
// audio processing defaults
noise_suppression: config::DEFAULT_NOISE_SUPPRESSION,
vad: config::DEFAULT_VAD,
gain_normalizer: config::DEFAULT_GAIN_NORMALIZER,
api_keys: ApiKeys {
picovoice: String::from(""),
2025-12-11 23:43:50 +05:00
openai: String::from(""),
},
}
}
}
2026-01-04 09:00:51 +05:00
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ApiKeys {
pub picovoice: String,
2025-12-11 23:43:50 +05:00
pub openai: String,
}