代码之家  ›  专栏  ›  技术社区  ›  Jorge Israel Peña

以编程方式“听”声音(信号处理?)

  •  10
  • Jorge Israel Peña  · 技术社区  · 15 年前

    Computer Vision 嗯,你知道吗 ),其中一个应用程序可以是图像识别,例如 Optical Character Recognition ,我相信。然而,我更感兴趣的是“计算机听力”,这是我刚刚学到的 Digital Signal Processing

    我最感兴趣的是信号处理在音乐中的潜在应用。我记得不久前我看到了一个应用程序的预览( 对不起,忘记名字了 )它可以听某人弹奏吉他的录音,并自动将其与实际弹奏的音符/和弦绘制成时间线图。使用该程序,用户可以移动这些文件,甚至编辑它们。现在,显然这要复杂得多,但它涉及到同样的事情吗?信号处理?我还对音乐可视化工具和智能照明系统的可能应用感兴趣。

    我的理解是,在压缩音频格式(如MP3)上执行此处理不会产生与包含单独曲目的MIDI相同的结果(可能我误解了)。像PCM这样的未压缩格式会比MP3更好吗?我对声音处理一无所知,这正是我从目前所读到的东西中推断出来的。

    this question 它有很好的答案和链接,涵盖了我的很多问题。然而,我发现的大多数链接都是理论性的,我相信这些链接都很有趣,而且鉴于我对该主题的兴趣,绝对值得一读,但我想知道是否有任何现有的图书馆可以促进这一点,或者与该主题相关的文章面向计算机科学/编程,也许还有示例代码。即使是开源的声音/音乐可视化工具或任何其他开源的声音处理代码也会很棒。

    对不起,如果我说不通的话。就像我说的,我不知道我在说什么。

    4 回复  |  直到 8 年前
        1
  •  16
  •   Stefano Borini    15 年前

    关于信号处理是最重要的 潜在的音乐应用。我 还记得前一阵子我看了预告片吗 (姓名)

    cubase ?

    可以听一段 有人弹吉他 那是玩过的

    现在,当你弹吉他时,你不会产生完美的正弦波。由于振弦的物理性质、吉他的材料和形状等原因,敲击A将产生基本频率440 Hz,但也会产生许多额外频率(例如,880,在八度以上,但也会产生许多其他较高和较低的频率)。。这些额外的频率被称为谐波,它们与基波混合产生“吉他的声音”(用音乐术语称之为“吉他的声音”) 音质 ).不同的乐器(比如钢琴)将有不同的基音和声混合,产生不同的音色。

    DSP程序所做的是对输入信号执行DFT。通过额外的技巧,他们可以找到基波和谐波,并根据他们的发现推断出你弹奏的音符。这必须很快发生,因为你可以在现场演奏和触发特殊技巧时找到音符。例如,您可以在吉他上敲击A音符,DSP理解它是A,并用钢琴上的A替换它,所以从扬声器可以获得钢琴的声音。

    他们现在,显然这是很多 更复杂,但它是否涉及 我也对可能发生的事情感兴趣 音乐可视化工具及应用

    对一旦进入频域,事情就会变得非常简单。例如,您可以根据语音频率点亮一个特定的灯光,并使用低音鼓点亮另一个灯光。

    对压缩音频的处理 MP3等格式不会产生相同的结果 结果为MIDI,其中包含 分开的轨道(也许我

    另一方面,MIDI是一个事件卷轴(你知道,就像那些在遥远的西部,有滚动纸卷轴的钢琴)。该文件不包含音乐。它包含MIDI播放器在特定时间使用特定乐器演奏特定音符的说明。“乐器库”的质量(除其他外)是区分一个糟糕的MIDI播放器(听起来像儿童玩具)和一个好的MIDI播放器(听起来很逼真,尤其是钢琴和小提琴,对于管乐器,我仍然需要听一个逼真的)。

    从MIDI到MP3,你只需通过MIDI播放器进行演奏。换一种方式来做完全是另一回事,而且要复杂得多,正如你所说,DSP就是在这里发挥作用的。

    这就像煮一个菲斯克罐。你有鱼汤。但是要从鱼汤回到鱼缸里,要困难得多。

    一个未压缩的

    PCM是一种将模拟信号转换为数字信号的技术。因此,您的问题有一个根本性的误解,即不存在PCM格式(原始格式是一个接近的调用,基本上只包含原始数据)。如果你问一个未压缩的WAV(包含PCM数据)是否比MP3好,那么是的,但有时问题是这对人耳有多重要,以及你需要对这些数据进行多少后处理。

    知道是否有任何现有的 或与此主题相关的文章 科学/编程,也许 声音/音乐可视化工具或任何其他 开源声音处理代码 那太好了。

    如果你喜欢python, take a look at this page

    我也不喜欢,但我玩了一下。

        2
  •  6
  •   Artelius    15 年前

    我的理解是,在压缩音频格式(如MP3)上执行此处理不会产生与包含单独曲目的MIDI相同的结果(可能我误解了)。

    MIDI基本上存储乐器信息和音符。还有其他影响(音量、俯仰弯曲、颤音、攻击率等)

    不是真正的数字信号处理。

    像PCM这样的未压缩格式会比MP3更好吗?

    也许有点;这取决于应用程序。MP3降低了所需频率的精度 对……不敏感。如果你想做可视化,那么MP3可能是不错的。

    但是如果你想,比如说,确定录音中播放的是哪种乐器,那么在人类不敏感的频率中可能隐藏着有用的信息。

    The Scientist and Engineer's Guide to Digital Signal Processing 是一个 程序员参考。第8章解释了离散傅里叶变换(在MP3处理和许多其他地方用于分离波的成分频率)。

        3
  •  1
  •   Brian Vaughn    13 年前

    我记得不久前我看到了一个应用程序的预览(对不起,忘了名字),它可以听某人弹奏吉他的录音,并自动将其与实际弹奏的音符/和弦绘制在时间线上。

    你可能也会想到Melodyne: http://www.celemony.com/cms/

        4
  •  0
  •   Kirk Broadhurst    15 年前

    我认为你需要准确地定义你在寻找什么,你想做什么。

    如果你想了解 DSP , MIDI PCM

    如果你打算演奏一些DSP,比如说吉他声音,那么理想情况下你会有吉他本身的录音(而不是包含鼓或人声的混合音轨)。很明显,与分析含有大量“噪声”的信号相比,在没有额外噪声的情况下分析离散信号会得到更好的结果。因此,是的,多轨录音比“MP3”更可取。

    典型的MP3包含左声道和右声道(曲目),因此技术上是多声道的。当音乐被录制(至少是专业的)时,不同的信号被精确地录制到不同的曲目上,以便以后可以对其进行编辑和离散处理。