feature/file-stack #1

Merged
sviat merged 3 commits from feature/file-stack into main 2024-03-22 16:00:51 +00:00
6 changed files with 45 additions and 7 deletions
Showing only changes of commit dbbf845e56 - Show all commits

View File

@ -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)

View File

@ -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:

View File

@ -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)

View File

@ -2,5 +2,5 @@ from abc import ABC, abstractmethod
class MessageSenderStrategy(ABC):
@abstractmethod
def send(self, message):
def send(self, message) -> None:
pass

View File

@ -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

View File

@ -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)