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

如何在Elixir Bumblebee中检测或切换Whisper的语言

Bumblebee中Whisper模型的语言检测与切换方案

手动指定输入语言

Whisper多语言模型支持通过参数直接指定目标语言,只需在初始化语音转写服务时添加:language选项,传入对应ISO 639-1语言代码即可:

serving =
  Bumblebee.Audio.speech_to_text(model_info, featurizer, tokenizer, generation_config,
    compile: [batch_size: 10],
    defn_options: [compiler: EXLA],
    # 指定中文,英文用"en",西班牙语用"es"等
    language: "zh"
  )

自动检测输入语言

你当前使用的openai/whisper-medium是多语言模型,支持自动检测输入音频的语言。只需调整生成配置,将language设为nil,模型会自动完成语言检测并转写:

# 修改生成配置,开启自动语言检测
generation_config = Bumblebee.configure(generation_config, language: nil, task: :transcribe)

serving =
  Bumblebee.Audio.speech_to_text(model_info, featurizer, tokenizer, generation_config,
    compile: [batch_size: 10],
    defn_options: [compiler: EXLA]
  )

补充注意事项

  • 确认使用的是多语言模型:OpenAI Whisper模型中,后缀带.en的是英文专属模型(如openai/whisper-medium.en),不带后缀的才是多语言模型,你当前的选型符合要求。
  • 若需获取检测到的语言标识,Bumblebee.Audio.speech_to_text的高层封装未直接返回该信息。如果需要细粒度控制,可手动构建模型前向传播逻辑,提取语言检测分支的输出。

你的原始代码(格式化后)

# Very basic example
{:ok, model_info} = Bumblebee.load_model({:hf, "openai/whisper-medium"})
{:ok, featurizer} = Bumblebee.load_featurizer({:hf, "openai/whisper-medium"})
{:ok, tokenizer} = Bumblebee.load_tokenizer({:hf, "openai/whisper-medium"})
{:ok, generation_config} = Bumblebee.load_generation_config({:hf, "openai/whisper-medium"})

serving =
  Bumblebee.Audio.speech_to_text(model_info, featurizer, tokenizer, generation_config,
    compile: [batch_size: 10],
    defn_options: [compiler: EXLA]
  )

# And then
audio = Nx.from_binary(binary, :f32)

task =
  Task.async(fn -> Nx.Serving.batched_run(WonderJournalPlayground.WhisperTask, audio) end)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:20:21