Merge branch 'tijszwinkels-online-from-factory'

PR #71
This commit is contained in:
Dominik Macháček 2024-04-17 15:22:11 +02:00
commit f32eeef4dd
2 changed files with 20 additions and 25 deletions

View file

@ -551,7 +551,7 @@ def add_shared_args(parser):
def asr_factory(args, logfile=sys.stderr): def asr_factory(args, logfile=sys.stderr):
""" """
Creates and configures an ASR instance based on the specified backend and arguments. Creates and configures an ASR and ASR Online instance based on the specified backend and arguments.
""" """
backend = args.backend backend = args.backend
if backend == "openai-api": if backend == "openai-api":
@ -576,8 +576,23 @@ def asr_factory(args, logfile=sys.stderr):
print("Setting VAD filter", file=logfile) print("Setting VAD filter", file=logfile)
asr.use_vad() asr.use_vad()
return asr language = args.lan
if args.task == "translate":
asr.set_translate_task()
tgt_language = "en" # Whisper translates into English
else:
tgt_language = language # Whisper transcribes in this language
# Create the tokenizer
if args.buffer_trimming == "sentence":
tokenizer = create_tokenizer(tgt_language)
else:
tokenizer = None
# Create the OnlineASRProcessor
online = OnlineASRProcessor(asr,tokenizer,logfile=logfile,buffer_trimming=(args.buffer_trimming, args.buffer_trimming_sec))
return asr, online
## main: ## main:
if __name__ == "__main__": if __name__ == "__main__":
@ -605,22 +620,8 @@ if __name__ == "__main__":
duration = len(load_audio(audio_path))/SAMPLING_RATE duration = len(load_audio(audio_path))/SAMPLING_RATE
print("Audio duration is: %2.2f seconds" % duration, file=logfile) print("Audio duration is: %2.2f seconds" % duration, file=logfile)
asr = asr_factory(args, logfile=logfile) asr, online = asr_factory(args, logfile=logfile)
language = args.lan
if args.task == "translate":
asr.set_translate_task()
tgt_language = "en" # Whisper translates into English
else:
tgt_language = language # Whisper transcribes in this language
min_chunk = args.min_chunk_size min_chunk = args.min_chunk_size
if args.buffer_trimming == "sentence":
tokenizer = create_tokenizer(tgt_language)
else:
tokenizer = None
online = OnlineASRProcessor(asr,tokenizer,logfile=logfile,buffer_trimming=(args.buffer_trimming, args.buffer_trimming_sec))
# load the audio into the LRU cache before we start the timer # load the audio into the LRU cache before we start the timer
a = load_audio_chunk(audio_path,0,1) a = load_audio_chunk(audio_path,0,1)

View file

@ -25,16 +25,10 @@ SAMPLING_RATE = 16000
size = args.model size = args.model
language = args.lan language = args.lan
asr, online = asr_factory(args)
asr = asr_factory(args)
if args.task == "translate":
asr.set_translate_task()
tgt_language = "en"
else:
tgt_language = language
min_chunk = args.min_chunk_size min_chunk = args.min_chunk_size
if args.buffer_trimming == "sentence": if args.buffer_trimming == "sentence":
tokenizer = create_tokenizer(tgt_language) tokenizer = create_tokenizer(tgt_language)
else: else: