Кажется, что рекомендательный движок музыкального сервиса - это черный ящик. Берет кучу данных на входе, выплевывает идеальную подборку лично для вас на выходе. В целом это и правда так, но что конкретно делают алгоритмы в недрах музыкальных рекомендаций? Разберем основные подходы и техники, иллюстрируя их конкретными примерами.

Начнем с того, что современные музыкальные сервисы не просто так называются стриминговыми. Одна из их ключевых способностей - это выдавать бесконечный поток (stream) треков. А значит, список рекомендаций должен пополняться новыми композициями и никогда не заканчиваться. Нет, безусловно, собственноручно найти свои любимые песни и слушать их тоже никто не запрещает. Но задача стримингов именно в том, чтобы помочь юзеру не потеряться среди миллионов треков. Ведь прослушать такое количество композиций самостоятельно просто физически нереально!

Так как они это делают?

Если ваши музыкальные алгоритмы не похожи на это, то даже не предлагайте мне скачивать приложение!
Если ваши музыкальные алгоритмы не похожи на это, то даже не предлагайте мне скачивать приложение!

Чтобы сделать годную рекомендацию, сервису нужны три сита…

Первое сито - это так называемые рекомендации на основе знаний (knowledge-based). Это значит, что сервис аккумулирует всю доступную информацию об одном пользователе - что он слушает (например, каких артистов или жанр), как часто, что лайкает, что дослушивает, что проматывает дальше и т.д. Учитываются сотни или даже тысячи факторов. Разумеется, собираемые данные анонимны.

После этого сервис делает рекомендацию. Причем она может даваться безотносительно общих предметных знаний сервиса. Например, если мы видим, что Вася добавил в плейлист Metallica “Nothing Else Matters”, то с большой вероятностью ему понравится и “Unforgiven”. Для такого вывода нам не нужна дополнительная информация.

Помимо прочего, рекомендации на основе знаний помогают решить проблему “холодного старта” (это когда свеженький и тепленький юзер только-только зарегался), предлагая новому пользователю тот контент, который соответствует его требованиям с самого начала использования.

Второе сито - коллаборативная фильтрация. Пожалуй, это самый главный прием и краеугольный камень любого стриминга. Хотя коллаборативная фильтрация и может издалека походить на анализ предпочтений пользователей, на самом деле это совсем другая техника и технология - гораздо более продвинутая и математически точная.

Работает она на следующем допущении:

Пользователи, которые одинаково оценили какие-либо композиции в прошлом, склонны давать похожие оценки другим композициям в будущем.

Давайте разберем на примере, очень упрощенно:

Допустим, у Васи затерты до дыр треки:

  • Metallica “Nothing Else Matters”

  • Skrillex “Kyoto”

  • Scooter “How much is the fish?”

  • Валерий Леонтьев “Мой дельтаплан”

Какую закономерность можно выявить на основе этого набора? Да никакую. Просто мешанина из разных жанров, артистов и эпох.

Тем не менее, у сервиса также есть пользователь Петя, чей плейлист по удивительному совпадению похож на Васин, а именно:

  • Metallica “Nothing Else Matters”

  • Skrillex “Kyoto”

  • Dua Lipa “Swan Song’’

  • Валерий Леонтьев “Мой дельтаплан”

Все треки одинаковые, кроме одного. У Васи это Scooter, у Пети - Dua Lipa.

По логике коллаборативной фильтрации, есть вероятность, что если Вася и Петя “обменяются” этими песнями, то обоим понравится. Поэтому такие рекомендации и называются “коллаборативными” - пользователи как бы сотрудничают, обмениваясь предпочтениями друг с другом.

Коллаборативная фильтрация in a nutshell.
Коллаборативная фильтрация in a nutshell.

Понятное дело, что коллаборативная фильтрация работает не на двух пользователях, и даже не на двух тысячах. А вот на паре миллионов юзеров, у которых удается найти критическую массу одинаковых композиций - уже вполне. Также очевидно, что я привожу примеры карикатурно непохожих песен “из разных миров”. Я это делаю намеренно, чтобы подчеркнуть, что подход помогает делать рекомендации на основе данных, в которых, казалось бы, не за что зацепиться в поисках общего паттерна. Понятное дело, что в реальности между прослушанными и рекомендуемыми треками скорее всего будет больше схожести.

Так почему этот способ дает хороший результат, когда между наборами треков может не быть ничего общего?

Ну смотрите. Музыкальные предпочтения зависят от целого множества факторов - ваш вкус в целом, ваше настроение сегодня, работаете вы или же чиллите, болит ли у вас голова, с какой ноги вы сегодня встали, что конкретно на завтрак ели и многое-многое другое. Запихивать все эти переменные в строгое правило с четкими “если Х, то У” - дело неблагодарное. А вот если ИИ эмпирически прошерстит огромную выборку и найдет в ней похожие участки, то это совсем другое дело.

Здесь примерно та же логика, по которой если нейросетке скормить кучу картинок с котиками, а потом попросить её нарисовать котика, то она скорее всего изобразит туловище, к которому будут приделаны 4 лапы, хвост, шерсть и мордочка с усами и треугольными ушками. То есть нюансы изображения могут различаться, но основные свойства котика (назовем их “котиковость”) будут переданы. А значит, концептуально результат будет верный.

Так же и с рекомендациями в рамках коллаборативной фильтрации. Разве можно рационально объяснить, почему одна группа любителей Slipknot вдруг слушает песни Димы Билана (наверно, чтобы вкус перебить, такой себе имбирь между разными роллами), а другая группа - Леди Гагу? Вряд ли. Однако, если такие два паттерна существуют, то это значит, что слушающим Леди Гагу металлистам можно попробовать включить Билана, а их визави, наоборот, протолкнуть в поток Poker Face или Alejandro. Ведь точный эмпирический анализ большой выборки попадает в яблочко как минимум очень часто.

Наконец, третье сито, которое отлично дополняет первые два. Это рекомендации на основе контента (content-based). Здесь уже анализируется непосредственно сама композиция. Сервис берет песню, разбивает её на куски, отрезки или даже отдельные “квадраты”, после чего анализирует каждый отдельный элемент звука и ищет песни, технически похожие на анализируемую. Есть вероятность, что если Васе нравится песня Х с определенным звучанием и ритмом, то ему понравится и песня Y с похожими музыкальными свойствами.

Здесь есть важный нюанс. Звучание песни анализирует машина по каким-то техническим критериям, которые понятны ей, машине. А вот мы, люди, можем кайфовать от песни иррационально. Например, не только благодаря ритму мелодии, аранжировке или тембру голоса исполнителя, а еще и благодаря вайбу композиции, а то и символическому капиталу вокруг неё (например, если песня культовая или просто трендовая и модная-молодежная).

Поэтому, content-based рекомендации не всегда дают хороший эффект сами по себе, но служат отличным дополнением других способов фильтрации.

Также, такой способ - рабочий вариант для так называемых “холодных треков”. Это композиции, которые только-только выложили на стриминг. Допустим, новая песня известного исполнителя, либо же неизвестный трек совсем нового певца-ноунейма, которому тоже хочется славы. В таком случае плясать от самой композиции - полезное умение. Ведь трека еще нет в плейлистах тысяч и миллионов пользователей, а значит, порекомендовать его с помощью коллаборативной фильтрации или через knowledge-based вряд ли получится.

Резюмирую принципы рекомендательных движков музыкальных стримингов с помощью классического мема.
Резюмирую принципы рекомендательных движков музыкальных стримингов с помощью классического мема.

Итак, мы разобрали три основных техники, с помощью которых стриминги рекомендуют звуковой контент нашим ушкам. Разумеется, современные продвинутые сервисы обычно используют их все (получаются “гибридные рекомендации”), прикручивая к каждому из них свои авторские фишки.

Как конкретно это работает. Разбираю на примере гибридного подхода Яндекс Музыки

Теперь предлагаю показать на практике, как конкретно описанные выше техники работают. Для иллюстрации я буду использовать пример Яндекс Музыки. Потому что сам давно пользуюсь этим сервисом (думаю, уже лет 10), а также по той причине, что недавно у них прошло большое обновление алгоритма, которое внесло важные изменения в механизм рекомендаций. Ну и еще потому что всегда приятнее разбирать глобальные лучшие практики на отечественном сервисе, который в полной мере им соответствует.

Итак:

Базово рекомендательный движок Яндекс Музыки реализован через Мою волну, которая появилась на главной странице сервиса пару-тройку лет назад. По умолчанию этот поток сбалансированный - это значит, что он комбинирует любимые и привычные треки (которые пользователь и так активно слушает) с новыми композициями, причем в комфортной пропорции. По своему опыту скажу, что микс между добавленными и новыми треками по умолчанию примерно 50:50. При этом 30-40% новых я лайкаю, чтобы сохранить к себе. За счет этого алгоритм дообучается и адаптируется.

Однако Мою волну можно дополнительно кастомизировать через настройки. Нажимаем кнопку под плеером и проваливаемся вот в такое меню.

Как видим, параметров кастомизации вроде бы немного, но при этом изменения могут быть весьма существенными. К тому же, из скриншота видно, что настройки потока можно включать и отключать в разных комбинациях. Используя свои знания наивысшей математики, я перемножил 5 (Занятия) на 3 (Характер) на 4 (Настроение) и на 3 (Языки) и получил примерно 180. Ну ладно, пришлось использовать калькулятор, подловили…

Так что, внутри одной Моей волны на самом деле сидят очень много разных Моих волн.

Остановимся детальнее на настройке под названием “Характер”. Можно попросить движок делать больше акцента на моих залайканных треках (“Любимое”), или же наоборот чуть абстрагироваться от знаний о пользователе и поддаться общим трендам (“Популярное”).

Но поскольку статья все же о рекомендательном функционале, то остановимся подробнее на настройке “Незнакомое”. Ведь именно глядя на способность подбирать релевантные треки из всего внешнего многообразия можно оценить движок. Итак, если включить “Незнакомое”, то алгоритм сделает серьезный крен в сторону ранее незнакомых композиций.

Кстати, недавнее обновление касалось именно этой настройки. “Незнакомое” получила новый ранжирующий алгоритм, благодаря чему стала более смело предлагать новые композиции, которые, тем не менее, должны соответствовать музыкальным вкусам пользователя.

С обновленной настройкой юзер получает новый аудиоконтент, при этом не ощущая особенно сильных скачков и перепадов. То есть, даже если алгоритм решит выйти за пределы рекомендационного пузыря, дабы расширить музыкальные горизонты пользователя, то он все равно будет оставаться в рамках его предпочтений и смежных жанров. Проще говоря, несмотря на экспериментирование, подбрасывание неактуальной музыки будет сведено к минимуму.

Уважаемые газеты пишут, что теперь пользователи сервиса добавляют к себе в “Коллекцию” примерно на 20% больше новых треков. Для артистов (в том числе молодых и начинающих) это тоже важный ништяк, поскольку повышается вероятность, что их творчество распространится и взлетит среди новой аудитории.

Так вот, для поиска этих самых новых композиций сервис как раз и применяет гибридный подход, объединяющий коллаборативную фильтрацию, анализ контента и фильтрацию на основе знаний о пользователе. Поговорим о нем детальнее.

Начнем с пользователя

Для начала, машина кушает все “долгосрочные” (очень условно их так назову, дорогие технари, не ругайтесь) данные о пользователе. Какие жанры и исполнителей он указывал как любимых, когда регистрировался? Что у него лежит в плейлисте? Что там лежит давно, а что недавно? Что удалялось? Что из лежащего давно он слушает регулярно или иногда, а что лежит мертвым балластом? И еще 100500 факторов и паттернов.

На эти “долгосрочные” знания о юзере накладываются конкретные действия.

Например, обычно Вася слушает треки в одной последовательности, а вчера решил включить в другой. Алгоритм тоже это примет к сведению. Возможно, учтет сразу, а, может быть, посмотрит на динамику последовательности при парочке ближайших использований (кто ж знает, как эта “черная коробка” решит там у себя внутри).

Не забываем, что алгоритмом все-таки заведует продвинутая ML-моделька, которая любит сама себя дообучать и всячески развивать. Так что, хотя человеки и знают принципы её мироустройства, точно предсказать результаты из “черного ящика” решительно нельзя.
Не забываем, что алгоритмом все-таки заведует продвинутая ML-моделька, которая любит сама себя дообучать и всячески развивать. Так что, хотя человеки и знают принципы её мироустройства, точно предсказать результаты из “черного ящика” решительно нельзя.

Разумеется, движок учитывает, дослушал ли песню наш лирический герой, смахнул её или вовсе влепил ей лайк.

Далее - анализ контента

Вторая составляющая годной рекомендации - это анализ самой композиции. Для этого сервис преобразует трек в специальный формат - цифровой аудиовектор.

Для этого сервис разворачивает трек во времени и раскладывает его на частотные диапазоны, получая спектрограмму. Она передается специальной аудиомодели с нейросетью-энкодером, которая сворачивает спектрограмму в аудиовектор, или аудиоэмбеддинг (это когда сервис прячет в аудиофайле специальные метки - о песне, исполнителе, жанре и т.д.).

У похожих по звучанию треков такие векторы расположены близко друг к другу в многомерном векторном пространстве. У разных треков, соответственно, наоборот.

За счет таких манипуляций алгоритм может разложить трек буквально на атомы, чтобы потом сравнить каждую “элементарную музыкальную частицу” с аналогичными частицами других композиций.

Алгоритм сервиса преобразует трек в аудиовектор, расщепляя его на мельчайшие музыкальные элементы, чтобы проанализировать каждый из них. Вижу так.
Алгоритм сервиса преобразует трек в аудиовектор, расщепляя его на мельчайшие музыкальные элементы, чтобы проанализировать каждый из них. Вижу так.

Этот прием дополнительно повышает точность рекомендаций.

Наконец, коллаборативная фильтрация

Залезть в глубинные сущности этой техники конкретного сервиса непросто. Но каждый уважающий себя продвинутый стриминг старается довести эту технологию до высокого уровня.

За основу берется принцип, который я описал в первой части статьи. Но реализуется он, само собой, на предпочтениях миллионов слушателей. Алгоритм анализирует обезличенные данные массы пользователей, после чего прогнозирует музыкальные интересы конкретного человека, добиваясь максимально точных попаданий. В основе всего этого движа лежит матрица взаимодействия, составленная из различных оценок пользователей. Если упрощенно, то это такая табличка (ооочень большая), где отображаются все взаимодействия юзера с сервисом. Потом с матрицей работают алгоритмы машинного обучения - они уже обрабатывают данные и передают их в обобщенную модель, которая и отвечает за рекомендации.

Три типа фильтрации в итоге объединяются в единый machine-learning алгоритм под названием CatBoost, который уже генерирует для каждого юзера персональную последовательность треков с учетом множества вышеописанных факторов.

В итоге в алгоритмическом магическом котле заваривается тот самый вуншпунш, который мы готовы потреблять ушами в течение часов и дней, поддерживая свой энергичный рабочий настрой, умиротворенный расслабленный вайб либо же вызывая внезапный эмоциональный порыв. Подчеркнуть нужное в зависимости от ваших текущих целей, настроения и самочувствия.

Теперь вы знаете чуть больше про рекомендательные системы стриминга, особенно музыкального. Надеюсь, было интересно и полезно. Есть что добавить или с чем поспорить? Пишите в комменты.


Если вам понравилось, то подписывайтесь на мои тг-каналы. На основном канале - Дизрапторе - я простым человечьим языком и с юмором разбираю разные интересные штуки из мира бизнеса, инноваций и технологических новшеств (а еще анонсирую все свои статьи, чтобы вы ничего не пропустили). А на втором канале под названием Фичизм я регулярно пишу про новые фичи и инновационные решения самых крутых компаний и стартапов.

Комментарии (18)


  1. runawayohno
    10.04.2024 06:41
    +1

    Получается, 3-е сито поощряет музыкантов быть вторичными, так?


    1. AlekseiPodkletnov Автор
      10.04.2024 06:41

      Нет, не так)


  1. VadimProfii
    10.04.2024 06:41

    В музыкальной культуре давно принято слушать произведения целиком, а не дергать по кусочку разные песняки у разных исполнителей...


    1. AlekseiPodkletnov Автор
      10.04.2024 06:41
      +3

      Думаю, то что вы упомянули, и то что люди слушают в стримингах - это совсем разная музыка и разная культура


      1. Acuna
        10.04.2024 06:41

        Ага-ага, забавно конечно когда у человека в его картине мира существует только классическая музыка, и он такой ну вообще-то произведения слушают полностью) Никого не пытаюсь задеть, просто забавно смотрится) Однако скажу что я сам по металлу, и у нас действительно все слушается альбомами, солянки из разных исполнителей не частое явление, думаю связано это с тем что стриминговые сервисы из металла относительно нормально разбираются только в хэви, а это отдельный довольно специфичный даже для самих металлюг жанр. Произведениями мы альбомы конечно не называем, но все же...


  1. Glen5
    10.04.2024 06:41
    +1

    Apple Music, deezer, Spotify - ни один нормально не работает. Все предложения совершенно мимо, всегда. Они работают скорее на уровне: он прослушал две песни Pink Floyd, что у нас там еще есть из рока 70-ых, Led Zeppelin? Отлично, ему должно подойти!


    1. AlekseiPodkletnov Автор
      10.04.2024 06:41

      Ну не, коллаборативная фильтрация должна более тонко работать) там же учитывается все множество треков, а не только один конкретный


    1. Doc_est
      10.04.2024 06:41

      Подтверждаю насчёт apple music - уже полгода бьюсь с ним за новую для меня музыку, но ничего не изменилось.

      А вот yandex music неожиданно дал очень много новых классных песен.

      В общем, я в удивлении. Возможно Apple music применяет аналоги музыкальных санкций для российских потребителей?


      1. AlekseiPodkletnov Автор
        10.04.2024 06:41

        Тим Кук шалит)


      1. RocketZooly
        10.04.2024 06:41

        Я как-то сидел на яндекс музыке, но в те времена у них постоянно падал сервис или треки отваливались, бывало плеер не играл. Плюсом оказалось, что клиента под мак нету у них, только браузер. И уж не вспомню всех косяков, но самый основной - это рекомендации. В один момент они встали, то есть он начал рекомендовать по кругу. Волны тоже бегали в основном по кругу, но я застал их вроде только начало.

        Потом ушел на спотик, так как был клиент на мак, да и рекомендации вроде как хвалили. Но по сути та же фигня и у спотика случилась. Реки были хорошие, но до определенного момента. Потом этот список тупо встал на полгода на одном месте, хотя в плейлесте уже 100+ новых треков было. Хоть я и отмечал в рекомендациях дизлайком треки, но они все равно появлялись опять в этом списке.
        Но сейчас у спотифая появилась функция рандома с перемешкой рекомендаций. И я так понял, она работает на лету как-то, толи от последнего играющего трека отталкивается, толи фиг знает как даже.


        Зы. Самое удивительное и тайное для меня больше остается функция - случайные треки. Вот с ней тоже на всех сервисах беда.


    1. JediPhilosopher
      10.04.2024 06:41
      +4

      Ну а как еще делать-то? Все три подхода выше автор перечислил, а залезть вам в голову и узнать что вам на самом деле интересно сервис таки не может (ну это пока...)

      По ощущениям Яндекс-Музыка стала как-то очень осторожно новое показывать. Если включать мою волну по плейлистам, трекам или занятиям - там вообще ничего нового, играет раз за разом одни и те же композиции. Предположу потому, что если человеку пара треков подряд не понравится - он выключит приложение, а задача - удержать его наподольше, так что более безопасная стратегия - подсовывать больше проверенных временем треков.

      Вообще это проблема этих всех сервисов - положительная обратная связь. Человек послушал несколько треков - они ему понравились - будем чаще ему показывать эти же или похожие - он все чаще их слушает (потому что мы их часто показываем, а ему лень переключаться) - мы их еще чаще показываем (ведь у них прослушивания высокие) - и так далее до полного вырождения плейлиста.

      По ощущениям "холодные" рекомендации в самом начале, когда я только зарегистрировался и у него не было истории моих прослушиваний, были интереснее.


      1. ganzmavag
        10.04.2024 06:41

        С положительной обратной связью да, у Яндекса есть проблема, что когда слушаешь поток "Коллекция" из своих пролайканных треков, он постоянно плюс-минус из одних и тех же состоит. Потом включаешь просто рандомное воспроизведение отлайканных треков и удивляешься, сколько хороших песен алгоритм тебе не давал.

        Так понимаю, они именно поэтому заморочились над улучшением алгоритма потока "Неизвестное", куда точно повторы не попадут.


    1. RollJam
      10.04.2024 06:41
      +3

      Уже много лет использую только Spotify и мы с ним хорошо подружились. Да, бывали периоды, когда за новую музыку приходилось повоевать, и daily плейлисты там действительно чаще всего выдают только твою музыку и то, что будет к ним близко. Но еженедельные плейлисты почти всегда радуют, что Discover weekly, что Release radar, в который попадают свежие релизы исполнителей, не только от твоих "любимых" треков.
      Ну и весь основной сок в радио по -треку -исполнителю -альбому, там как раз алгоритмы и работают, и делают это очень даже неплохо.
      Собираю себе плейлисты по направлениям жанрам, а потом просто включаешь треки под ним и вот тебе подборки направлений и вот тебе радио по направлению.
      С Яндекс музыкой совсем связи не получилось из-за отсутствия там альбомов некоторых любимых исполнителей, а иногда и самих исполнителей.


  1. Keeper10
    10.04.2024 06:41
    +1

    -- Я принял окончательное решение, Хэндерган. Я не буду устанавливать у себя ваш компьютер. Можете его забрать в любое время.

    -- Но почему? Мне казалось, он полностью справляется со своей задачей.

    -- Именно. Он прекрасно изучил мой вкус и становится все безупречнее. Я уверен, что если его подключить к архивам, он будет снабжать меня только самым лучшим, с моей точки зрения. Но в этом-то и проблема. Нельзя питаться одними пирожными. Когда имеешь дело только с совершенством, оно перестает восприниматься как совершенство и становится обыденностью. Даже грамматически понятие "лучший" лишается смысла в отсутствии не-лучшего.

    (Юрий Нестеренко, "Рильме гфурку")


  1. piuzziconezz
    10.04.2024 06:41
    +7

    Заметил странную вещь: если меня спросить, какая музыка мне нравится, я перечислю некоторые группы и песни. Но по-факту я слушаю другое, и плейлист состоит из чего угодно, но не того, что, как я считаю, мне нравится. То-ли оно давно надоело, то ли я сам толком не могу определиться, что же мне нравится. Фактически там такая сборная солянка из совершенно разных жанров, песен и исполнителей.


  1. gun_dose
    10.04.2024 06:41
    +2

    Мне кажется, персонализированность этих рекомендаций очень сильно преувеличена. Например, я пользуюсь Яндекс музыкой не менее 6 лет. Слушаю почти каждый день по несколько часов. И в целом стрим "Моей волны" меня полностью устраивает, несмотря на то, что слушаю, скажем так, совсем не то, что играет по радио. И вот как-то сажусь я в машину к знакомому, едем куда-то, играет "Моя волна", но только не моя, а его, и я замечаю, что абсолютно все треки оттуда постоянно крутятся и у меня. И после такого количества совпадений в течение 20 минут как-то не верится, что эти рекомендации у каждого свои. Больше похоже на то, что пользователей разбивают на категории, и в каждой категории предлагаются треки из определённого набора. Я допускаю, что это сделано не намеренно, а всему виной несовершенство алгоритмов, но факт остаётся фактом.

    И такое встречается не только на Яндекс музыке. Сервисы с короткими видео тоже показывают многим юзерам одно и то же. Да и ленты в соцсетях. Очевидно, кроме поведенческих факторов влияет ещё и фактор продвижения, всякие теневые баны и т.д. Но как бы то ни было, очевидно, что эти алгоритмы не так эффективны, как об этом говорят их создатели. С другой стороны, при отсутствии конкуренции никто не будет это дело совершенствовать, да и не так уж это нужно, т.к., как я упоминал выше, в целом рекомендации хорошие.


  1. OlegFilonov
    10.04.2024 06:41
    +1

    Алексей, спасибо! Интересная статья. Мне всегда казалось, что рекомендации в ЯМ делаются через сравнение векторов. Оказывается, всё несколько сложнее.

    Добавлю ложку дегтя в свой хвалебный коммент. ИМХО, ЯМ - не лучший пример внедрения аудио-рекомендаций. Сервис - условно бесплатная часть экосистемы, а значит, люди редко из него уходят по причине плохого сервиса. Увы, с уходом Spoify уходить просто некуда.

    Мой личный опыт использования Музыки и её рекомендаций (знаю, что он не показателен) - удручающий. В каждую сессию алгоритм подсовывает мне одни и те же заезженные треки. В Моей волне и в Новом приходится пролистывать регулярно десятки треков.

    По итогу, я склоняюсь, что мой подход к прослушиванию музыки разделяет меньшинство, а сервис всё же делают под широкую аудиторию. Хотя не понятно, в какой момент сервис сам начинает формировать привычку аудитории.


  1. FoxWMulder
    10.04.2024 06:41

    кто бы создал приложение подбора музыки с той музыки которую я слушаю с компа. не видел я удобного инструмента для этого. от стриминговых сервисов отказался по ряду причин, использую точнее их только для поиска музыки как раз, но не пользуюсь ими в полной мере. вообщем приложение на компе вот что надо, которое предлагала бы новые треки, составляла подборки под настроение и по жанру, конечно предлагало бы новые треки под меня. в идеале конечно чтобы оно ещë и тащило с интернета эти треки на комп (скачивало). последний пункт тоже важен, но понимаю что с ним есть ряд проблем.