#pragma once #include "engine/models/vibevoice_asr/assets.h" #include "engine/models/vibevoice_asr/types.h" #include #include #include #include namespace engine::models::vibevoice_asr { class VibeVoiceASRTextTokenizer { public: struct Impl; explicit VibeVoiceASRTextTokenizer(std::shared_ptr assets); VibeVoiceASRPrompt build_prompt(const VibeVoiceASRRequest & request, int64_t speech_tokens) const; std::vector build_streaming_prompt(const std::string & context) const; std::vector encode(const std::string & text) const; std::string decode(const std::vector & token_ids, bool skip_special_tokens) 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_pad_id() const noexcept; int32_t text_chunk_end_id() const noexcept; private: std::shared_ptr assets_; std::shared_ptr impl_; }; } // namespace engine::models::vibevoice_asr