feature/file-stack #1
@ -32,7 +32,6 @@ def recognize_files(handler_fn):
|
|||||||
results = []
|
results = []
|
||||||
|
|
||||||
for filename, handle in request.files.items():
|
for filename, handle in request.files.items():
|
||||||
#
|
|
||||||
temp = NamedTemporaryFile()
|
temp = NamedTemporaryFile()
|
||||||
handle.save(temp)
|
handle.save(temp)
|
||||||
result = model.transcribe(temp.name, language=HARPYIA_LANGUAGE, initial_prompt=HARPYIA_PROMPT)
|
result = model.transcribe(temp.name, language=HARPYIA_LANGUAGE, initial_prompt=HARPYIA_PROMPT)
|
||||||
|
@ -10,7 +10,7 @@ class Message:
|
|||||||
def has_prompt(self) -> bool:
|
def has_prompt(self) -> bool:
|
||||||
return self._prompt_service.has_prompt(self._recognized_text)
|
return self._prompt_service.has_prompt(self._recognized_text)
|
||||||
|
|
||||||
def send(self):
|
def send(self) -> None:
|
||||||
self._message_sender.send(self._generate_response())
|
self._message_sender.send(self._generate_response())
|
||||||
|
|
||||||
def _generate_response(self) -> str:
|
def _generate_response(self) -> str:
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from message.message_sender import MessageSenderStrategy
|
from message.message_sender import MessageSenderStrategy
|
||||||
|
|
||||||
class MessageSender:
|
class MessageSender:
|
||||||
def __init__(self, strategy: MessageSenderStrategy):
|
def __init__(self, strategy: MessageSenderStrategy) -> None:
|
||||||
self._strategy = strategy
|
self._strategy = strategy
|
||||||
|
|
||||||
def send(self, message):
|
def send(self, message) -> None:
|
||||||
self._strategy.send(message)
|
self._strategy.send(message)
|
||||||
|
@ -2,5 +2,5 @@ from abc import ABC, abstractmethod
|
|||||||
|
|
||||||
class MessageSenderStrategy(ABC):
|
class MessageSenderStrategy(ABC):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def send(self, message):
|
def send(self, message) -> None:
|
||||||
pass
|
pass
|
||||||
|
@ -1,5 +1,37 @@
|
|||||||
|
import whisper
|
||||||
|
from faster_whisper import WhisperModel
|
||||||
|
|
||||||
|
import config
|
||||||
from recognizer import RecognizerStrategy
|
from recognizer import RecognizerStrategy
|
||||||
|
|
||||||
class FastWhisperStrategy(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:
|
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
|
from recognizer import RecognizerStrategy
|
||||||
|
|
||||||
class WhisperStrategy(RecognizerStrategy):
|
class WhisperStrategy(RecognizerStrategy):
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self._model = whisper.load_model(config.HARPYIA_MODEL, device=config.DEVICE)
|
||||||
|
|
||||||
def recognize(self, file) -> str:
|
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