| from transcribe.pipelines import WhisperPipe, TranslatePipe, MetaItem |
| import multiprocessing as mp |
| import config |
|
|
| class TranslatePipes: |
| def __init__(self) -> None: |
| |
| |
| |
| |
| |
| |
| self._whisper_pipe = WhisperPipe() |
| |
| |
| self._translate_pipe = TranslatePipe() |
|
|
| |
| self._whisper_pipe.daemon = True |
| self._whisper_pipe.start() |
|
|
| self._translate_pipe.daemon = True |
| self._translate_pipe.start() |
|
|
| def wait_ready(self): |
| self._whisper_pipe.wait() |
| self._translate_pipe.wait() |
| |
| def translate(self, text, src_lang, dst_lang) -> MetaItem: |
| item = MetaItem( |
| transcribe_content=text, |
| source_language=src_lang, |
| destination_language=dst_lang) |
| self._translate_pipe.input_queue.put(item) |
| return self._translate_pipe.output_queue.get() |
| |
|
|
| def transcrible(self, audio_buffer:bytes, src_lang: str) -> MetaItem: |
| item = MetaItem(audio=audio_buffer, source_language=src_lang) |
| self._whisper_pipe.input_queue.put(item) |
| return self._whisper_pipe.output_queue.get() |
| |
|
|
| if __name__ == "__main__": |
| import soundfile |
| tp = TranslatePipes() |
| |
| mel, _, = soundfile.read("assets/jfk.flac") |
| result = tp.transcrible(mel, 'en') |
| print(result) |
|
|
|
|
|
|
| |