繁体   English   中英

Python WAV“ TypeError:数据类型无法理解”错误

[英]Python WAV “TypeError: data type not understood” error

我在使用Python读取.wav文件时遇到了问题。 我想读取文件的幅度和采样率。

我尝试使用以下代码读取文件:

import os
folder = os.getcwd() + '\\WAV'
file_name = 'Guitar.ff.sul_E.C5Bb5'
path = folder + '\\' + file_name + '.wav'
rate,data=read(path)

在上面的代码之前,我从scipy库中导入了read函数,如下所示:

从scipy.io.wavfile导入读取,写入

numpy我导入:

从numpy import linspace,sin,pi,int16

我收到错误“ TypeError:数据类型无法理解”。

该代码对于另一个.wav文件非常有效,并且我想知道如何(如果可能)更改代码以读取此文件,或者是否必须更改.wav文件才能读取它。

以下是文件的属性:

  1. 文件:Guitar.ff.sul_E.C5Bb5.wav
    • 大小:38.87 MB
    • 时长:1分10秒
    • 采样率:96 KHz
    • 样本大小:24位
    • 比特率:4,608 kbps
    • 频道: 尝试过1和2
  2. 文件:440hzAtone.wav
    • 大小:173 KB
    • 时长:2秒
    • 采样率:44.1 KHz
    • 样本大小:16位
    • 比特率:705 kbps
    • 频道数:1

第一个文件无效,第二个文件有效。

我对1和2通道有完全相同的错误。

更改文件名以使其没有点并不重要。 它似乎可以通过任何一种方式到达文件,但无法读取它。

编辑:

将位深度从24更改为16后,问题就消失了。 谢谢Warren Weckesser的评论。

不幸的是,scipy的wavfile阅读器无法读取24位文件: github上的scipy问题1930

退房https://pypi.python.org/pypi/wavio或获取源https://github.com/WarrenWeckesser/wavio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM