首页 > 解决方案 > 使用 scipy.io.wavfile 时出错

问题描述

我在使用从 scipy.io.wavfile 读取的函数时遇到了一些麻烦。

我的尝试:

from scipy.io.wavfile import read
import matplotlib.pyplot as plt

fs, data = read('A.wav')

这是错误消息:

在此处输入图像描述

A.wav 文件和 .py 文件在同一目录下有什么问题?

谢谢你。

标签: pythonscipy

解决方案


根据VLC,您的文件“A.wav”使用编解码器“PCM MU-LAW (mlaw)”。scipy 库无法读取该格式的 WAV 文件(Python 的标准库也无法读取wave)。要使用 scipy,您必须使用其他工具将文件转换为 PCM 或 IEEE 浮点 [*]。例如,我使用 VLC 将文件转换为“Audio - CD”格式,并且能够使用 scipy 读取新文件。

[*] 您可能不需要看到的技术细节:这些格式分别对应于 WAV 文件格式块中的wFormatTagvalueWAVE_FORMAT_PCM = 0x0001wFormatTagvalue 。WAVE_FORMAT_IEEE_FLOAT = 0x0003


推荐阅读