Python中Whisper库model.transcribe报错tuple.index(x): x not in tuple
音频转录程序报错:
ValueError: tuple.index(x): x not in tuple 问题背景
我开发了一款支持用户选择音频文件并指定语言进行转录的程序,但运行过程中触发如下错误。
错误日志
ERROR:root:Error at division Traceback (most recent call last): File "C:\Users\...\AppData\Local\Temp\ipykernel_27364\1513539390.py", line 136, in transcribir result = model.transcribe(audio, language=f"{actual_language}", fp16=False, verbose=True) File "C:\Users\...\anaconda3\envs\python39\lib\site-packages\whisper\transcribe.py", line 181, in transcribe ): File "C:\Users\...\anaconda3\envs\python39\lib\site-packages\whisper\transcribe.py", line 117, in decode_with_fallback File "C:\Users\...\anaconda3\envs\python39\lib\site-packages\torch\utils\_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) File "C:\Users\...\anaconda3\envs\python39\lib\site-packages\whisper\decoding.py", line 705, in decode if completed or tokens.shape[-1] > self.n_ctx: File "C:\Users\...\anaconda3\envs\python39\lib\site-packages\whisper\decoding.py", line 468, in __init__ if last_was_timestamp: ValueError: tuple.index(x): x not in tuple
当前功能代码
actual_language=combo.get() archivo=filedialog.askopenfilename(initialdir = "./", title = "Seleccione archivo",filetypes = (("all files","*.*"),("mp3 files","*.mp3"), ("wav files","*.wav"))) torch.cuda.is_available() DEVICE = "cuda" if torch.cuda.is_available() else "cpu" model = whisper.load_model("medium") if archivo!="": try: audio = whisper.load_audio(archivo) audio_trim = whisper.pad_or_trim(audio) mel = whisper.log_mel_spectrogram(audio_trim).to(model.device) result = model.transcribe(audio, language=f"{actual_language}", fp16=False, verbose=True) print(result["text"]) except Exception as e: actual_status.set("¡Error!") logging.error('Error at %s', 'division', exc_info=e)
已尝试的操作
- 添加语言选择功能前,使用自动语言识别仍触发相同错误,尝试代码:
或result = model.transcribe(audio)audio = whisper.load_audio(file) audio_trim = whisper.pad_or_trim(audio) mel = whisper.log_mel_spectrogram(audio_trim).to(model.device) _, probs = model.detect_language(mel) options = whisper.DecodingOptions() result = whisper.decode(model, mel, options) - 添加语言选择后,简化
transcribe调用参数:result = model.transcribe(archivo,language=f"{actual_language}")
环境信息
- Python版本:3.9
- Whisper版本:已升级至最新版
内容的提问来源于stack exchange,提问作者Nacho Delgado
相关产品推荐
相关产品推荐

