bugfix
This commit is contained in:
parent
9fd840147c
commit
113ee59c30
42
fw/fw.py
Normal file
42
fw/fw.py
Normal file
@ -0,0 +1,42 @@
|
||||
from longtasks.longtasks import LongTasks
|
||||
from faster_whisper import WhisperModel
|
||||
from appPublic.worker import awaitify
|
||||
from ahserver.filestorage import FileStorage
|
||||
|
||||
class MyLongTask(LongTasks):
|
||||
def __init__(self, *args, **kw):
|
||||
super().__init__(self, *args, **kw)
|
||||
self.load_models()
|
||||
|
||||
def load_models(self):
|
||||
self.models = []
|
||||
for i in range(self.worker_cnt):
|
||||
model = WhisperModel(model_size, device="cuda", compute_type="float16")
|
||||
self.models.append(model)
|
||||
|
||||
def process_task(self, payload:dict, workerid:int=None):
|
||||
if workerid is None:
|
||||
return {
|
||||
"task_status": "error",
|
||||
"message": "workerid is None"
|
||||
}
|
||||
model = self.models[workerid]
|
||||
webpath = payload.get('audio_file')
|
||||
if webpath is None:
|
||||
return {
|
||||
"task_status": "error",
|
||||
"message":"not audio_file provided"
|
||||
}
|
||||
fs = FileStorage()
|
||||
fpath = fs.realPath(webpath)
|
||||
f = awaitify(self.transcribe)
|
||||
return await f(model, fpath)
|
||||
|
||||
def transcribe(self, model, fpath):
|
||||
segments, info = model.transcribe(fpath, beam_size=5)
|
||||
return {
|
||||
'language': info.language,
|
||||
'language_probability': info.language_probability,
|
||||
'segments': [[segment.start, segment.end, segment.text] for segment in segments]
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user