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

使用Hugging Face Whisper微调模型无法完整转录长音频求助

解决Whisper微调模型无法完整转录长音频的问题

针对你遇到的仅能转录音频开头几秒的问题,核心原因是默认管道设置会截断长音频,或生成参数限制了输出长度。以下是可直接运行的完整解决方案:

步骤1:安装必要依赖(Colab中执行)

!pip install transformers librosa

步骤2:完整转录代码

from transformers import pipeline

# 初始化音频转录管道,配置长音频处理参数
asr_pipe = pipeline(
    task="automatic-speech-recognition",
    model="thennal/whisper-medium-ml",
    chunk_length_s=30,  # 将长音频拆分为30秒的片段处理
    batch_size=8,       # 批量处理片段提升效率,可根据GPU内存调整
    generate_kwargs={"max_length": 448},  # Whisper默认最大生成token数,适配片段转录
    language="ml"       # 指定目标语言为Malayalam,按需调整
)

# 处理本地音频文件,获取完整转录结果
transcription_result = asr_pipe("/content/audio.mp3")
print("完整转录文本:")
print(transcription_result["text"])

关键参数说明

  • chunk_length_s:处理长音频的核心设置,将音频拆分为指定时长的片段逐个转录后拼接,完全避免截断问题。可根据需求调整为60秒(平衡速度与准确性)。
  • generate_kwargs={"max_length": 448}:Whisper模型默认的最大生成token数,适配单个片段的转录需求,不要使用max_new_tokens,该参数会强制限制生成长度导致输出更短。
  • language:明确指定目标语言可跳过自动检测步骤,提升印度本地语言的转录准确性。

备选方案(若直接传文件路径报错)

如果管道无法直接读取音频文件,可先通过librosa加载音频数组后传递:

import librosa
from transformers import pipeline

# 加载音频(Whisper要求采样率为16000)
audio_data, sample_rate = librosa.load("/content/audio.mp3", sr=16000)

asr_pipe = pipeline(
    task="automatic-speech-recognition",
    model="thennal/whisper-medium-ml",
    chunk_length_s=30,
    batch_size=8,
    generate_kwargs={"max_length": 448},
    language="ml"
)

transcription_result = asr_pipe(audio_data)
print(transcription_result["text"])

内容的提问来源于stack exchange,提问作者user22347502

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:35:32