首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python、Numpy数组和WAVE模块编写WAV文件

使用Python、Numpy数组和WAVE模块编写WAV文件
EN

Stack Overflow用户
提问于 2016-11-24 09:14:49
回答 3查看 19.7K关注 0票数 2

我正在尝试实现Karplus-强算法。

当我玩(通过木星笔记本使用音频(y,rate=Fs))收集的numpy阵列(代表吉他协奏曲)时,一切看起来都很好。

不幸的是,使用WAVE模块将numpy数组:y写入wav文件是不正确的(使用下一个python代码):

代码语言:javascript
复制
noise_output = wave.open('k-s.wav', 'w')
noise_output.setparams((1, 4, Fs, 0, 'NONE', 'not compressed'))

for i in range(0, len(y)):
     value = y[i]
     packed_value = struct.pack('f', value)
     noise_output.writeframes(packed_value)

noise_output.close()

y的每个元素是

代码语言:javascript
复制
<type 'numpy.float64'>

为了正确地写入WAV文件,我应该如何修改写入循环?

有关这个问题的更多信息。在写入WAV之前,y数组的第一个元素是:

代码语言:javascript
复制
 [ 0.33659756  0.33659756 -0.43915295 -0.87036152  1.40708988  0.32123558
-0.6889402   1.9739982  -1.29587159 -0.12299964  2.18381762  0.82228042
 0.24593503 -1.28067426 -0.67568838 -0.01843234 -1.830472    1.2729578
-0.56575346  0.55410736]

在将元素写入WAV文件之后,关闭WAV文件并再次读取它,我得到了收集数组的前20个元素的如下内容:

代码语言:javascript
复制
[ 1051481732  1051481732 -1092560728 -1084305405  1068768133  1050966269
 -1087349149  1073523705 -1079648481 -1107564740  1074512811  1062371576
  1048303204 -1079775966 -1087571478 -1130954901 -1075163928  1067642952
 -1089415880  1057872379]
EN

Stack Overflow用户

发布于 2022-02-01 22:46:23

从文件中读取和写入波形文件:

代码语言:javascript
复制
from  scipy.io import wavfile 

sampling_rate, data = wavfile.read(wpath)
wavfile.write('abc1.wav', sampling_rate, data)
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40782159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档