我试图制作一个非常基本的程序,它可以将midi文件转换成python中的一个波形,所以作为一个非常基本的测试,我使用np.cos生成了几个波形,然后将它们相加在一起,然而,当我尝试使用声音设备播放我生成的波形时,听起来真的很奇怪。我一点也不是声音和信号概念方面的专家,这对我来说是一个很新的课题,所以任何帮助都是非常感谢的。
以下是代码:
import sounddevice as sd
import numpy as np
def make_wave(freq, duration, sample_rate = 22050):
wave = []
for i in range(
正如您可能注意到的,我对python和声音处理非常陌生。我(希望)使用python、logfbank和mfcc函数从波形文件中提取FFT数据。( logfbank似乎给出了最有希望的数据,mfcc的输出对我来说有点奇怪)。
在我的程序中,我希望更改logfbank/mfcc数据,然后从它创建wave数据(并将它们写入文件)。我没有发现任何关于从FFT数据中创建波形数据的过程的信息。你们中有谁知道如何解决这个问题吗?我会非常感激:)
到目前为止,这是我的代码:
from scipy.io import wavfile
import numpy as np
from python_speech_
因此,我使用WebAudio应用程序接口显示来自麦克风的声音流的波形和快速傅立叶变换。
我的问题是,在特定时刻每个数据数组有多大?例如,看看AnalyserNode中的函数。它在文档中说它是"copies the current waveform, or time-domain, data into a Uint8Array"。current waveform到底是什么?声音输入的最后一秒?当前波形数据的大小是否取决于输入频率?
在其他方面,更像是接收数据块的流接口,每个块有多大?如果我们每100ms只获取一次时域数据,我们是否会错过在这两个时间之间发生的声音,或者声波被缓冲到