#pragma once #include "engine/community_models/kitten_tts/assets.h" #include "engine/framework/text/espeak_phonemizer.h" #include "engine/framework/runtime/session.h" #include #include #include #include namespace engine::models::kitten_tts { struct KittenSynthesisInput { std::string voice_id; std::string language_code; std::string phonemes; size_t normalized_text_length = 0; std::vector input_ids; std::vector style; float speaking_rate = 1.0f; }; struct KittenFrontendSessionState { std::string voice_id; std::string language_code; const KittenVoicePack *voice_pack = nullptr; float speaking_rate = 1.0f; }; KittenFrontendSessionState resolve_kitten_frontend_session_state(const std::optional &text, const std::optional &voice, const KittenAssets &assets); void validate_kitten_frontend_session_state(const runtime::Transcript &text, const std::optional &voice, const KittenFrontendSessionState &state, const KittenAssets &assets); KittenSynthesisInput build_kitten_synthesis_input(const runtime::Transcript &text, const KittenFrontendSessionState &state, const KittenAssets &assets, const engine::audio::EspeakPhonemizer &phonemizer); int64_t estimate_kitten_request_tokens(const runtime::SessionPreparationRequest &request, const KittenFrontendSessionState &state, const KittenAssets &assets, const engine::audio::EspeakPhonemizer &phonemizer); } // namespace engine::models::kitten_tts