#pragma once #include "engine/framework/tokenizers/sentencepiece.h" #include "engine/models/confucius4_tts/assets.h" #include "engine/models/confucius4_tts/types.h" #include #include #include namespace engine::models::confucius4_tts { class ConfuciusTextTokenizer { public: explicit ConfuciusTextTokenizer(std::shared_ptr assets); std::string normalize(const std::string & text, const std::string & language) const; std::string format_prompt(const std::string & text, const std::string & language) const; std::vector encode(const std::string & text) const; std::vector encode_without_special_tokens(const std::string & text) const; std::vector encode_prompt(const std::string & text, const std::string & language) const; std::vector segment_request(const ConfuciusRequest & request) const; private: std::shared_ptr assets_; std::vector pieces_; int32_t bos_id_ = 1; int32_t eos_id_ = 2; }; } // namespace engine::models::confucius4_tts