跳转到主要内容

ListenBrainz的同理心音乐推荐/播放列表引擎

项目描述

简介

Troi播放列表引擎将ListenBrainz的所有播放列表功能整合到一个方便的软件包中。此软件包与ListenBrainz集成,并提供了一个简单的接口来与其API交互。该引擎使用机器学习根据用户偏好生成音乐推荐。Troi播放列表引擎是一个托管在GitHub上的开源项目。

  1. 播放列表生成:通过管道架构实现的音乐推荐和算法播放列表生成,允许轻松构建自定义管道,输出播放列表。您可以在ListenBrainz的“为您创建”页面上看到这一功能,在那里我们展示了每周的混音和每周发现播放列表。播放列表生成工具采用API优先的方法,用户不需要下载大量数据,而是按需通过API获取数据。

  2. 本地内容数据库:使用这些工具,用户可以扫描磁盘上的音乐库或通过Subsonic API(例如Navidrome、Funkwhale、Gonic)下载元数据,然后解析全局播放列表(仅包含MBID的播放列表)到本地集合中的文件。我们还支持重复文件检测、集合中的热门标签和其他洞察。

  3. 播放列表交换:我们正在构建这个工具包以支持保存/加载多种格式的播放列表,希望打破音乐孤岛(Spotify、Apple等)的束缚。

该项目以Deanna Troi命名。

功能

播放列表生成

Troi可用于生成播放列表

  1. 用于从任何数量的来源创建播放列表的管道架构。
  2. 从API获取数据并馈送到Troi管道的数据源。
  3. 连接在一起的是称为补丁的管道元素。Troi包括许多内置补丁。
  4. 最大的补丁实现了ListenBrainz广播,可以根据一个或多个艺术家、标签、用户统计信息、用户推荐、LB播放列表和MB集合生成“广播风格”的播放列表。
  5. 生成的播放列表以JSPF格式输出,是XPSF播放列表的JSON版本。

Troi正在被用于在ListenBrainz上生成每周推荐(每周混音、每周探索)以及LB Radio

数据集

为了实现这一目标,我们MetaBrainz基金会创建并托管了多个数据集,这些数据集可以作为此项目的一部分访问。例如,更稳定的API托管在我们的实验室API页面上。

ListenBrainz提供多个数据集

  1. 协作过滤录音,根据用户的先前收听习惯推荐用户应该收听哪些录音。
  2. 从用户最近的收听习惯中得出的用户统计信息。
  3. 可以用作流行度衡量指标的收听统计信息。
  4. 艺术家和录音的相似性数据

随着时间的推移,我们将继续构建和托管更多的数据集。如果API端点对更多的人有用,我们将将其提升为官方支持的端点,并确保它们始终在线更新。

数据库/内容解析

ListenBrainz内容解析器使用内容解析器将全局JSPF播放列表解析为本地音乐集合。

功能包括

  1. ListenBrainz本地广播:允许您生成仅使用本地集合中的文件创建的广播风格播放列表;如果不可能,全局播放列表(通常带有MusicBrainz ID的JSPF文件)将尽可能解析为本地文件集合。

  2. 周期性混音:ListenBrainz周期性混音,但完全针对您自己的本地集合进行解析。这针对本地集合进行了优化,比同名的全局Troi补丁提供了更好的结果。

  3. 解析全局播放列表(通常是带有MusicBrainz ID的JSPF文件)到本地音乐集合。解析通过:MusicBrainz ID、元数据匹配或模糊元数据匹配进行。

  4. 元数据获取:这里的一些功能需要从ListenBrainz下载元数据来支持LB本地广播。

  5. 扫描本地文件集合。支持MP3、Ogg Vorbis、Ogg Opus、WMA、M4A和FLAC文件。

  6. 扫描远程Subsonic API集合。我们已测试Navidrome、Funkwhale和Gonic。

  7. 打印集合中重复文件的报告

  8. 打印集合中最常用的标签列表

  9. 打印无法解析的曲目列表以及它们所属的专辑列表。这使用户能够了解哪些曲目可以添加到集合中以改善本地匹配。

文档

有关Troi的完整文档可在troi.readthedocs.org找到。

终端用户安装

Troi可通过PyPi下载。

virtualenv -p python3 .ve
pip3 install troi[nmslib]
troi --help

Troi还依赖于nmslib-metabrainz以启用曲目与本地集合的模糊匹配。nmslib-metabrainz不是运行Troi的必需品,它仅用于模糊匹配,因此如果您在安装nmslib时遇到困难,可以省略它,如下所示

virtualenv -p python3 .ve
pip3 install troi
troi --help

开发版安装

注意:如果您在安装nmslib时遇到困难,它是可选的。从以下安装命令中删除nsmlib

Linux和Mac

virtualenv -p python3 .ve
source .ve/bin/activate
pip3 install -e .[nmslib,tests]
troi --help

Windows

virtualenv -p python .ve
.ve\Scripts\activate.bat
pip install -e .[nmslib,tests]
troi --help

用户指南

有关运行Troi的详细信息,请参阅我们的用户指南

运行测试

troi test
troi test -v
troi test -v <file to test>

构建文档

要本地构建文档

pip install .[docs]
cd docs
make clean html

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

troi-2024.8.30.1.tar.gz (123.5 kB 查看哈希)

上传时间

构建分布

troi-2024.8.30.1-py3-none-any.whl (122.5 kB 查看哈希)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面