#pragma once #include "engine/models/breeze_tts/assets.h" #include #include #include #include namespace engine::models::breeze_tts { struct BreezePromptBranch { std::vector input_ids; std::vector text_mask; std::vector text_segment_lengths; std::vector> text_segments; }; class BreezeTextTokenizer { public: explicit BreezeTextTokenizer(std::shared_ptr assets); ~BreezeTextTokenizer(); BreezePromptBranch build_tts_instruction(const std::string & text, const std::string & instruction) const; BreezePromptBranch build_tts_plain(const std::string & text) const; BreezePromptBranch build_clone( const std::string & text, const std::string & instruction, const std::string & reference_text, int64_t reference_audio_frames) const; BreezePromptBranch build_clone_negative( const std::string & text, const std::string & reference_text, int64_t reference_audio_frames) const; int32_t audio_token_id() const noexcept; int32_t audio_eos_token_id() const noexcept; private: struct Impl; std::unique_ptr impl_; }; } // namespace engine::models::breeze_tts