feature/file-stack #1
@ -32,7 +32,6 @@ def recognize_files(handler_fn):
|
||||
results = []
|
||||
|
||||
for filename, handle in request.files.items():
|
||||
#
|
||||
temp = NamedTemporaryFile()
|
||||
handle.save(temp)
|
||||
result = model.transcribe(temp.name, language=HARPYIA_LANGUAGE, initial_prompt=HARPYIA_PROMPT)
|
||||
|
@ -10,7 +10,7 @@ class Message:
|
||||
def has_prompt(self) -> bool:
|
||||
return self._prompt_service.has_prompt(self._recognized_text)
|
||||
|
||||
def send(self):
|
||||
def send(self) -> None:
|
||||
self._message_sender.send(self._generate_response())
|
||||
|
||||
def _generate_response(self) -> str:
|
||||
|
@ -1,8 +1,8 @@
|
||||
from message.message_sender import MessageSenderStrategy
|
||||
|
||||
class MessageSender:
|
||||
def __init__(self, strategy: MessageSenderStrategy):
|
||||
def __init__(self, strategy: MessageSenderStrategy) -> None:
|
||||
self._strategy = strategy
|
||||
|
||||
def send(self, message):
|
||||
def send(self, message) -> None:
|
||||
self._strategy.send(message)
|
||||
|
@ -2,5 +2,5 @@ from abc import ABC, abstractmethod
|
||||
|
||||
class MessageSenderStrategy(ABC):
|
||||
@abstractmethod
|
||||
def send(self, message):
|
||||
def send(self, message) -> None:
|
||||
pass
|
||||
|
@ -1,5 +1,37 @@
|
||||
import whisper
|
||||
from faster_whisper import WhisperModel
|
||||
|
||||
import config
|
||||
from recognizer import RecognizerStrategy
|
||||
|
||||
class FastWhisperStrategy(RecognizerStrategy):
|
||||
def __init__(self) -> None:
|
||||
self._model = WhisperModel(
|
||||
model_size=config.HARPYIA_MODEL,
|
||||
device=config.DEVICE,
|
||||
num_workers=6,
|
||||
cpu_threads=10,
|
||||
# in_memory=True,
|
||||
)
|
||||
|
||||
def recognize(self, file) -> str:
|
||||
return ''
|
||||
audio = self._prepare_file(file.name)
|
||||
return self._transcribe(audio)
|
||||
|
||||
def _prepare_file(self, filename: str):
|
||||
audio = whisper.load_audio(filename, sr=16000)
|
||||
audio = whisper.pad_or_trim(audio)
|
||||
return audio
|
||||
|
||||
|
||||
def _transcribe(self, audio):
|
||||
segments, _ = self._model.transcribe(
|
||||
audio,
|
||||
language=config.HARPYIA_LANGUAGE,
|
||||
initial_prompt=config.HARPYIA_PROMPT,
|
||||
condition_on_previous_text=False,
|
||||
vad_filter=True,
|
||||
beam_size=5,
|
||||
)
|
||||
|
||||
return segments
|
@ -1,5 +1,12 @@
|
||||
import whisper
|
||||
|
||||
import config
|
||||
from recognizer import RecognizerStrategy
|
||||
|
||||
class WhisperStrategy(RecognizerStrategy):
|
||||
def __init__(self) -> None:
|
||||
self._model = whisper.load_model(config.HARPYIA_MODEL, device=config.DEVICE)
|
||||
|
||||
def recognize(self, file) -> str:
|
||||
return ''
|
||||
return self._model.transcribe(file.name, \
|
||||
language=config.HARPYIA_LANGUAGE, initial_prompt=config.HARPYIA_PROMPT)
|
Loading…
x
Reference in New Issue
Block a user