File size: 1,061 Bytes
b295d06 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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\funasr")
class FunAsrOv:
def __init__(self, model_dir=MODEL_DIR):
with Timer("load FunASR"):
self.instance = S2TS()
ret = self.instance.start_fun_asr(f'{model_dir}/model_files', f'{model_dir}/punc', f"{model_dir}/hotword.bin")
print(f"model load {'success' if ret else 'failed'}")
self._warm_up()
def _warm_up(self):
fake_audio = np.random.randn(16000).astype(np.float32)
self.transcribe(fake_audio)
def transcribe(self, audio: np.ndarray):
task_info = CTaskExecInfo()
task_info.audio_data = audio.tolist()
task_info.audio_language = "zh"
with Timer("FunASR inference") as t:
self.instance.put_asr(task_info)
res: CTaskExecInfo = self.instance.get_asr(0)
return "".join(word.text for word in res.words), t.duration
|