AnyaSchen's picture
Add application file
72277b5
raw
history blame
1.98 kB
from whisper_streaming_custom.whisper_online import backend_factory, warmup_asr
from argparse import Namespace, ArgumentParser
class WhisperLiveKit:
_instance = None
_initialized = False
def __new__(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
def __init__(self, args=None, **kwargs):
if WhisperLiveKit._initialized:
return
if args is None:
args = Namespace(
host="localhost",
port=8000,
warmup_file=None,
confidence_validation=False,
diarization=False,
transcription=True,
min_chunk_size=0.5,
model="base",
model_cache_dir=None,
model_dir=None,
lan="auto",
task="transcribe",
backend="faster-whisper",
vac=False,
vac_chunk_size=0.04,
vad=True,
buffer_trimming="sentence",
buffer_trimming_sec=1.0,
log_level="INFO"
)
self.args = args
self.asr = None
self.tokenizer = None
self.diarization = None
if self.args.transcription:
self.asr, self.tokenizer = backend_factory(self.args)
warmup_asr(self.asr, self.args.warmup_file)
if self.args.diarization:
from diarization.diarization_online import DiartDiarization
self.diarization = DiartDiarization()
WhisperLiveKit._initialized = True
def web_interface(self):
import pkg_resources
html_path = pkg_resources.resource_filename('whisperlivekit', 'web/live_transcription.html')
with open(html_path, "r", encoding="utf-8") as f:
html = f.read()
return html