(2023年3月)一些AI audio processing相关的ideas:音乐偏好,8-bit chiptune,GBA音乐

This article is categorized as "Garbage" . It should NEVER be appeared in your search engine's results.

写在最前面


没有当场记录下来,只能在5天以后凭借回忆去补充了。能想起多少就写多少。

写给自己:如果发现chatgpt的历史记录丢了,不用担心,在自己电脑的硬盘里保存了这篇笔记对应的2个对话的html文件,找出来即可。


源头:一个新的ai audio processing思路。

中间:有没有什么方法去量化一个人对音乐片段的偏好?(这里的片段有可能指一首歌曲中的10秒的片段)

终点:8-bit chiptune,以及GBA的音乐处理

🔗 [chrisdonahue/LakhNES: Generate 8-bit chiptunes with deep learning] https://github.com/chrisdonahue/LakhNES

以及

用Transformer识别钢琴演奏的音符(比如bytedance以前出的audio转midi)


部分内容是chatgpt生成的。

Part 1


给我提供一些思路!


chatgpt:

利用深度学习(如CycleGAN等)进行音乐风格迁移,将用户提供的钢琴作品自动转换为巴洛克~李斯特时期的音乐风格。这可以帮助那些对这一时期音乐风格感兴趣,但缺乏创作经验的音乐爱好者更好地了解和学习这一时期的音乐。


我刚刚想到了一个新的idea,你来帮我一起完善。在回顾了我收集的歌单以后,我发现我特别喜欢听这些歌曲(或者这些歌曲的片段):

巴洛克~李斯特时期的钢琴曲的某些特定片段。这些片段我会反复听,而其他部分内容我会听得比较少。我很难总结这些片段到底有什么规律,但一半来说,这些片段一般都属于“著名”的旋律。你知道youtube视频的“热度条“吗?比如一个10分钟的协奏曲,人们往往会反复听最后2分钟的高潮部分。

我根本不喜欢听交响曲。

我还喜欢一些上个世纪90年代的电子游戏的配乐。


chatgpt: 您的音乐喜好确实比较独特,传统的基于标签的推荐系统很难精准定位到您的喜好。针对这个问题,我们可以考虑使用深度学习技术来捕捉您喜欢的音乐片段的特征,并基于这些特征进行音乐推荐或生成。

自动发现喜欢的音乐片段:可以尝试使用类似于卷积神经网络(CNN)的深度学习模型,在您喜欢的音乐片段上进行训练,使模型能够捕捉这些片段的共性特征。训练好的模型可以用来分析新的音乐作品,自动找出可能符合您喜好的片段。

基于生成式对抗网络(GAN)的音乐生成:您可以尝试使用类似于CycleGAN的生成式对抗网络(GAN)来生成新的音乐作品。训练数据集包括您喜欢的巴洛克~李斯特时期的钢琴曲片段和电子游戏配乐。经过训练后,这个网络可以生成具有类似特征的新音乐作品,更有可能符合您的口味。

我们可以在音乐生成的过程中加入音高校正技术,确保生成的音乐作品具有较高的音准质量。此外,还可以尝试使用音乐风格迁移技术,将您喜欢的音乐片段风格迁移到其他作品中,创造出全新的、符合您喜好的音乐作品。


先不讨论我的个人喜好吧。尽管我的“个人喜好“比较独特,但我发现,对于同一首歌曲(比如一首李斯特的钢琴奏鸣曲),我反复听的片段,和youtube上的“热度条”基本是一致的。人们都特别喜欢反复听一些片段/旋律。这其中是否有什么规律可言?


chatgpt:

的确,对于许多音乐作品,人们普遍倾向于反复聆听某些特定片段或旋律,这可能归因于以下几个方面的原因:

  1. 易于记忆的旋律:人们倾向于重复聆听那些容易记住的旋律。这些旋律往往具有简单、明确的节奏和音高结构,使得听众容易将其铭记在心。
  2. 情感共鸣:某些音乐片段可能在情感上与听众产生共鸣,引发共鸣者的愉悦、兴奋或其他情感体验。人们可能会因为这些强烈的情感反应而倾向于重复聆听这些片段。
  3. 音乐张力与解析:有些音乐片段通过音乐张力的累积与解析来吸引听众。在这些片段中,作曲家可能会运用不同的和声、节奏和音高技巧来创造紧张感,然后通过解析这些张力来达到高潮。听众可能会为了体验这种张力与解析的过程而反复聆听这些片段。
  4. 艺术价值与技巧:某些音乐片段在艺术价值或技巧方面可能尤为出色,使其成为乐曲中的亮点。这些片段可能展示了作曲家或演奏者的独特创意、精湛技艺或对音乐形式的创新运用。因此,人们可能会为了欣赏这些艺术价值与技巧而重复聆听这些片段。

要捕捉这些音乐片段中的规律,可以尝试利用深度学习方法(如卷积神经网络、循环神经网络等)来分析这些片段的音乐特征,从而挖掘其共性。通过对大量受欢迎片段进行分析,可能可以找到一些共性规律,为音乐推荐和生成提供有价值的参考。


你是否听过一个大意为“生成巴赫作品”的科研项目?


chatgpt:

是的,我听说过这样一个关于生成巴赫风格作品的科研项目,它被称为DeepBach。DeepBach是一个基于深度学习的系统,使用神经网络生成与巴赫风格类似的多声部和声音乐。该系统的目标是生成在结构、和声和旋律方面与巴赫作品相似的音乐。DeepBach使用了一种特殊的长短时记忆网络(LSTM),结合了约束编程和数据驱动的方法,以产生在各个声部之间具有和谐关系的音乐。

DeepBach的独特之处在于,它可以生成具有巴赫风格特征的音乐,同时保持旋律的连贯性和和声的稳定性。这种方法在音乐生成领域取得了显著的成功,被认为是一种创新的技术。


你认为,现阶段要想生成风格类似李斯特的作品,技术上有什么难度?


chatgpt:

生成风格类似李斯特作品的技术难度主要来自以下几个方面:

  1. 音乐风格的复杂性:李斯特的音乐风格独特且复杂,涵盖了丰富的和声、旋律和节奏元素。要生成类似李斯特的作品,需要训练模型能够捕捉到这些复杂的音乐特征。
  2. 音乐表现力:李斯特的作品在表现力方面具有很高的要求,包括动态变化、触键方式和音色等。要生成具有类似表现力的作品,需要确保模型能够理解和生成这些细微的表现力差异。
  3. 音乐结构:李斯特的作品通常具有复杂的音乐结构,如通过奏、变奏和复调等手法展示主题。要生成类似结构的作品,需要训练模型能够理解和生成这些结构元素。
  4. 数据集准备:要生成李斯特风格的作品,需要具有足够大且具有代表性的李斯特作品数据集。这可能需要对现有的音乐库进行筛选、整理和预处理。
  5. 评估指标:衡量生成作品与李斯特风格的相似程度具有一定的主观性。因此,在评估生成作品的质量时,可能需要设计一种可靠的评估指标,以量化地衡量作品的风格相似度。

尽管存在这些挑战,但随着深度学习和生成模型技术的发展,生成类似李斯特风格的作品已经变得越来越可行。通过研究李斯特的音乐特征,利用强大的生成模型(如LSTM、Transformer等),有望实现生成具有李斯特风格特征的作品。


尝试帮我找出一篇论文:利用深度学习的某种方法,自动将这首音乐切分为多段。切分的依据可能来自于旋律,也可能来自于变调/转调,也可能来自于“小节“(比如说这首音乐实际上由2首音乐拼成的)。

(下面的内容其实有点扯,因为给的链接404了,不过后来我还是找到了那篇论文:🔗 [[2108.12955] Unsupervised Learning of Deep Features for Music Segmentation] https://arxiv.org/abs/2108.12955

这里有一篇关于使用深度学习方法自动将音乐切分成多段的论文:《Deep Unsupervised Structural Segmentation of Music》。论文作者为Francesc Lluís,Jordi Pons 和 Xavier Serra。这篇论文发表于2018年的International Conference on Learning Representations (ICLR)。

论文链接:https://openreview.net/pdf?id=rypL-6-CZ

论文摘要:音乐结构切分是音乐信息检索领域的一个重要任务。本文提出了一种深度学习方法,使用无监督的方式来实现音乐结构切分。作者提出了一种基于CNN(卷积神经网络)的方法,用于从音频片段中学习音乐表示。然后,利用这些表示计算自相似矩阵,并使用一种基于图卷积神经网络(Graph CNN)的方法来检测音乐结构的边界和切分点。实验结果表明,所提出的方法在公开数据集上取得了有竞争力的性能,证明了该方法在音乐结构切分任务上的有效性。

这篇论文的方法可以用于检测音乐中的旋律、变调/转调等变化,并将音乐切分成不同的段落。这对于理解音乐的结构和分析音乐的组成部分具有重要意义。


由于每个人对于一首音乐的“喜好划分”是完全不同的。有没有一种模型,输入:1, 完整的歌曲 2, 这首歌曲中特别喜欢的片段 ;输出:系统尽可能寻找这个片段被人喜欢的依据


chatgpt:

有一个可能适用的方法是使用深度学习和自动编码器(Autoencoder)来实现这个任务。自动编码器是一种无监督的神经网络,可以在输入数据中学习有意义的特征表示。对于这个任务,可以使用音乐自动编码器来提取音乐片段的有意义特征。

假设我们有一个训练好的音乐自动编码器,输入为完整的歌曲及其特别喜欢的片段,我们可以按照以下步骤操作:

  1. 首先,将喜欢的片段输入音乐自动编码器,提取其特征表示;
  2. 然后,将完整的歌曲分成小片段,并为每个片段提取特征表示;
  3. 接下来,比较喜欢的片段的特征表示与完整歌曲中每个片段的特征表示,计算它们之间的相似度;
  4. 最后,找出与喜欢片段特征表示最相似的片段,分析这些片段在音乐结构、旋律、和声等方面的共同特点,以找出这个片段被喜欢的依据。

这种方法的关键是构建一个有效的音乐自动编码器,能够捕捉到音乐片段中的关键特征。这可以通过大量的音乐数据进行训练实现。然而,值得注意的是,每个人对音乐的喜好和感知都是主观的,因此这种方法可能无法完全找出一个片段被喜欢的全部原因,但它可以在一定程度上揭示这个片段的一些共同特点。


Part 2


介绍一下8-bit music.


chatgpt:

8-bit music指的是使用8位音频样本率(约为22kHz)和8位深度(即256个离散化音量级别)的音乐创作和演奏。它最初是在20世纪80年代早期的8位游戏机和家用计算机上使用的一种音乐风格,随着游戏机和计算机的普及而逐渐流行开来。8-bit music通常采用简单的波形合成技术,如方波和脉冲波,以及极其基本的采样合成技术,以创建曲调、和声和节奏。因为它的音色非常独特,8-bit music现在也被广泛应用于电子音乐、电子游戏音乐和网络文化中,成为一种新的音乐类型和艺术形式。此外,由于它的简单性和易于制作的特点,8-bit music也成为许多人学习音乐制作和编程的入门级别。


你来告诉我这段话是否正确:“这是从SS土星游戏光盘中解压出来的音乐文件,可以看到音乐文件本身都是不到1K的MIDI,也就是乐谱,声卡依照乐谱合成音乐播放,而后面的SSFLIB则是波表文件,里面记录了产生声音的物理公式或者真实乐器的采样。2小时的CD质量音乐,用这种方式储存只需要20M,压缩成MP3则需要400M,如果是原始波形就更大了。 一直到PS2为止,大部分游戏音乐都是这样生成的,所以游戏机的声卡与显卡同样重要,但是语音合成非常困难,因此早期游戏的歌曲只能用音频流记录,几首歌可能比整个游戏都大。随着DVD的普及和音频解压芯片的廉价化,越来越多的游戏作曲家不再折腾MIDI音乐,而是直接把合成后的完整音乐文件放到游戏里。这样一来高成本游戏业不必再折腾MIDI了,直接找乐队和歌手录制音乐就行。”

(这段文字出自:🔗 [这是从SS土星游戏光… - @md2_的微博 - 微博] https://weibo.com/1865520491/MvgXm04sa


chatgpt:

这段话的大部分内容是正确的。SS土星游戏光盘中的音乐文件确实是以MIDI格式存储的,其大小通常只有几KB,可以通过波表文件(SSFLIB)和声卡合成出音乐播放。相比之下,压缩成MP3格式则需要更多的空间。同时,游戏音乐在过去确实是用这种方式生成的,因为音频解压缩的成本比较高,而声卡和显卡对游戏体验的重要性也很高。但是关于早期游戏的语音合成只能用音频流记录的说法不完全准确,因为早期的一些游戏确实使用了语音合成技术,比如1984年的游戏《太空侵略者》就使用了一种名为Votrax SC-01的芯片进行语音合成。此外,最后一句话中提到的游戏作曲家直接把合成后的完整音乐文件放到游戏中这种做法,现在也是比较常见的。


然后我和chatgpt开始讨论了一些有关Cave街机/GBA/NES音频产生的机制。


我误以为8-bit的音乐可以用很“简单”的方法直接转换,让chatgpt给我写了一段代码,结果发现完全不是那么一回事。

失败的代码


以FamiStudio为例,告诉我它的8-bit音乐的制作原理。


chatgpt:

FamiStudio是一款专门用于制作8-bit风格音乐的软件。它基于NES/Famicom游戏机的音频芯片来模拟8-bit风格的音色。

具体来说,FamiStudio使用的是NES/Famicom游戏机的2A03音频芯片,它包含了5个声道:2个矩形波(Pulse)、1个三角波(Triangle)、1个噪音(Noise)和1个采样波(DMC)。

在FamiStudio中,用户可以创建和编辑乐谱,然后使用NES/Famicom音频芯片的音色来生成8-bit音乐。用户可以通过调整乐谱中每个声道的音高、音量、音色和效果来实现不同的音乐效果。

FamiStudio还提供了一些内置的效果,如颤音、滑音、扫频等,可以让用户更加方便地制作出8-bit风格的音乐。

一旦用户完成了音乐的制作,FamiStudio可以将乐谱导出为NES/Famicom游戏机可用的格式,或者导出为WAV或MP3等格式,以便在其他平台上播放。


介绍一下LakhNES


chatgpt:

LakhNES是一个大型的音乐数据集,包含了超过10万个8-bit风格的音乐片段,其中大多数来自于红白机(NES)游戏,也有一些来自街机游戏。这个数据集由来自于加州大学圣地亚哥分校的研究团队制作,目的是为了研究和开发基于8-bit音乐的机器学习算法和音乐生成模型。

LakhNES数据集包括音乐片段的MIDI和音频文件,以及音乐片段的元数据,如乐曲名称、创作者、年代等。这些数据可以被用于开发和评估音乐自动生成算法和其他相关应用。

使用LakhNES数据集可以帮助研究人员和开发者更好地理解8-bit音乐的结构和特征,并为开发8-bit音乐生成算法提供有用的数据支持。同时,这个数据集也为研究基于8-bit音乐的跨模态学习和迁移学习提供了有用的资源。


我现在手里有一个音频文件,它是youtube上面下载的,声称是chiptune,那我怎么知道它是不是真正的chiptune?


chatgpt:

要确定一段音频文件是否是真正的chiptune,可以考虑以下几个方面:

  1. 核实来源:如果你是从官方或信任的音乐网站下载的文件,则很可能是真正的chiptune。但如果你是从非官方或不信任的网站下载的文件,则需要更加谨慎。
  2. 检查制作工具:chiptune通常是由8-bit或16-bit音频芯片制作的,比如Nintendo Entertainment System (NES)、Commodore 64 (C64)等。因此,如果你知道制作工具的类型,就可以确定该音频文件是否是真正的chiptune。
  3. 判断音色和声音效果:chiptune通常使用特殊的音色和声音效果,以模拟8-bit或16-bit音频芯片的声音。因此,你可以听一听该文件中的音色和声音效果是否符合chiptune的特征。

如果以上几个方面都符合chiptune的特征,那么很可能这个音频文件就是真正的chiptune。


🔗 [如何自学做 8 Bit 音乐? - 知乎] https://www.zhihu.com/question/30488011


Part 3

这部分的内容主要和GBA的音频处理有关。


介绍一下过去的游戏机在输入音频的区别:PCM, FM, 8-bit,NES,GBA


chatgpt:

过去的游戏机在输入音频的方式上有一些不同,下面是一些常见的游戏机和它们的音频输入方式:

  1. PCM (Pulse Code Modulation):PCM是一种数字音频编码格式,它使用数字来表示声音的幅度和时间。在PCM音频输入中,声音被采样并以数字形式存储。这种方式广泛用于游戏机和其他电子设备中,例如PlayStation游戏机,这些设备通常使用CD或DVD等存储介质。
  2. FM (Frequency Modulation):FM音频输入是一种模拟音频输入方式,其中声音信号以模拟方式转换为FM信号,并通过电子电路传输到扬声器中。这种方式在许多早期的游戏机中广泛使用,例如SEGA的Master System游戏机和Mega Drive游戏机。
  3. 8-bit:8位音频输入是一种模拟音频输入方式,其中每个音频样本都使用8位二进制数字来表示。在这种输入方式中,声音信号以模拟方式传输到扬声器中。例如,NES (Nintendo Entertainment System)游戏机使用了8位音频输入。
  4. NES:NES游戏机使用了一种由5个音频通道组成的音频处理器,包括两个脉冲波形发生器通道,一个三角波形发生器通道,一个白噪声通道和一个可编程数字时钟通道。这种输入方式使用了一些不同的技术,例如频率合成和折叠,以生成各种声音和音效。
  5. GBA:GBA游戏机的音频输入使用了一个由32个音频通道组成的音频处理器,包括4个波形发生器通道,2个白噪声通道,1个直流偏置控制通道和1个数字音频接口通道。这种输入方式使用了PCM格式的音频数据,并可以输出立体声音频信号。

我找到了一篇很重要的文章,专门讲GBA音乐模块的:

🔗 [关于 GBA 音乐的编写 - 哔哩哔哩] https://www.bilibili.com/read/cv13698562

其中这篇文章提到了GBA音乐的一个很重要的组成部分:“module音乐”。


给我介绍一下“module音乐”


chatgpt:

“Module音乐”是一种基于计算机音乐的创作和播放格式,它最初在1980年代诞生于欧洲计算机Demo场景中,随后逐渐流行于全球。Module音乐被广泛应用于计算机游戏、Demo、动画、电影等领域,它具有轻量级、可移植、可扩展等优点。

Module音乐文件通常以 .mod、.xm、.s3m、.it、.med 等扩展名保存,其中,.mod 是最早的Module音乐格式之一,它最初是由 Amiga 计算机上的 SoundTracker 音乐制作软件所使用。Module音乐文件包含了所有音乐数据,包括乐谱、乐器、音量、音色等信息,以及样本数据(即音频采样数据)。

Module音乐的播放过程通常涉及以下几个步骤:

  1. 加载音乐文件:计算机读取Module音乐文件,并将其中的数据加载到内存中。
  2. 解析音乐数据:计算机解析Module音乐文件中的音乐数据,并将其转换为可以播放的音频数据。
  3. 合成音乐:计算机使用内置的合成器或采样器来生成音频数据,合成的过程通常涉及音量、音色、音效等调整。
  4. 播放音乐:计算机将合成或采样的音频数据发送到音频设备,通过扬声器或耳机来播放音乐。

Module音乐具有广泛的应用领域,包括游戏音乐、动画音乐、电影配乐等。由于其轻量级、可移植、可扩展等特点,它被广泛用于需要高效、灵活和创新的音乐创作和播放场景中。


有人说“module音乐自带采样“,这是不是module音乐和8-bit/ssf的核心区别?


chatgpt:

Module音乐的确通常包含采样数据,采样数据可以让音乐具有更丰富的音色和音效。采样是一种将模拟声音转换为数字音频的过程,它涉及对声音进行录制、数字化和处理,以便于在计算机上播放。在Module音乐中,采样通常被储存在音乐文件中,以便于播放器能够在需要时调用它们。不过,Module音乐并不一定需要使用采样,有些Module音乐文件只包含乐谱和音乐控制信息,不包含采样数据。

与之相对,8-bit和ssf音乐并不使用采样数据,它们通常使用硬件合成器或程序合成器来生成音乐。这些合成器使用基本的波形生成技术(例如方波、三角波、锯齿波等)来生成音频信号,从而实现游戏音乐的播放。8-bit和ssf音乐因此具有特殊的音色和节奏,这些特点是使用采样难以达到的。因此,Module音乐和8-bit/ssf音乐之间的核心区别不仅在于是否使用采样,还在于音色和节奏等方面的不同。


我们来讨论一下编曲软件。现代编曲软件(比如logic pro)的工作原理是否类似于module music,即:先制作出track,然后用采样器/声音效果器 合成音乐?


chatgpt:

现代编曲软件的工作原理并不完全类似于Module音乐,尽管它们可能使用采样器和声音效果器来生成音乐。

编曲软件通常提供多个音轨,每个音轨可以包含不同的音乐元素,如鼓、吉他、键盘等。用户可以在每个音轨上录制、导入或编辑不同的音乐元素,包括 MIDI 乐器、采样、软件合成器等。然后,用户可以通过混音和处理音效等方式将这些音轨混合到一起,以生成完整的音乐作品。

与Module音乐不同的是,编曲软件通常使用的采样器和合成器可以更加复杂和灵活。例如,某些编曲软件包含了大量的软件合成器,用户可以使用这些合成器生成各种类型的声音,如模拟合成器、数字合成器、采样器等。同时,编曲软件还提供了各种各样的音效器,如均衡器、压缩器、混响器等,以进一步加工和定制音乐元素。

因此,虽然编曲软件与Module音乐在一些方面有相似之处,如采样器和合成器的使用,但它们的底层逻辑和功能远比Module音乐复杂得多,可以提供更灵活和丰富的音乐制作工具。


一些总结

一些总结:

(音乐风格相关的思路暂时总结不出什么东西,因为思路很混乱)

8-bit/chiptune,module music,MIDI是3个含义很相近的概念,它们的“源文件”结构有些相似。

但只有module music的源文件里包含了“乐器采样”,而MIDI和8-bit chiptune是不包含的。简单的来说就是:module music可以在各个不同平台上播放出相同的声音,而8-bit chiptune受制于音频芯片的种类,而MIDI更是无法控制播放出来的声音(可以给MIDI文件指定各种不同的音源)。

可以暂时把8-bit/chiptune,module music,MIDI认为是“非常类似编曲软件”的一种格式。你可以在编曲软件(比如logic pro)上面用拖动滑块的方法创造一首结构简单的歌曲,然后logic pro等编曲软件会帮助你用它的音源库模拟出你想要的音波音频文件。这个过程和 8-bit/chiptune,module music,MIDI 的播放过程非常相似。

8-bit音乐是有比较严格的限制的,不是用“降低采样”等简单的方法就能模拟出来的,真正的8-bit就要像chiptune的字面意思那样,用audio chip来播放。🔗 [如何自学做 8 Bit 音乐? - 知乎] https://www.zhihu.com/question/30488011,从这个回答里的这张图片就能看出来。

但也不是没有其他方法,比如LakhNES使用了现代技术(用Transformer修改的深度学习框架)生成8-bit音乐。

GBA游戏机既能用波形音频文件,也能用module music。不过大多数时候都是module music,因为空间太小。

对于一首乐曲(尤其是含有多种乐器/音轨的 协奏曲/交响曲),如果能用module music较好的表示出来,这个时候歌曲的信息压缩比就非常非常高了。这也是一个科研大方向。



 Last Modified in 2023-09-17 

Leave a Comment Anonymous comment is allowed / 允许匿名评论