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

Python加载GMM模型报TypeError: a bytes-like object is required错误如何解决

错误原因

  • 文件打开模式错误:pickle.load() 处理的是二进制序列化数据,要求读取的是字节流,你使用文本模式'r'打开文件,返回的是字符串格式的文本流,不符合接口要求,直接触发类型报错。
  • 变量名笔误:生成gmmFiles的列表推导式中,遍历的临时变量是fname,但判断后缀时误用了未定义的name变量,这行代码运行时会直接抛出NameError。

修复方案

把文件打开模式改为二进制读模式'rb',同时修正变量名笔误即可,修复后的完整代码如下:

import os
import pickle

path = "speaker_models/"

gmmFiles = [os.path.join(path, fname) for fname in 
            os.listdir(path) if fname.endswith('.gmm')]

models = [pickle.load(open(fname, 'rb')) for fname in gmmFiles]

补充优化建议

建议使用with上下文管理器打开文件,避免资源泄漏,写法如下:

models = []
for fname in gmmFiles:
    with open(fname, 'rb') as f:
        models.append(pickle.load(f))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:15:04