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

如何在Python语音识别中添加多语言支持?现有双语言代码不生效求解决方案

Python多语言语音识别问题修复与实现

原代码存在的问题

  • 逻辑覆盖错误:连续两次调用recognize_google并赋值给同一个you变量,最终只会保留最后一次法语识别的结果,英文识别结果被直接覆盖;且两次识别共用同一个异常捕获块,若英文识别成功但法语识别触发异常,会直接进入异常分支,丢失有效识别结果
  • 语法错误:with speech_recognition.Microphone() 语句下的audio = robot_ear.listen(mic)没有正确缩进,运行会直接报语法错误
  • 笔误:请求异常分支里的brokem为拼写错误,正确应为broken
  • 未利用API原生能力:Google语音识别接口本身支持同时传入多个目标语言,不需要重复调用接口

修复方案

优先使用API原生的多语言识别能力,在language参数中传入多个语言代码,用英文逗号分隔,写在前面的语言识别优先级更高:

import speech_recognition

robot_ear = speech_recognition.Recognizer()

with speech_recognition.Microphone() as mic:
    audio = robot_ear.listen(mic)

try:
    # 同时支持英、法双语识别,优先级英语>法语
    you = robot_ear.recognize_google(audio, language="en-US,fr-FR")
    print(f"You: {you}")
except speech_recognition.UnknownValueError:
    print("I didn't get that")
except speech_recognition.RequestError:
    print("Sorry, I am broken")
except:
    you = ""

可选扩展:分别获取不同语言的识别结果

如果需要分别输出同一段音频的英语、法语识别结果,可以单独给每个识别逻辑加异常捕获,避免互相影响:

import speech_recognition

robot_ear = speech_recognition.Recognizer()

with speech_recognition.Microphone() as mic:
    audio = robot_ear.listen(mic)

result = {}
# 识别英语
try:
    result["en"] = robot_ear.recognize_google(audio, language="en-US")
except:
    result["en"] = "未识别到有效英语内容"

# 识别法语
try:
    result["fr"] = robot_ear.recognize_google(audio, language="fr-FR")
except:
    result["fr"] = "未识别到有效法语内容"

print("英语识别结果:", result["en"])
print("法语识别结果:", result["fr"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:45:01