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

Tkinter语音转文本插入报错AttributeError,求解决方案及替代工具

问题解决:AttributeError: 'dict' object has no attribute 'Text' 及语音转录方案

一、当前错误的解决思路

错误根源

你的代码中mic()函数里,micro.recognize_google(audio, language='vi', show_all=True)返回的是字典类型(show_all=True参数会返回完整的API响应结果),而非包含Text属性的对象,因此调用ghi.Text会触发AttributeError。

修复步骤

  1. 调整语音识别结果的获取方式
    有两种处理方式:

    • 方式一(推荐,直接获取识别文本):去掉show_all=True,让recognize_google直接返回字符串结果:
      ghi = micro.recognize_google(audio, language='vi')
      
    • 方式二(需保留完整响应的情况):从返回的字典中提取转录文本:
      ghi = micro.recognize_google(audio, language='vi', show_all=True)
      # 从字典的alternative列表中取第一个结果的transcript字段
      transcribed_text = ghi['alternative'][0]['transcript']
      
  2. 修正mic()函数的逻辑问题
    原代码中mic()内部重新定义的translate()函数不会自动执行,且存在输入框插入参数顺序错误(box.insert(ghi1,END)应为box.insert(END, ghi1))。优化后的完整mic()函数如下:

    def mic():
        micro = speech_recognition.Recognizer()
        with speech_recognition.Microphone() as mic_source:
            # 适配环境噪音,提升识别准确率
            micro.adjust_for_ambient_noise(mic_source, duration=0.5)
            audio = micro.listen(mic_source)
            try:
                # 获取越南语语音识别结果
                transcribed_text = micro.recognize_google(audio, language='vi')
                # 清空输入框并插入识别文本
                box.delete(1.0, END)
                box.insert(END, transcribed_text)
                # 调用已有的翻译函数完成自动翻译
                translate()
            except speech_recognition.UnknownValueError:
                box.insert(END, "无法识别语音内容")
            except speech_recognition.RequestError:
                box.insert(END, "语音识别服务请求失败,请检查网络")
    

二、替代语音转录库/AI工具

1. Whisper(OpenAI)

  • 特点:本地运行,多语言支持(含越南语),识别准确率高,支持实时转录和批量处理
  • 安装:pip install openai-whisper(需提前安装ffmpeg)
  • 示例代码:
    import whisper
    # 加载基础模型,可选tiny/base/small/medium/large
    model = whisper.load_model("base")
    # 转录语音(支持麦克风输入需额外处理,此处以音频文件为例)
    result = model.transcribe("your_audio.wav", language="vi")
    print(result["text"])
    

2. Vosk

  • 特点:轻量级离线语音识别,无需网络,隐私性好,支持多语言模型
  • 安装:pip install vosk,需下载对应越南语模型文件
  • 适用场景:对隐私要求高、无网络环境的本地应用

3. Azure Speech Service

  • 特点:云端服务,准确率极高,支持实时流式转录、多语言翻译一体化
  • 适用场景:企业级应用、需要稳定高准确率的场景(需注册Azure账号获取API密钥)

内容的提问来源于stack exchange,提问作者Phúc Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:45:04