根据听音习惯自动评分音乐

caw*_*caw 8 automation artificial-intelligence recommendation-engine rating audio-player

我在Delphi中创建了一个类似Winamp的音乐播放器.当然不是那么复杂.只是一个简单的.

但现在我想添加一个更复杂的功能:图书馆中的歌曲应根据用户的收听习惯自动评分.

这意味着:应用程序应该"理解"用户是否喜欢某首歌.不仅是他/她喜欢它还是喜欢它多少.

到目前为止我的方法(可以使用的数据):

  • 只需测量每次播放歌曲的频率.将歌曲添加到库中时开始计算时间,以便最近的歌曲没有任何缺点.
  • 测量歌曲平均播放的时间长度(分钟).
  • 由于用户似乎不喜欢这首歌,因此开始播放歌曲但直接改为另一首歌应该对排名产生不良影响.
  • ...

你能帮帮我解决这个问题吗?我想提出一些想法.我不需要在Delphi中实现.

Nei*_*gan 10

我会在中央数据库中跟踪所有用户的收听习惯,因此您可以根据其他人喜欢的内容("喜欢这首歌的人,也喜欢这些其他歌曲")提出建议.

要考虑的其他一些指标:

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

  • 他们在比赛期间打开了"重复这首歌"按钮吗?

  • 每小时,每天,每周,每月播放的时间

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

  • 听过的歌曲比例(用户平均听了这首歌的50%,而另一首歌则听了100%)

也:

听取用户的麦克风.他们一起唱歌吗?:d

他们演奏这首歌的音量是多少?他们把它搞砸了吗?

放入"向朋友推荐这首歌"按钮(将歌曲标题发送给朋友或其他东西).他们推荐的歌曲,他们可能会喜欢.

您可能希望在音频流上进行一些特征提取,并找到类似的歌曲.这很难,但你可以在这里阅读更多相关内容:

"用于分类音频数据的自动特征提取" http://www.springerlink.com/content/g71368g57x013j48/

"基于时间统计的详尽特征生成的音乐集合的可理解模型" http://portal.acm.org/citation.cfm?id=1150523

"在分布式系统中协作使用音乐收藏组织" http://www.idea-group.com/Bookstore/Chapter.aspx?TitleId=24432

  • 重新跳过.你是对的.立即跳过将对应于播放歌曲的5%,因此删除指标#4.重新计时单位.你应该跟踪上次比赛的日期/时间.在上周播放的歌曲可能被认为是"更热"或"更喜欢此刻",而不是那些播放得更多的歌曲,但过去更远.例如,songA和songB在同一日期添加到库中.我在第1周播放了10次songB,在第10周播放了10次歌曲.我播放了相同的总次数,并且它们的年龄相同,但你可能会说我现在更喜欢songA (3认同)

dby*_*rne 4

测量一首歌曲的平均播放时间(分钟)。

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

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

  • 我通常抱怨相反的问题:如果你衡量一首歌的播放次数来衡量它的“好坏”,长歌就会受到惩罚!所以你的平均想法听起来相当不错。 (4认同)