Python 流随机音频与烧瓶
我有下面的函数,它生成一个音调并将其写入wav文件Python 流随机音频与烧瓶,python,web,flask,audio,Python,Web,Flask,Audio,我有下面的函数,它生成一个音调并将其写入wav文件 import struct import numpy as np from scipy import signal as sg import wave import math # Parameters sampleRate = 44100 frequency = 400 duration = 1 # define wave file file = wave.open('test.wav', 'w') file.setnchannels(1
import struct
import numpy as np
from scipy import signal as sg
import wave
import math
# Parameters
sampleRate = 44100
frequency = 400
duration = 1
# define wave file
file = wave.open('test.wav', 'w')
file.setnchannels(1)
file.setsampwidth(2)
file.setframerate(sampleRate)
def generate(output, freq, dur):
# create sine wave
n_cycles = math.floor(freq*dur) # number of cycle
dur2 = n_cycles /freq # adjusted duration
samples = dur2*sampleRate
x = np.arange(samples+1) # want inclusive range
sineWave = (32767.0*np.sin(2 * np.pi * freq * x / sampleRate))
for i in sineWave:
value = i
data = struct.pack('<h', int(value))
output.writeframesraw(data);
for x in range(1):
generate(file, 1153.1, 1.0)
file.close();
导入结构
将numpy作为np导入
来自scipy的输入信号为sg
输入波
输入数学
#参数
采样率=44100
频率=400
持续时间=1
#定义波形文件
file=wave.open('test.wav','w')
文件.setnchannels(1)
file.setsampwidth(2)
file.setframerate(sampleRate)
def生成(输出、频率、dur):
#创建正弦波
n#u循环=数学地板(频率*dur)#循环次数
dur2=n#u个周期/频率#调整的持续时间
样品=dur2*取样器
x=np.arange(样本+1)#想要包含范围
正弦波=(32767.0*np.sin(2*np.pi*freq*x/采样器))
对于正弦波中的i:
值=i
data=struct.pack('你能扩展一下你的例子来说明这个函数是如何运行的吗?具体来说就是什么是输出
。这是如何创建一个wav的?我粘贴了我当前代码的其余部分。我希望我能带着答案回到这个问题上来,但解决方案可能介于和之间。