pickle存语音文件,用pickle.load()后,能用librosa读取语音文件吗?
pickle 所使用的数据格式仅可用于 Python。这样做的好处是没有外部标准给该格式强加限制,比如
JSON 或 XDR(不能表示共享指针)标准;但这也意味着非 Python 程序可能无法重新读取 pickle 封存的
Python 对象。
默认情况下,pickle 格式使用相对紧凑的二进制来存储。如果需要让文件更小,可以高效地压缩 由
pickle 封存的数据。
pickletools 模块包含了相应的工具用于分析pickle 生成的数据流。pickletools 源码中包含了
对 pickle 协议使用的操作码的大量注释。
当前共有 6 种不同的协议可用于封存操作。使用的协议版本越高,读取所生成 pickle 对象所需的 Python
版本就要越新。
• v0 版协议是原始的“人类可读”协议,并且向后兼容早期版本的 Python。
• v1 版协议是较早的二进制格式,它也与早期版本的 Python 兼容。
• v2 版协议是在 Python 2.3 中引入的。它为存储new-style class 提供了更高效的机制。欲了解有关第 2
版协议带来的改进,请参阅 PEP 307。
• v3 版协议是在 Python 3.0 中引入的。它显式地支持bytes 字节对象,不能使用 Python 2.x 解封。这
是 Python 3.0-3.7 的默认协议。
• v4 版协议添加于 Python 3.4。它支持存储非常大的对象,能存储更多种类的对象,还包括一些针对
数据格式的优化。它是 Python 3.8 使用的默认协议。有关第 4 版协议带来改进的信息,请参阅 PEP
3154。
• 第 5 版协议是在 Python 3.8 中加入的。它增加了对带外数据的支持,并可加速带内数据处理。请参
阅 PEP 574 了解第 5 版协议所带来的改进的详情。