Automation 基于听力习惯的自动音乐分级

Automation 基于听力习惯的自动音乐分级,automation,artificial-intelligence,recommendation-engine,rating,audio-player,Automation,Artificial Intelligence,Recommendation Engine,Rating,Audio Player,我在Delphi中创建了一个类似Winamp的音乐播放器。当然没那么复杂。就这么简单 但现在我想添加一个更复杂的功能:库中的歌曲应该根据用户的收听习惯自动分级 这意味着:应用程序应该“理解”用户是否喜欢歌曲。不仅是他/她是否喜欢,还包括他/她有多喜欢 我目前的方法(可使用的数据): 只需测量一首歌每次播放的频率。开始计算歌曲添加到库中的时间,这样最近的歌曲就不会有任何缺点 测量歌曲平均播放时间(分钟) 因为用户似乎不喜欢这首歌,所以开始一首歌但直接改成另一首歌会对排名产生不良影响 你能帮我

我在Delphi中创建了一个类似Winamp的音乐播放器。当然没那么复杂。就这么简单

但现在我想添加一个更复杂的功能:库中的歌曲应该根据用户的收听习惯自动分级

这意味着:应用程序应该“理解”用户是否喜欢歌曲。不仅是他/她是否喜欢,还包括他/她有多喜欢

我目前的方法(可使用的数据):

  • 只需测量一首歌每次播放的频率。开始计算歌曲添加到库中的时间,这样最近的歌曲就不会有任何缺点
  • 测量歌曲平均播放时间(分钟)
  • 因为用户似乎不喜欢这首歌,所以开始一首歌但直接改成另一首歌会对排名产生不良影响
你能帮我解决这个问题吗?我只是想有一些想法。我不需要在Delphi中实现

测量歌曲平均播放时间(分钟)

我认为这不是一个好的衡量标准,因为一首长歌会比一首短歌获得不公平的优势。您应该使用百分比来代替:


平均播放时间/歌曲总长度

我会在一个中央数据库中跟踪你所有用户的收听习惯,这样你就可以根据其他人的喜好提出建议(“喜欢这首歌的人,也喜欢这些其他歌曲”)

需要考虑的其他一些指标:

  • 歌曲立即重播的次数比例(例如,这首歌立即重播的次数占播放次数的12%)

  • 他们在播放时是否打开了“重复这首歌”按钮

  • 每小时、每天、每周、每月播放的次数

  • 跳过此歌曲的次数比例。(例如,播放了这首歌,但立即跳过了99%的时间)

  • 收听歌曲的比例(用户平均收听这首歌曲的50%,而其他歌曲的收听率为100%)

此外:

使用用户的麦克风收听。他们跟着唱吗D

他们演奏这首歌的音量是多少?他们把它发动起来了吗

放入“向朋友推荐这首歌”按钮(将歌曲标题发送电子邮件给朋友或其他人)。他们推荐的歌曲,他们可能喜欢

您可能希望对音频流进行一些特征提取,并查找类似的歌曲。这很难,但您可以在此处了解更多信息:

“用于音频数据分类的自动特征提取”

“基于时间统计穷举特征生成的音乐收藏可理解模型”

“协作使用分布式系统中的功能来组织音乐收藏”

这个公式将产生一个很好的结果,因为用户可能真的只喜欢歌曲的一部分,这应该在分数中看到,如果用户喜欢整首歌曲,那么权重应该加倍


您可以通过多种方式调整此公式,f.ex包括用户收听树,f.ex如果用户收听一首歌曲,然后他又收听另一首歌曲几次,等等。

使用歌曲添加到库中的日期作为起点

测量歌曲/流派/艺术家/专辑的播放频率(完全、部分或跳过)-这还允许您测量歌曲/流派/艺术家/专辑不播放的频率

根据这些参数得出一个权重,当一首歌、它的流派、艺术家或专辑没有被频繁播放时,它的排名应该很低。当一位艺术家每天都被播放时,这位艺术家的歌曲应该会得到提升,但如果说这位艺术家的一首歌曲从未被播放过,那么这首歌的排名应该仍然很低


关于你的额外指标:难道一个指标不应该结合4和5吗?如果一首歌立即被跳过,那么收听的比例只有1%左右,对吗Marcow 5月21日15:08

这些应该是分开的。跳过将导致被跳过歌曲的负面评级。然而,如果用户在歌曲开始时关闭应用程序,则不应将其视为负面评级,即使播放的歌曲仅占较低百分比。p> 只需测量一首歌的播放频率 按次播放

通常,我会播放一首特定的歌曲,然后让我的iPod一直播放到专辑结束。所以这种方法会给专辑后期的歌曲带来不公平的优势。如果您的音乐播放器以同样的方式工作,您可能需要进行补偿。

人工智能设备如何解决这个问题

嗯!让我说,从零开始可能真的很有趣 一个拥有自己“情报”的客户网络,最终收集 客户的结果取决于中央“情报”

每个客户都可以根据用户习惯生成自己的“用户评级” (如前所述:平均列表、列表计数等)

中央“智能”收集者可以将个人评级合并到“全球评级” 显示您需要的交易、建议和每一个高级别评级

无论如何,训练这样一个“大脑”意味着你必须首先以分析的方式解决问题,但构建这样一个由相互连接的小型大脑组成的云以产生更高水平的“智能”可能真的很有趣


像往常一样,由于我不知道你的技能,请看一下神经网络遗传算法模糊逻辑模式识别以及类似的问题,以便更深入地理解。

你可以使用一些简单的函数,如:

listened_time_of_song/(length_of_song + 15s) 

这意味着,如果歌曲在15秒内停止播放,那么它的评分将为负数,或者第二种情况更好(如果用户听了整首歌曲,歌曲的长度将与最终音符无关)

另一种可能是usi
listened_time_of_song/(length_of_song + 15s) 
 listened_time_of_song/(length_of_song * 1.1)