from ahserver.webapp import webapp from ahserver.serverenv import ServerEnv from ahserver.filestorage import FileStorage from appPublic.log import debug,exception, error from appPublic.worker import awiatify from appPublic.jsonConfig import getConfig import nemo.collections.asr as nemo_asr claas NvidiaASR: def __init__(self): config = getConfig() self.models = {} device = torch.device(config.device) for lang, model_path in config.asr_models: model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_path) model.to(device) self.models[lang] = model def _generate(self, audio_file, lang): model = self.models.get(lang) output = model.transcribe([audio_file]) return output async def generate(self, audio_file, lang='en'): f = awaitify(self._generate) t1 = time.time() content = await f(audio_file, lang) t2 = time.time() return { 'content':content, 'timecost':t2 - t1 } def init(): asr_engine = NVidiaASR() g = ServerEnv() g.generate = asr_engine.generate if __name__ == '__main__': webapp(init)