transcribe() on English-only model won't complain when language="en" is not given

This commit is contained in:
Jong Wook Kim 2022-10-09 02:40:12 -07:00
parent 82725cea9c
commit d18e9ea5dd

View File

@ -84,13 +84,16 @@ def transcribe(
mel = log_mel_spectrogram(audio) mel = log_mel_spectrogram(audio)
if decode_options.get("language", None) is None: if decode_options.get("language", None) is None:
if verbose: if not model.is_multilingual:
print("Detecting language using up to the first 30 seconds. Use `--language` to specify the language") decode_options["language"] = "en"
segment = pad_or_trim(mel, N_FRAMES).to(model.device).to(dtype) else:
_, probs = model.detect_language(segment) if verbose:
decode_options["language"] = max(probs, key=probs.get) print("Detecting language using up to the first 30 seconds. Use `--language` to specify the language")
if verbose is not None: segment = pad_or_trim(mel, N_FRAMES).to(model.device).to(dtype)
print(f"Detected language: {LANGUAGES[decode_options['language']].title()}") _, probs = model.detect_language(segment)
decode_options["language"] = max(probs, key=probs.get)
if verbose is not None:
print(f"Detected language: {LANGUAGES[decode_options['language']].title()}")
language = decode_options["language"] language = decode_options["language"]
task = decode_options.get("task", "transcribe") task = decode_options.get("task", "transcribe")
@ -282,7 +285,8 @@ def cli():
os.makedirs(output_dir, exist_ok=True) os.makedirs(output_dir, exist_ok=True)
if model_name.endswith(".en") and args["language"] not in {"en", "English"}: if model_name.endswith(".en") and args["language"] not in {"en", "English"}:
warnings.warn(f"{model_name} is an English-only model but receipted '{args['language']}'; using English instead.") if args["language"] is not None:
warnings.warn(f"{model_name} is an English-only model but receipted '{args['language']}'; using English instead.")
args["language"] = "en" args["language"] = "en"
temperature = args.pop("temperature") temperature = args.pop("temperature")