信号处理最让我感兴趣的是在音乐中的潜在应用。我记得前段时间我看到了一个应用程序的预览(对不起,忘记名字了)
也许古巴?
它可以收听某人弹吉他的录音,并在时间线上自动将其与实际演奏的音符/和弦绘制成图表
深度简化,当你弹奏一个音符时,你会产生一个具有给定频率的周期性波。有一个数学技巧(傅里叶变换 DFT)将波转换为频谱,而不是根据时间呈现强度,而是根据波的频率显示它。例如,来自音叉的完美 A 音符会产生 440 Hz 的振荡波。在时域中,这将显示为正弦波。在频域中,它将显示为以 440 Hz 为中心的单个窄尖峰。
现在,当您弹奏吉他时,您不会产生完美的正弦波。敲击 A 会产生基本频率 440 Hz,但也会产生很多额外的频率(例如 880,高八度,但也有很多其他更高和更低的频率),由于振动弦的物理特性,材料和吉他的形状等。这些额外的频率被称为谐波,它们与基音混合以产生“吉他的声音”(在音乐术语中称为音色)。不同的乐器(比如钢琴)将有不同的谐波与基音混合,产生不同的音色。
DSP 程序所做的是对输入信号执行 DFT。通过额外的技巧,他们可以找到基波和谐波,并根据他们的发现推断出你演奏的音符。这必须快速发生,因为您可以在现场演奏并触发特殊技巧时找到音符。例如,您可以在吉他上弹奏一个 A 音符,DSP 将其理解为 A 并将其替换为钢琴的 A,因此您可以从扬声器中获得钢琴的声音。
使用该程序,用户可以移动它们甚至编辑它们。现在,显然这要复杂得多,但它涉及同样的事情吗?信号处理?我还对音乐可视化器和智能照明系统中的可能应用感兴趣。
是的。一旦进入频域,事情就变得非常简单。例如,您可以根据语音频率点亮一个特定的灯,然后用低音鼓点亮另一个灯。
我的理解是,对 MP3 等压缩音频格式进行此处理不会产生与包含单独音轨的 MIDI 相同的结果(也许我误解了)。
他们是两个不同的东西。MP3 是一种来自声波的压缩格式。基本上,它需要控制扬声器的内容并对其进行压缩。这个想法是一样的:DFT,然后删除不太可能听到的东西(例如,在高强度声音之后出现的高音不太可能被听到,所以它被删除了)。
另一方面,MIDI 是事件的卷轴(你知道,就像遥远西部的那些钢琴,带有卷纸卷轴)。该文件不包含音乐。相反,它包含 MIDI 播放器在特定时间使用特定乐器演奏特定音符的说明。“乐器库”的质量(除其他外)是区分糟糕的 MIDI 播放器(听起来像儿童玩具)和好的 MIDI 播放器(听起来很逼真,特别是对于钢琴和小提琴,对于管乐器我仍然必须听到一个现实的)。
它需要从 MIDI 到 MP3,您只需通过 MIDI 播放器进行演奏。反过来做是完全不同的故事,而且要复杂得多,正如您所说,这就是 DSP 发挥作用的地方。
这就像煮一个鱼缸。你得到一个鱼汤。但要从鱼汤中回到鱼缸,就困难多了。
PCM 等未压缩格式会比 MP3 做得更好吗?
PCM 是一种将模拟信号转换为数字信号的技术。所以你的问题有一个根本的误解,即不存在 PCM 格式(RAW 格式是一个很接近的电话,基本上只包含原始数据)。如果您问未压缩的 WAV(包含 PCM 数据)是否比 MP3 更好,那么是的,但有时问题是这对人耳来说真正重要多少,以及您必须对这些数据执行多少后处理。
知道是否有任何现有的库可以促进这一点,或者与该主题相关的面向计算机科学/编程的文章,也许还有示例代码。即使是开源声音/音乐可视化器或任何其他开源声音处理代码也会很棒。
如果你喜欢python,看看这个页面
对不起,如果我没有任何意义。就像我说的,我不知道我在说什么。
我也没有,但我玩弄了一点。