#pragma once #include "engine/models/vibevoice/assets.h" #include "engine/models/vibevoice/types.h" #include #include #include #include namespace engine::models::vibevoice { struct VibeVoicePromptLine { int speaker_id = 0; std::string text; }; struct VibeVoicePromptEncoding { std::vector input_ids; std::vector attention_mask; std::vector speech_input_mask; std::vector parsed_script; std::vector speaker_ids; std::vector speech_prompt_token_counts; }; class VibeVoiceTextTokenizer { public: struct Impl; explicit VibeVoiceTextTokenizer(std::shared_ptr assets); std::vector encode(const std::string & text) const; VibeVoicePromptEncoding encode_prompt(const VibeVoiceRequest & request) const; int32_t eos_id() const noexcept; int32_t pad_id() const noexcept; int32_t speech_start_id() const noexcept; int32_t speech_end_id() const noexcept; int32_t speech_diffusion_id() const noexcept; private: std::shared_ptr impl_; }; } // namespace engine::models::vibevoice