You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 19:47:30