Spotify如何使用抖动算法随机播放歌曲?
source link: https://www.jdon.com/63317
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Spotify如何使用抖动算法随机播放歌曲?
自 Spotify 服务推出以来,我们使用 Fisher-Yates shuffle 来生成播放列表的 完全随机随机 播放。
Fisher-Yates shuffle 是最漂亮的随机算法之一,令人惊讶的是,如此复杂的问题可以解决在某些编程语言中用 3 行代码解决。这是通过使用最佳操作次数和最佳随机数来实现的。
收听音乐的用户并不喜欢完美的随机性。
算法
这似乎是一个以前必须由其他人解决的问题。事实上,我们发现了一篇博客文章 The art of shuffling music by Martin Fiedler,它解决了同样的问题。但是,他的算法很复杂,在某些情况下可能会非常慢,因此我们对其进行了修改以更好地满足我们的需求。
主要思想与抖动中使用的方法非常相似。假设我们有一张黑白图片,使用了几百个灰色阴影。
我们想通过仅使用黑色和白色两种颜色的像素来进一步简化图片。我们可以使用 随机采样:假设一个像素有 80% 的灰色阴影,那么它将有 80% 的机会变成黑色,20% 的机会变成白色。我们一个一个地处理像素,并根据原始灰度为每个像素随机决定其新颜色。然而,结果远不能令人满意。
如您所见,黑色像素形成簇,并且还有大白点。如果黑点和白点分布得更均匀一些就更好了。Floyd–Steinberg 抖动等其他算法 避免了聚类并产生了更好的结果。
在上一张图片中看到的集群几乎完全消失了。
我们可以从抖动算法中获得灵感来解决同一艺术家的歌曲集群问题;我们将尝试将它们分布在整个播放列表中。
详细点击标题
用户反馈:
1、我不得不说,他们为洗牌所做的事情真的很糟糕。我有一个很大的健身房播放列表,经常听到相同的曲目,通常顺序相同,现在需要向下滚动并在随机曲目上按播放才能获得“新”顺序。
我理解他们所做的事情的动机,一个加权洗牌,只是在那个洗牌中使用我最听/最受欢迎的是愚蠢的。
2、这是我对 Spotify 的不满。我有一个播放列表,其中包含大约 800 首我喜欢的歌曲。它总是从大约 100 首最近添加的歌曲中播放。给我完全随机的。
3、我相信 Spotify 积极建议用户缓存歌曲作为带宽/成本节省措施。
我切换到 Apple Music 并用我最少播放的歌曲创建了一个智能播放列表,我对它的多样性感到非常满意。
4、多年前我放弃 Spotify 的原因之一是他们的 shuffle 非常糟糕。
Recommend
-
29
调皮的内存抖动?前生今世及App解决卡顿慢 Original...
-
51
当网络抖动或网络环境不好的情况下,客户端可能延迟或者收不到服务器发过来来消息,如何保证网络在抖动例如地铁或者建筑物内时,在网络信号从差到好之后收到服务器的更新数据
-
64
你被红色感叹号了吗
-
34
【柴犬抽血主动伸爪表情淡定 其实后腿悄悄在颤抖】近日,辽宁鞍山一只9个月大的柴犬,主动伸出爪子让医生抽血的视频走红。主人在带柴犬抽血时,它主动伸出前爪给医生扎针。视频中,柴犬后腿虽然一直在抖动,但全程满脸脸淡定。网友:表面稳如老狗,实...
-
44
找不到页面
-
13
编者按:本文来自微信公众号 “APPSO”(ID:appsolution) ,作者:李晨,36氪经授权发布。 下班了,又一次走进熟悉的地铁站,听着已经听过无数遍哐当哐当的地...
-
6
Vue 使用 lodash 的 debounced(防抖动)函数2022年9月1日 by anzhihe·
-
3
用A4纸当屏幕「播放」宫崎骏动画,随意抖动都毫无破绽
-
3
renix如何查看时延和抖动和丢包——网络测试仪实操 精选 原创 xinertel 2023-01-06 1...
-
3
今日看点9min read「随机播放」用 40 年统治了世界,值得我们反思一下?2023/05/03
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK