any-tts 0.1.1

A Rust TTS library with Candle backends and runtime adapters for modern open TTS models
Documentation
use crate::error::TtsError;
use crate::tokenizer::TextTokenizer;
use crate::traits::SynthesisRequest;

use crate::models::vibevoice::config::VibeVoicePreprocessorConfig;
use crate::models::vibevoice::processor::VibeVoiceTokenizerSpec;

pub struct VibeVoiceRealtimeProcessor {
    tokenizer: TextTokenizer,
    tokenizer_spec: VibeVoiceTokenizerSpec,
}

impl VibeVoiceRealtimeProcessor {
    pub fn new(
        tokenizer: TextTokenizer,
        tokenizer_spec: VibeVoiceTokenizerSpec,
        _config: VibeVoicePreprocessorConfig,
    ) -> Self {
        Self {
            tokenizer,
            tokenizer_spec,
        }
    }

    pub fn tokenizer_spec(&self) -> &VibeVoiceTokenizerSpec {
        &self.tokenizer_spec
    }

    pub fn prepare_text(&self, request: &SynthesisRequest) -> Result<Vec<u32>, TtsError> {
        self.tokenizer.encode(&format!("{}\n", request.text.trim()))
    }
}