私はこのコードを持っています:
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になる方法です。サンプルの最大値を下回る必要があります (負の場合は上回る必要があります)。