我在使用 Python 读取 .wav 文件时遇到问题。我想读取文件的幅度和采样率。
我尝试使用以下代码读取文件:
import os
folder = os.getcwd() + '\\WAV'
file_name = 'Guitar.ff.sul_E.C5Bb5'
path = folder + '\\' + file_name + '.wav'
rate,data=read(path)
在上面的代码之前,我read
从scipy
库中导入函数如下:
从 scipy.io.wavfile 导入读,写
从numpy
我进口:
从 numpy 导入 linspace,sin,pi,int16
我收到错误“TypeError:数据类型不理解”。
该代码适用于不同的 .wav 文件,我想知道如何(如果可能)更改代码以读取此文件,或者是否必须更改 .wav 文件才能读取它。
以下是文件的属性:
- 文件:吉他.ff.sul_E.C5Bb5.wav
- 大小:38.87 MB
- 时长:1分10秒
- 采样率:96 KHz
- 样本大小:24 位
- 比特率:4,608 kbps
- 渠道:尝试1和2
- 文件:440hzAtone.wav
- 大小:173 KB
- 时长:2 秒
- 采样率:44.1 KHz
- 样本大小:16 位
- 比特率:705 kbps
- 频道:1
第一个文件不起作用,第二个文件起作用。
对于 1 和 2 通道,我得到了完全相同的错误。
更改文件名使其没有点并不重要。它似乎以任何一种方式到达文件,但无法读取它。
编辑:
将位深度从 24 更改为 16 后,问题就消失了。感谢 Warren Weckesser 的评论。