内部音调-第2部分:音乐元数据

2018年3月15日更新: 可以下载新版本(20180315)。

Tonal是面向收藏家和发烧友的简约音乐应用程序。 本文是“色调内部”系列的第二篇文章,重点介绍了增强色调体验的元数据引擎。


自1990年代以来,各种供应商(商业和非商业)都进入了音乐元数据领域: FreeDBMusicBrainzGracenoteDiscogsRovi等。 进入在线时代, 亚马逊苹果等知名公司组成了他们的团队,共同应对同一问题。 这些先驱在讨论的问题领域取得了历史性的进步。 探索和开发了不同形式,技术,复杂性,编辑过程和业务模型的解决方案。

在2015年末,当我开始起草Tonal概念时,我仍然对现有的解决方案不满意,主要是由于以下原因:

  1. Tonal ,而不是任何第三方供应商,应控制整个体验,包括元数据体验。
  2. 错别字和错误应尽快修复。
  3. 应通过更新编辑标准,同时强制现有和即将推出的元数据都符合新标准,来不断提高元数据质量。
  4. 所有更新应实时交付给受影响的用户。
  5. 元数据应具有高度可访问性,易于编译,交流,查看和进行社区协作。
  6. 古典音乐是一等公民。

现有解决方案不仅不能满足上述一项或多项要求,而且还不适合Tonal工作流程。

Tonal已经在音频数据和音乐元数据之间实现了真正的分离(如果听起来很奇怪,请阅读该系列的第1部分)。 收集新光盘后,将实时通知秘密服务器。 然后,服务器开始处理元数据的初始版本(通过使用封闭源算法查询多个数据源)。

从最初的版本开始,贡献者就不断进行改进:修正错别字,更正错误,遵守新标准,找到更好的封面等,并实时将更新推送给受影响的Tonal用户。 这主要是手动过程。 为了使其更加流畅和高效,我们创建了一个名为Tonal Curator的网络应用程序。

使用Tonal Curator ,编辑音乐元数据就像在纯文本编辑器上编写一样简单。 以下屏幕快照显示了两个色调Tonal元数据格式的文档,这些文档正在Tonal Curator中进行编辑。 Tonal元数据格式的完整规范以及Tonal Curator提供的所有功能将记录在一个独立的文档中。 现在,只需慢慢阅读内容,看看如何通过这种精简语法实现这种表现力。

以下截屏视频显示了通过Tonal Curator更新音乐元数据。 通过截屏,我们可以实时了解如何将保存的元数据传递给受影响的用户。

现在,让我们检查一下为什么Tonal元数据引擎比现有引擎更好。

开发了各种(基于桌面或基于Web的)应用程序来支持现有解决方案的元数据编译。 复杂的基于表单的用户界面无处不在:按钮,下拉列表,复选框等。交互密集型界面(特别是对于熟练的贡献者)极大地阻碍了编译效率。

相反,名为Tonal元数据格式的基于纯文本的格式旨在提高元数据的编译效率。 格式简单,直观且易于学习。 一旦掌握了基础知识,与使用包含表单控件的接口相比,贡献者可以更有效地编译元数据。

仅包含纯文本源代码编辑器的零UI足以完成任务。 名为Tonal Curator的网络应用程序提供了确切的编辑器,以及一些便捷的功能,例如自动完成,语法检查和图像上传,以进一步润滑该过程。

尽管贡献是以纯文本形式提交的,但是存在三个底层的异构持久性存储以及一个用于为潜在场景提供支持的Web服务。 持久性存储为:

  • 一个Git仓库。 Git存储库包含已提交的源代码。 轻松签出和更新所有历史记录提交,非常适合查看,协作和存档。
  • 关系数据库。 关系数据库擅长从不同角度进行数据抛光,分析和派生文档。
  • NoSQL数据库。 NoSQL数据库适合客户端使用: Tonal应用程序订阅NoSQL数据库中的更改,更新可以实时交付。

所有持久性存储都是实时同步的。

由关系数据库支持的Web服务以各种语义(乐队的唱片,作曲家的作品列表,标签的发行等)和格式( JSONXML等)提供元数据。 Web服务是所有未来应用程序和方案的自然选择。

现有解决方案采用不同的编辑流程(内部,开放式协作,众包等)。 音乐元数据的编辑在很大程度上依赖于集体音乐学知识。 在以质量为中心的元数据项目的成功中,协作起着至关重要的作用。 色调鼓励通过以下机制进行协作:

  1. 与其他技术(例如关系模型)相比,基于文本的元数据格式更容易理解。 错别字和错误很容易发现。 在寻求质量改进时,基于文本的元数据格式几乎没有限制。
  2. 所有编辑都由Git版本控制。 社区可以跟踪更改,回退提交(这些提交会损害质量),奖励活跃的贡献者等等。
  3. 在过去的十年中,基于Git的协作实践已经确立。 GitHub提供了诸如Issues,Wiki和Pull Requests之类的额外功能,这些功能进一步促进了开放式协作。

古典音乐是大多数现有元数据解决方案的野兽。 音调并不打算解决与古典音乐有关的所有问题,但是最重要的问题得到了正确的解决。

  1. 古典音乐概念,例如作曲家,作品(具有分层结构)和录制信息,都经过明确建模。
  2. 音调应用程序以古典音乐爱好者熟悉的方式重组元数据。

下面的屏幕截图显示了Tonal应用程序中收集的两个经典版本。 让我知道显示的元数据是否不符合您的口味。

在活跃社区的支持下,提交可能会非常频繁地提交。 Tonal应用程序的最终用户需要实时使用更高质量的最新元数据。

由于音频数据和音乐元数据之间的真正分隔,因此实现了精细的订阅机制。 音乐元数据更新后,更改不仅会同步到所有持久性存储,还会传递给实时收集修改后版本的受影响用户。 如果从音频文件中提取元数据,这并不是那么容易。

尽管Tonal元数据引擎是专为Tonal应用程序设计和设计的,但它是一个独立的音乐元数据解决方案,专注于标准,质量和社区协作。 基于文本的格式和基于Web的编辑器旨在使贡献者能够有效地编译音乐元数据。 多个持久性存储和一个Web服务带来了互操作性以支持各种方案。

如果您愿意参加Tonal元数据项目,请随时通过sheng@icmd.org与我联系。


除元数据引擎外, Tonal还带有音频预处理步骤和精心设计的播放引擎。 阅读“同调内幕”系列中的更多文章:

  1. 第1部分:音频数据-为您的收藏提供白手套服务
  2. 第3部分:播放引擎-揭开妖术”的神秘面纱