当你听到AI创作的歌曲时,有没有想过这些声音是如何从一堆数字和算法中产生的?音频信号在计算机中本质上是一串数字,但音乐却是一种高度结构化的声音艺术。AI是如何将抽象的数学表示转换为我们能够欣赏和感动的声音的呢?答案就在于频谱图——这个连接数学与音乐的桥梁。本文将用通俗易懂的方式,带您了解AI音频生成背后的核心原理。
声音的数学本质
波形:声音的原始表示
在现实世界中,声音是空气分子的振动。当这些振动传到我们的耳朵时,我们就"听到"了声音。在计算机中,这种振动被采样为一串数字。以CD质量为例,每秒需要对声音进行44100次采样(采样率44.1kHz),每个采样点用一个16位的数字表示声音的振幅。
这种表示方式叫做脉冲编码调制(PCM)。如果我们把一个声音的PCM数据画成图,就会得到一条不断上下波动的曲线——这就是波形图。波形图直观地展示了声音的振幅随时间变化的规律:高处代表声音强,低处代表声音弱。
然而,波形图有一个根本性的局限:它很难让我们"看懂"声音的频率成分。一段包含钢琴、小提琴和人声混合的音乐,在波形图上只是一堆杂乱无章的曲线,我们无法分辨其中各个乐器的声音特征。这就像把一束混合光用肉眼去看,只能看到混合后的白色,而无法区分其中的各种颜色。
频谱:声音的"颜色"分解
就像白光可以被棱镜分解成七色光一样,任何复杂的声音也都可以被分解成不同频率的简单声音。这个过程在数学上通过傅里叶变换实现。傅里叶变换是一位法国数学家约瑟夫·傅里叶在19世纪初提出的理论,其核心思想是:任何周期性信号都可以表示为一系列正弦波和余弦波的叠加。
可以把傅里叶变换想象成一个神奇的"声音棱镜"。当一段音乐通过这个棱镜时,它会被分解成各个"声音颜色"——低频的轰鸣、中频的人声、高频的泛音等。我们不仅能看到每种频率成分的强度,还能知道它们随时间如何变化。这就是频谱图所展示的信息。
频谱图:时间与频率的二维表示
短时傅里叶变换
虽然傅里叶变换能够分解频率,但有一个问题:它丢失了时间信息。傅里叶变换告诉我们这段音频包含哪些频率,但没说这些频率在什么时候出现。为了同时获得时间和频率信息,我们需要使用短时傅里叶变换(STFT)。
短时傅里叶变换的基本思想是"分而治之":把音频分成很多小段,每段大约几十毫秒,对每小段分别做傅里叶变换。这样得到的结果不仅包含频率信息,还能告诉我们这些频率随时间的变化情况。
STFT的结果是一个二维矩阵:横轴是时间,纵轴是频率,矩阵中每个点的颜色(或亮度)代表那个时间点那个频率的强度。这个矩阵就是我们所说的频谱图(Spectrogram)。频谱图是对声音的一种"可视化"表示,它让复杂的音频信号变得可以"看见"。
梅尔频谱图:更贴近人耳的表示
虽然普通频谱图已经很有用了,但科学家发现它与人耳的感知并不完全匹配。人类对频率的感知是"对数的"——我们能很容易地区分低频的微小变化,但对高频变化的分辨能力较差。例如,我们可以轻松分辨100Hz和120Hz的差别(20Hz的差异),但很难分辨1000Hz和1020Hz的差别(同样是20Hz的差异,但相对比例小得多)。
为了解决这个问题,研究者们提出了梅尔尺度(Melscale)。梅尔尺度是一种经过特殊设计的频率刻度,它模拟了人耳对频率感知的对数特性。在这个尺度上, 低频部分被"拉伸",高频部分被"压缩",使得相邻频率之间的感知差异更加均匀。
梅尔频谱图(Mel Spectrogram)就是基于梅尔尺度计算的频谱图。它已成为音频处理和AI音乐生成领域最广泛使用的音频表示形式。几乎所有现代音乐AI系统,包括MusicGen、MiniMax等,都以梅尔频谱图作为核心的中间表示。
声码器:从频谱图到波形
为什么需要声码器
AI音乐生成系统通常以频谱图为内部表示,但最终用户需要的是波形音频文件(.wav、.mp3等)。这就需要一个"翻译器"——将频谱图转换回波形的算法。这个"翻译器"在音频处理领域被称为声码器(Vocoder)。
从数学上讲,声码器需要解决的是傅里叶变换的逆问题:我们已知频谱图(时间-频率-强度),需要还原出原始波形。但这个问题并非简单——频谱图只记录了每个频率成分的强度,没有记录它们的相位信息。相位信息决定了各个频率成分之间的相对位置,对于重建正确的波形至关重要。
梅尔频谱图 → 神经网络预测 → 声码器 → 波形音频
神经声码器的工作原理
早期的声码器主要基于Griffin-Lim算法,这是一种迭代方法,通过不断猜测和修正相位信息来重建波形。这种方法能够工作,但重建的音频往往听起来"金属感"较重,缺少自然音频的柔和质感。
现代AI系统普遍使用神经声码器——使用神经网络来学习从频谱图到波形的映射。神经声码器通过在大规模音频数据上训练,能够学习到频谱图与波形之间复杂的对应关系,包括那些难以用数学公式描述的微妙规律。
代表性的神经声码器技术包括:WaveNet使用了自回归的方法逐个生成采样点,生成质量极高但速度较慢;Parallel WaveNet和WaveGlow通过并行化大幅提升了生成速度;HiFi-GAN则在质量和速度之间取得了很好的平衡,被广泛应用于现代音乐生成系统。
AI生成音频的完整流程
编码阶段:理解音乐
在AI音乐生成系统中,编码阶段负责将输入(可能是文本、参考音频或随机噪声)转换为模型能够理解的内部表示。如果是文本输入,系统会使用自然语言处理技术提取关键信息,如音乐风格、情绪、速度、乐器等;如果是参考音频,系统会使用音频编码器将其转换为特征向量。
这些信息随后被注入到生成模型中。以MusicGen为例,它使用特殊的文本编码器将"欢快的电子音乐"这样的描述转换为一系列语义向量,然后这些向量会在生成过程中持续影响音乐的各个方面——节奏会不会快、情绪是高昂还是低沉、是否需要合成器音色等。
生成阶段:创造音乐
生成阶段是AI音乐系统的核心。模型会根据输入条件,一个时间步一个时间步地生成梅尔频谱图。生成的频谱图需要同时满足两个目标:一是符合输入条件指定的要求,二是具有音乐自身的规律性和美感——旋律线要流畅、和声要协调、节奏要稳定。
这个过程涉及到复杂的概率计算和优化决策。模型需要在无数种可能的频谱图配置中,找到那些既符合条件约束、又具有高质量音乐特性的组合。对于不同技术路线的系统(自回归、扩散或混合),具体的生成算法各有不同,但最终目标都是生成高质量的频谱图表示。
解码阶段:还原声音
生成的梅尔频谱图最后需要通过声码器转换成波形音频。这一步对于最终听感至关重要——即使是高质量的频谱图,如果声码器性能不佳,输出也会听起来失真或不自然。
现代神经声码器如HiFi-GAN能够从频谱图中恢复出非常逼真的波形,保留原频谱图中包含的所有音色细节和动态信息。恢复后的波形可以直接保存为音频文件,或者进行进一步的后处理(如音量标准化、格式转换等)。
频谱图在AI音乐中的关键作用
频谱图之所以成为AI音乐系统的核心表示,有几个关键原因。首先,频谱图大幅降低了数据维度——原始PCM每秒有44100个采样点,而对应的梅尔频谱图可能只有几十到上百个时间帧,每帧包含几十到上百个频率通道。这种压缩使得神经网络能够更高效地处理和生成音频。
其次,频谱图提供了一种"可解释"的表示——我们可以直接"看到"音乐的频率结构。长什么样?明亮还是暗淡?节奏快还是慢?这些信息都能从频谱图中直观地观察到。这对于调试和优化AI音乐系统非常有帮助。
第三,频谱图格式便于进行各种音频处理操作,如时间拉伸、音高变换、混响添加等。这些操作在频谱图层面比在波形层面更容易实现和优化。
通过本文的解析,我们了解了从频谱图到音乐的完整生成流程。频谱图作为连接数学表示与音乐艺术的桥梁,在AI音频生成中扮演着核心角色。理解这些原理,不仅能帮助我们更好地使用AI音乐工具,也能让我们对音乐的本质有更深入的认识。