我有这个代码:
import numpy as np
import scipy.io.wavfile
import math
rate, data = scipy.io.wavfile.read('xenencounter_23.wav')
data2 = []
for i in range(len(data)):
data2.append([int(round(math.sin(data[i][0])*3000)), int(round(math.sin(data[i][1])*3000))])
data2 = np.asarray(data2)
print data2
scipy.io.wavfile.write('xenencounter_23sin3.wav',rate,data2)
这打印(截断):
[[-2524 2728]
[ -423 -2270]
[ 2270 423]
...,
[-2524 0]
[ 2524 -2728]
[-2270 838]]
wav 文件在 Windows Media Player 中打开并播放,因此至少格式正确。但是,当用 Audacity 打开它并查看单个样本时,它们都是 0,并且一致地,该文件根本没有声音。
我不明白的是上面列出的 numpy 数组是如何变成全 0 的。它应该低于样本的最大值(或高于,如果它是负数)。