Day 3: 人工智慧在音乐领域的应用 (各层面的应用二)

今天我们接续昨天的话题继续来聊聊AI在音乐领域上除了作曲以外的各方面应用。

谱面辨识/采谱系统

这边先给一个概念:
在音乐档的格式上来说,我们可以概括的分成两大类:

  1. Midi音讯档
  2. Audio音讯档

Midi档案为Musical Instrument Digital Interface的简称,
它是一个工业标准的电子通讯协定,可以把它想像在数位的公制音乐单位,它可以让、电脑、手机或任何数位装置上都依照相同的格式以达到互相连接,调整和同步的目的。
详情可参阅维基百科midi

Audio则包含了诸如MP3、WAV、FLAC、AAC...等等,里面又可进一步细分为无失真格式有损格式

之所以要先介绍这两种格式是因为,现在大部份的音乐档案都为Audio格式,不论是MP3还是WAV还是其他格式,而这种格式对於AI的角度来说是相对比较没有用的资料。
如果今天一首音乐以Midi的格式呈现,那麽他可以随意的丢上任何一台设备,并照着公定的格式去读取里面的所有资讯 (音轨、音高、节拍、长度、音量...等等),有了这些资讯,对於AI来说就有了相当重要的资料去做後续的处理。
毕竟人工智慧说穿了,其实主要依靠的还是背後非常大量的资料,有了资料,才能够有有效的去设计这些人工智慧的应用。因此Midi的最大优势就是里面包含了大量且电脑可以直接读取的音乐资讯,进一步的成为AI内部分析的重要部份;
而相对的Audio格式的音乐档案,对於电脑来说是无法直接分析取得里面的音乐资讯的。
我们换个方式来做比喻:
Midi可以想成是一张扑满料的Pizza,你可以清楚的看出上面有蕃茄、蘑菇、腊肠、起司、橄榄与面皮。
https://ithelp.ithome.com.tw/upload/images/20210914/20140556Ik3awELytr.jpg
凤梨:我呢QQ?

而Audio则是水饺/锅贴之流,所有的馅料都已经混合好并包在一起。
https://ithelp.ithome.com.tw/upload/images/20210914/20140556JuqGtJ8e4p.jpg

那麽回到谱面辨识/采谱系统的应用介绍,这个应用最主要的重点就是在於他可以将原本不是Midi格式的档案透过技术上的分析与辨识从而得到能够被电脑所使用的格式,并进一步的让AI能够使用这些资料来做进一步的应用。
这边相关的技术会比较偏重於音乐资讯检索(Music Information Retrieval,MIR)
相关的研究可以参考中研院苏黎博士的这篇文章
此外国外也有许多相关的研究在针对音讯档案去做分析与采谱,毕竟就如我前面所说的:
AI的本质就是大量的Data,有了Data才能够训练出有用的AI。

自动伴奏

自动伴奏系统已经是一项发展多年的应用,相对於主旋律来说,伴奏只要能够抓到主旋律或是其他部份的音高并抓取相对的音阶与调性即可产生出无违和的伴奏,而伴奏的丰富度、多样性、适性等等则取决於各家的设计。
此外自动伴奏比较常见的有几种:

  1. 让使用者输入/演奏一段旋律後,AI会将产生出来的伴奏与主旋律结合在一起帮你谱成叫完整的音乐。
  2. 在使用者演奏/哼唱的同时,AI会同步侦测并演奏出相对应的伴奏。
  3. 使用者输入/演奏一段旋律後,AI会产生对应的对句 (比较不完全是伴奏但我给过...)
    https://ithelp.ithome.com.tw/upload/images/20210914/201405561hXQLw0HTT.jpg

由於已经发展的算相当纯熟,Google就可以找到很多,因此在这边我就不特别介绍特定产品了。

那麽下一篇开始,来介绍一些AI的基本知识与AI音乐的起源,我们Day 4见~


<<:  鬼故事 - 总有刁民想害朕

>>:  Endpoint

[Day 19] 阿嬷都看得懂的盒模型

阿嬷都看得懂的盒模型 各位阿嬷,我们今天要来寄自己腌渍的酱瓜给乖孙。 我们找来 4 个纸盒,想在里面...

22. 工程师之伤 x 用眼过度 x 眼药水

眼药水用完了,今天去补货。 因为我每次都记不得药的名字,药水用完都不能丢空罐很麻烦,写完这篇终於可以...

Day 21 - SwiftUI开发学习5(文字填入)

今天我们来学习如何使用填入文字的物件 正文 文字填入 TextField 可以将文字填入进去。 如果...

欢迎进入 ip 的世界,Ruby 30 天刷题修行篇第十五话

嗨,我是 A Fei,来看看今天的题目: (题目来源:Codewars) Take the foll...

Day29--Bootstrap&CSS文字排版&样式(7)

对元素设置user-select-all可在点击时全选该文本。 <p class="...