所以我最近成功构建了一个系统,它将完全用python录制,绘制和播放音频wav文件.现在,我正试图在录制时和开始绘制并将文件输出到扬声器之间进行一些滤波和音频混合.但是,我不知道从哪里开始.现在我要读取初始wav文件,应用低通滤波器,然后将新过滤的数据重新打包到新的wav文件中.这是我用来绘制初始数据的代码.
import matplotlib.pyplot as plt
import numpy as np
import wave
import sys
spf = wave.open('wavfile.wav','r')
#Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int16')
plt.figure(1)
plt.title('Signal Wave...')
plt.plot(signal)
Run Code Online (Sandbox Code Playgroud)
以下是我用来生成单音测试音频文件的一些代码:
import numpy as np
import wave
import struct
freq = 440.0
data_size = 40000
fname = "High_A.wav"
frate = 11025.0
amp = 64000.0
sine_list_x = []
for x in range(data_size):
sine_list_x.append(np.sin(2*np.pi*freq*(x/frate)))
wav_file = wave.open(fname, "w")
nchannels = 1
sampwidth = 2
framerate = int(frate)
nframes = …Run Code Online (Sandbox Code Playgroud) 所以我最近尝试使用我的Raspbian(Debian for Raspberry Pi)操作系统安装scipy sudo pip install scipy.该命令工作没有太多麻烦,我可以看到位于下面的文件pi/build/scipy.
但是,当我真的尝试在python程序中导入它时,它让我ImportError: No module named scipy不知道如何将操作系统指向正确的位置来导入scipy模块.
所以我试图在java中创建一个程序,它将创建一个10乘10的矩阵,每个元素随机显示1或0.这是我到目前为止:
package random.matrix;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
class ex2 extends JFrame {
class Random {
GridLayout setLayout= new GridLayout(10, 10);
for (int i = 0; i < 10; i++) {
int number = (int) (Math.random() * 2);
String str = Integer.toString(number);
add(new JLabel(str, JLabel.CENTER));
}
}
public static void main(String[] args) {
JFrame frame = new ex2();
frame.setTitle("RandomMatrix");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这个程序应该运行得很好.但是,每当我尝试时,它都会说"非法启动类型",特指for循环线.任何人都可以帮我解决这个问题吗?我从来没有遇到过这样的错误.