| from pathlib import Path | |
| import numpy as np | |
| from lib.utils import Timer | |
| from s2ts import S2TS | |
| from s2ts import TaskExecInfo as CTaskExecInfo | |
| MODEL_DIR = Path(r"D:\yujuan\yoyo-translator-win\models\llm\Qwen3-1.7B-int8-ov") | |
| class QwenOv: | |
| def __init__(self, model_dir=MODEL_DIR): | |
| with Timer("load LLM"): | |
| self.instance = S2TS() | |
| ret = self.instance.start_translate_genai(str(model_dir)) | |
| print(f"model load {'success' if ret else 'failed'}") | |
| self._warm_up() | |
| def _warm_up(self): | |
| self.translate("How are you?", "en", "zh") | |
| def translate(self, prompt, src_lang, dst_lang): | |
| task_info = CTaskExecInfo() | |
| task_info.transcribe_content = prompt | |
| task_info.audio_language=src_lang | |
| task_info.translate_language=dst_lang | |
| with Timer("LLM inference") as t: | |
| self.instance.put_llm(task_info) | |
| res: CTaskExecInfo = self.instance.get_llm(0) | |
| return res.translate_content, t.duration | |