use*_*828 3 python arrays audio scipy anaconda
我正在使用 Anaconda3 和 SciPy 尝试使用数组编写 wav 文件:
wavfile.write("/Users/Me/Desktop/C.wav", 1000, array)
(我不知道每秒有多少个样本,我打算玩这个,但是我打赌是 1000)
array 返回一个包含 3000 个整数的数组,因此该文件将持续 3 秒。
但是,它在尝试运行时给了我这个错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-21-ce3a8d3e4b4b> in <module>()
----> 1 wavfile.write("/Users/Me/Desktop/C.wav", 1000, fin)
/Users/Me/anaconda/lib/python3.4/site-packages/scipy/io/wavfile.py in write(filename, rate, data)
213
214 try:
--> 215 dkind = data.dtype.kind
216 if not (dkind == 'i' or dkind == 'f' or (dkind == 'u' and data.dtype.itemsize == 1)):
217 raise ValueError("Unsupported data type '%s'" % data.dtype)
AttributeError: 'list' object has no attribute 'dtype'
Run Code Online (Sandbox Code Playgroud)
您正在传递write一个普通的 python 列表,该列表没有调用的属性dtype(您可以通过研究错误消息来获取该信息)。的文档scipy.io.wavfile清楚地说明你应该传递给它一个 numpy 数组:
定义: wavfile.write(filename, rate, data)
文档字符串:
将 numpy 数组写为 WAV 文件
您可以将普通的 python 列表转换为一个 numpy 数组,如下所示:
import numpy as np
arr = np.array(array)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6243 次 |
| 最近记录: |