
tl; dr: Adblock Radio reconnaît les publicités audio en utilisant l'apprentissage automatique et des techniques de type Shazam. Le principal moteur open source : utilisez-le dans vos produits! Vous pouvez unir vos forces pour prendre en charge davantage de stations de radio et de podcasts.
Peu de gens aiment écouter les publicités radio. J'ai lancé le projet
AdblockRadio.com afin que les auditeurs puissent ignorer les publicités sur leur radio Internet préférée. L'algorithme est publié en
open source et cet article décrit son fonctionnement.
Adblock Radio a déjà testé sur des données réelles de
plus de 60 stations de radio dans sept pays . Il est également compatible avec les podcasts et fonctionne plutôt bien!
Par rapport aux implémentations précédentes, notre algorithme propose une approche universelle, traitant les threads de diverses sources. Parmi les implémentations précédentes, une
repose sur des métadonnées de radio Internet , mais seule une petite fraction de la radio est compatible avec cette méthode. Une autre implémentation
reconnaît les jingles connus , mais dans de nombreux cas, le début et la fin des pauses commerciales ne sont pas marqués par le jingle.
En plus de détecter les publicités, l'algorithme proposé peut distinguer la conversation de la musique. Par conséquent, il vous permet également d'éviter les bavardages et d'écouter uniquement de la musique.
Ceci est un rapport de mon travail personnel pendant près de trois ans. J'ai lancé Adblock Radio fin 2015, quelques mois après avoir obtenu mon diplôme d'études supérieures en physique des plasmas de fusion. Lorsque Adblock Radio a
acquis une certaine renommée en 2016, j'ai reçu des menaces d'avocats de stations de radio françaises (voir ci-dessous). J'ai dû fermer partiellement le site, changer l'architecture du système, mieux étudier les conséquences juridiques, etc. Aujourd'hui, je pense qu'AdBlock Radio sera beaucoup mieux développé dans le paradigme de
l'innovation ouverte .
Cet article comporte trois parties. Ils sont conçus pour différents publics. Vous pouvez faire défiler vers le bas ou cliquer sur le nom pour accéder directement à la section souhaitée.
- Détection des publicités: stratégies éprouvées . Pour les personnes techniquement averties, les scientifiques, les spécialistes de l'analyse de données ... Voici différentes méthodes techniques que j'ai essayé de détecter les publicités, y compris la reconnaissance vocale, les empreintes sonores et l'apprentissage automatique. Réflexions sur les options de travaux futurs.
- Il n'est pas recommandé d'exécuter Adblock Radio dans le cloud . Pour les développeurs de logiciels et les personnes intéressées par le droit d'auteur. Nous verrons à quel point il est difficile de trouver un compromis satisfaisant entre les limitations techniques et légales lors du lancement d'Adblock Radio dans les services cloud. Pour ces raisons, il est préférable d'exécuter Adblock Radio uniquement sur les appareils des utilisateurs finaux.
- Vous pouvez intégrer Adblock Radio dans votre lecteur . Pour les fabricants, les propriétaires de produits, les concepteurs UX, les techniciens ... J'envisage des idées pour intégrer un algorithme open source dans les produits finaux, y compris les joueurs de voiture, et en soulignant la nécessité de commentaires des utilisateurs sur les cas de dysfonctionnement. Cela est nécessaire pour maintenir le système. Enfin, voici des conseils sur la façon de créer les bonnes interfaces utilisateur. J'attends beaucoup de retours sur ce sujet.
Adblock Radio ramène le plaisir d'écouter la radioDétection des publicités: stratégies éprouvées
Pour bloquer une annonce, vous devez d'abord la détecter. Le but est de détecter les publicités dans le flux audio sans aucune aide de la station de radio. Ce n'est pas une tâche facile. J'ai essayé plusieurs approches avant d'obtenir un bon résultat.
1. Méthodes simples (ne fonctionnent pas)
Le volume
La première idée est de vérifier le volume sonore, car la publicité est tellement forte! Pour la publicité, la
compression acoustique est souvent utilisée. C'est un critère intéressant, mais il ne suffit pas de distinguer la publicité. Par exemple, cette stratégie fonctionne assez bien pour les stations de musique classique, où les publicités sont généralement plus fortes que la musique. Mais la pop est aussi forte que la publicité. De plus, certaines publicités peuvent être délibérément rendues silencieuses afin d'éviter leur détection.
Verrouillage de l'horloge
Une autre idée est que la publicité est diffusée selon un horaire à une heure précise. Dans une certaine mesure, cela est vrai, mais il n'y a aucune précision. Par exemple, j'ai regardé l'
émission du
matin à la station française ne pas commencer exactement à la même heure, avec des variations allant jusqu'à deux minutes. Les stations de radio peuvent facilement contourner un tel verrou en décalant aléatoirement leurs programmes de plusieurs dizaines de secondes.
Métadonnées
La solution évidente est de s'appuyer sur les
métadonnées ICY / Shoutcast pour que des joueurs comme
VLC affichent les informations de flux. Malheureusement, ces données sont dans la plupart des cas brisées. On pourrait prendre des informations de la diffusion en direct sur les sites Internet des stations de radio (j'ai développé un
outil pour cela ), mais le plus souvent la publicité n'est pas identifiée telle quelle. Habituellement, lors de la publicité sur le site affiche le nom de la chanson ou du programme précédent. Une exception notable est
Jazz Radio , qui écrit
"la musique revient vite ..." pendant les publicités (la musique sera bientôt de retour). En conclusion, il convient de noter qu'il s'agit d'une stratégie peu fiable, car les stations de radio peuvent très facilement modifier les métadonnées.
Marquage manuel
Après tout, la détection des publicités est possible sans aucun algorithme! Vous pouvez simplement demander à certains auditeurs d'appuyer sur un bouton lorsqu'une publicité commence et se termine. D'autres auditeurs en bénéficieront. C'est la stratégie du décodeur
TiVo Bolt . Il vous permet de supprimer les publicités sur les canaux établis à une heure définie. Cela donne d'excellents résultats, mais ne s'adapte pas bien à des milliers de stations de radio.
L'inconvénient est qu'il est difficile de démarrer le système à partir de zéro. Il est possible que l'audience de la nouvelle station ne soit pas suffisante pour fonctionner correctement. Les premiers auditeurs seront bouleversés et partiront, de sorte que la station ne réunira jamais un public suffisamment large.
Une autre difficulté est que les stations de radio voudront envoyer de faux signaux pour saboter le système. Elle nécessite un mécanisme de modération, un système de consensus ou un seuil de vote.
Le crowdsourcing est une bonne idée. Je pense que cela semble encore mieux si l'algorithme fait la plupart du travail, laissant un minimum pour les gens. Voilà ce que j'ai fait.
2. Reconnaissance de la parole et analyse du champ lexical (échec)
La publicité est toujours le même sujet et domaine lexical: acheter une voiture, obtenir des coupons de supermarché, souscrire une assurance, etc. Si vous reconnaissez la parole, vous pouvez utiliser des
outils standard
pour lutter contre le spam . C'était mon premier parcours de recherche fin 2015, mais je n'ai pas pu implémenter la reconnaissance vocale.
En tant que débutant en traitement de la parole, j'ai commencé par lire
le traitement de la parole de Huang , un excellent livre, bien qu'un peu daté. J'ai mis mes petites mains sales sur
CMU Sphinx , le meilleur moteur de reconnaissance vocale libre de l'époque.
La première tentative a donné de très mauvais résultats et a nécessité des calculs intensifs sur le CPU. J'ai utilisé les paramètres par défaut: dictionnaire français standard (liste des mots possibles et phonèmes correspondants), modèle de langage (probabilités de séquences de mots) et modèle acoustique (connexion des phonèmes sous forme d'ondes sonores).
Les tentatives d'amélioration du système sont vaines: la reconnaissance fonctionne toujours mal. J'ai mis en place le vocabulaire et le modèle de langage sur un petit ensemble de données, partageant le son
avec un outil de diarisation . Il a également
adapté le modèle acoustique MLLR à la station de radio Europe 1 (française), sur laquelle il a formé le système.
En général, l'idée de reconnaissance vocale a dû être abandonnée. C'est probablement pour les experts. Cependant, à l'avenir, vous pourrez y revenir. Depuis 2015, des progrès importants ont été réalisés dans la reconnaissance vocale. De nouveaux outils open source ont été publiés, comme
Mozilla Deep Speech .
3. Base publicitaire crowdsourcing, détection par empreintes digitales sonores (encourageant)
La première version d' Adblock Radio en 2016 fonctionnait avec une base de données de publicités. Le système écoutait en continu le flux sonore à la recherche de publicité. Les résultats étaient vraiment prometteurs, mais il était difficile de maintenir une telle base à jour.
La technique de recherche d'empreintes digitales est similaire à ce que
Shazam fait sur ses serveurs pour reconnaître les chansons. Ce type d'algorithme est communément appelé
point de
repère . Je l'ai adapté pour travailler en streaming et j'ai
ouvert le code source .
L'empreinte digitale convient à la détection de publicités, car elles sont diffusées à plusieurs reprises sous la même forme. Pour la même raison, il reconnaît la musique. Mais cette technique ne fonctionnera pas sur la parole, car les gens ne prononcent jamais les mots de la même manière. Cela n'est possible qu'avec la retransmission des programmes la nuit, ce qui ne nous intéresse pas. Ainsi, la publicité et la musique (en tant que «non publicitaires») doivent être entrées dans la base de données des empreintes digitales, mais il est inutile de traiter la parole.
Essentiellement, les empreintes digitales sonores sont la conversion de certaines caractéristiques sonores en une série de nombres appelés empreintes digitales. Si de nombreux tirages en direct correspondent à la base, nous pouvons conclure que la publicité est transmise. Pour une résolution, une durée et une plage de fréquences optimales, un ajustement est nécessaire. Différents modèles devraient bien varier. Cependant, le système devrait fonctionner même avec un léger changement dans les algorithmes de compression du son ou si la radio a changé les paramètres de l'égaliseur. Enfin, vous devez limiter le nombre d'impressions afin de ne pas charger de ressources informatiques.
Exemple de calcul d'empreintes sonores. Fond rouge - spectrogramme. Il reflète le changement d'intensité sonore en fréquence (basses fréquences ci-dessous). Sur cette carte, les pics spectraux sont identifiés (points bleus) et connectés (lignes grises). La position, la longueur et l'orientation de chaque ligne grise sont converties en un numéro unique, une impressionLa classification binaire donne le résultat: l'échantillon est-il une publicité ou non? Si nous analysons les cas d'erreurs, le système produit presque toujours un faux résultat négatif, c'est-à-dire qu'il manque des publicités et note très rarement un bon contenu comme publicité. Les utilisateurs peuvent signaler des annonces non détectées en un seul clic, ce qui fournit une excellente interface utilisateur. Le son correspondant est automatiquement ajouté à la base de données. J'ai modéré ces actions a posteriori.
Il était difficile de maintenir la base de données à jour, car les publicités changent souvent et les publicités sont diffusées avec peu de variations. Ils sont également fréquemment mis à jour, dans certains cas tous les quelques jours. Certains flux avec un nombre d'auditeurs insuffisant sont très mal reconnus.
J'ai exploré des stratégies intéressantes pour automatiser partiellement le travail des auditeurs. Les publicités sont diffusées de la même manière plusieurs fois par jour. Cela peut être utilisé pour les identifier. Enregistrements recherchés pour
les séquences répétitives maximales (MRS). D'autres contenus sont également répétés, par exemple des chansons et des jingles (économiseurs d'écran). J'ai trié toutes les séquences par longueur et pris des échantillons d'une durée d'environ 30 secondes, typiques des publicités. Ainsi, très souvent réussi à attraper une publicité. Mais parfois, des chœurs de chansons ou même des prévisions météorologiques enregistrées se faisaient entendre.
J'ai trouvé un moyen de filtrer la plupart des répétitions musicales: j'ai
analysé les listes de lecture de la station, téléchargé les chansons et les ai intégrées dans la base de données avec le label «no ads». Par conséquent, de plus en plus de candidats à MRS se sont avérés être de véritables publicités. Mais toujours, pas tous, l'assistance aux utilisateurs est donc restée nécessaire.
Moins de travail manuel était nécessaire, mais la charge du serveur était déjà un problème. Avec le recul, le choix de SQLite pour ces opérations de base de données gourmandes en ressources et à temps critique n'était pas le meilleur.
Heureusement, l'algorithme a eu quelques secondes pour déterminer si le son est une publicité ou non. En effet, les radios Internet utilisent un tampon audio, généralement de 4 à 30 secondes, qui n'est pas immédiatement lu sur l'appareil de l'utilisateur final. Cela permet d'éviter les interruptions de diffusion en cas de perte temporaire du réseau.
J'ai utilisé ce délai de tampon de post-traitement pour rendre les prédictions d'algorithmes plus stables et sensibles au contexte. Immédiatement avant de lire le son sur l'appareil de l'utilisateur final, l'algorithme examine les résultats des prévisions qui sont toujours dans le tampon, ainsi que les anciennes qui ont déjà été lues. Il coupe les points de données douteux avec plusieurs correspondances d'empreintes digitales, montrant une
hystérésis . Il prend également en compte le temps moyen pondéré pour aplanir les éventuelles défaillances.
Adblock Radio à un moment donné en 2016. Le surlignage rouge des stations de radio où la publicité est actuellement diffusée était vraiment cool! Les utilisateurs pouvaient marquer les annonces ignorées avec un bouton bleu. Le bouton de musique dans un nuage en haut vous permet d'exporter un flux MP3 personnalisé avec la publicité supprimée de celui-ci et, si cette fonction est configurée, des transitions fluides entre les stations de radio. Vous trouverez ci-dessous les boutons et fonctions supplémentaires.4. Classification de la publicité, de la conversation et de la musique dans l'apprentissage automatique (presque prêt!)
La prochaine version de l'algorithme analyse l'acoustique: des sons graves aux sons aigus et leur changement dans le temps. De nouvelles publicités inconnues sont détectées presque aussi bien que les anciennes sur lesquelles la formation a eu lieu, uniquement par des signes de bruit et d'importance. Il s'agit d'une méthode plus complexe pour analyser le volume sonore (voir la discussion précédente).
Pour cela, j'ai utilisé des outils d'apprentissage automatique, à savoir la bibliothèque
Keras , connectée à
Tensorflow . Cela a donné de très bons résultats avec peu d'utilisation du processeur. Cette version a fonctionné en production pendant plus d'un an, du début de 2017 jusqu'au milieu de 2018. Il est maintenant possible de distinguer les conversations et la musique, c'est pourquoi la classification est devenue plus précise: au lieu de «publicité / non publicité» - «publicité / conversation / musique».
Nous étudierons les détails. Le son est converti en une carte 2D, où l'intensité sonore est présentée en fonction de la fréquence et du temps (sur une échelle d'environ quatre secondes). Cette carte est conceptuellement similaire à la carte rouge dans le chapitre sur les empreintes digitales. La principale différence est qu'au lieu du spectre de Fourier classique, j'ai utilisé
des coefficients Mel-cepstral qui sont pertinents dans le contexte de la reconnaissance vocale.
Les cartes séquentielles avec différents horodatages ont ensuite été analysées sous forme d'images dans un
réseau neuronal récurrent tel que
LSTM (mémoire à court terme à long terme). Chaque carte a été analysée indépendamment de l'autre (RNN
sans conservation d'état ), mais les cartes se chevauchaient. Les cartes duraient 4 secondes et chaque seconde une nouvelle apparaissait. Le résultat final pour chaque carte était le vecteur
softmax , par exemple,
ad: 72%, talk: 11%, music 17%
. Ces prévisions ont ensuite été traitées en utilisant la même méthode que celle décrite dans la section des empreintes digitales.
Prévisualisez les résultats typiques d'apprentissage automatique pour deux stations de radio. L'axe horizontal représente environ 17 minutes de temps. La ligne verte se déplace entre trois positions: la publicité en haut, la conversation au milieu et la musique en bas (la plus proche d'un fond gris uniforme). Zones rouges - intervalles d'écoute de l'utilisateur. Si l'algorithme donne une prédiction incorrecte, l'utilisateur peut la corrigerAu départ, j'ai formé un réseau de neurones sur un très petit ensemble de données. J'ai développé l'interface utilisateur (voir l'image ci-dessus) pour visualiser les prévisions et j'ai pu ajouter plus de données pour former des modèles avec de meilleures performances. Au moment d'écrire ces lignes, le jeu de données de formation contient une dizaine de jours d'audio: 66 heures de publicité, 96 heures de conversation et 73 heures de musique.
Malgré le bon travail, la précision de la classification s'est avérée encore légèrement inférieure aux attentes des utilisateurs (voir la section sur les améliorations futures ci-dessous). Lors de la formation, la précision de la prévision de catégorie était de 95%, mais les classifications incorrectes restantes laissaient les utilisateurs mécontents.
Remarque pour les spécialistes du traitement des données: il est courant de donner des résultats formels, en divisant l'ensemble de données en sous-ensembles de formation et de test. Je pense que cela n'a pas de sens ici, car l'ensemble de données se construit progressivement sur des données où les modèles précédents se sont trompés. Cela signifie que l'ensemble de données contient plus de pathologies que la diffusion moyenne, et la précision sera sous-estimée. Un travail séparé sera nécessaire pour mesurer les indicateurs réels. L'opérateur peut marquer des segments continus d'enregistrements audio conventionnels comme données de test, puis calculer la précision et les rappeler. Une telle vérification régulière vous permettra de surveiller les performances des filtres.La catégorisation de la publicité / conversations / musique a ajouté de la commodité aux auditeurs. Cependant, cette classification a compliqué l'interface utilisateur et il est devenu plus difficile de travailler avec les rapports utilisateur. Si le drapeau indique que certains contenus ne sont pas de la musique, s'agit-il de publicité ou de conversation? Ici, vous avez besoin d'une modération immédiate, pas d'un post-mémoire.
Pour améliorer encore la qualité, j'ai développé la dernière version d'Adblock Radio, qui améliore légèrement cette stratégie.
5. La combinaison de la classification sonore et de la correspondance des empreintes digitales (succès!)
Mon meilleur algorithme est
publié sur Github . Pour augmenter la fiabilité, il combine les concepts de deux tentatives précédentes: la classification acoustique et la base de données d'empreintes digitales.
Un prédicteur d'apprentissage automatique correctement formé fournit la classification correcte de la plupart des matériaux source, mais il ne fonctionne pas dans certaines situations (voir la section sur les améliorations futures ci-dessous). Le rôle du module de correspondance d'empreintes digitales est de réduire les erreurs du module d'apprentissage automatique.
Toutes les données d'entraînement connues ne sont pas entrées dans la base de données d'empreintes digitales, mais seulement un petit sous-ensemble où l'apprentissage automatique affiche des erreurs. Je l'appelle la «base de données de listes de véhicules recherchés». La petite taille permet de réduire le taux d'erreur global tout en maintenant une charge CPU faible.
Sur un ordinateur portable ordinaire, l'algorithme ne consomme que 5 à 10% du processeur sur les fichiers et 10 à 20% sur les ondes.
Améliorations futures
Certains types de contenu sont toujours problématiques.
Le détecteur fonctionne imparfaitement sur certains types spécifiques de contenu audio:
- La musique hip-hop est souvent reconnue comme de la publicité. Vous pouvez contourner le problème en ajoutant des pistes à la hotlist, mais c'est trop de musique. Un réseau neuronal plus général pourrait être développé, peut-être au détriment des performances.
- les publicités d'albums de musique sont souvent reconnues comme de la musique. Mais le blocage par les empreintes digitales entraînera de faux positifs lorsqu'une vraie chanson est diffusée. Le problème peut être résolu par une analyse plus approfondie du contexte, mais il est difficile sur les ondes, où le contexte n'est connu que quelques secondes à l'avance.
- Les annonces de talk-show sont souvent reconnues comme des conversations. Il y a des limites floues, car il s'agit à la fois d'une conversation et d'une publicité. On voit la limite des possibilités du classificateur publicité / conversation / musique. Pour la classification par empreintes digitales, j'ai utilisé la classe ad_self pendant un certain temps, qui contient des annonces de talk-show sur des stations spécifiques, mais avec l'introduction de l'algorithme d'apprentissage automatique, j'ai cessé de le faire. Il pourrait être judicieux de recréer cette classe. Une autre option est une meilleure analyse du contexte.
- publicité native, où l'hôte lit le texte du parrainage. À la radio, c'est rare, et plus souvent dans les podcasts. La prochaine étape logique pour bloquer une telle publicité est l'introduction d'un logiciel de reconnaissance vocale.
Chaînes de Markov pour un post-traitement plus stable
La stabilité après traitement peut être améliorée. Actuellement, seuls des seuils de confiance sont utilisés. Lorsque la valeur seuil est atteinte, la dernière prévision sûre est prise. Ainsi, le système enregistre parfois une erreur.
Les cycles de publicité, de conversations et de musique sont plutôt cycliques à chaque émission. Par exemple, la publicité dure généralement quelques minutes. Pour chaque période d'une pause commerciale, vous pouvez calculer la probabilité d'une transition vers un autre état (conversation ou musique). Cette probabilité aidera à mieux interpréter les prédictions bruyantes de l'algorithme: s'agit-il simplement d'un court segment de musique dans l'annonce ou la pause publicitaire est-elle terminée? Ici,
les modèles de Markov cachés seront un bon domaine de recherche.
La radio analogique n'est pas encore prise en charge
Les signaux analogiques (FM) n'ont pas été testés et ne sont actuellement pas pris en charge. Le bruit analogique remplace les méthodes utilisées ici. Des filtres et / ou des algorithmes de reconnaissance d'empreintes digitales résistants au bruit peuvent être nécessaires. Si cela se produit, le programme est en mesure de trouver une application plus large parmi les utilisateurs. Cependant, la radio se tourne de plus en plus vers des technologies numériques sans bruit telles que la
DAB et la radio Internet.
Il n'est pas recommandé d'exécuter Adblock Radio dans le cloud
Idéalement, Adblock Radio ne devrait être exécuté que sur des terminaux. Mais maintenant, les services cloud sont à la mode. De plus, c'est une excellente idée d'entreprise! Adblock Radio a testé deux options d'architecture avec un tel paradigme. Cependant, l'expérience montre que ce n'est pas la meilleure option pour des raisons techniques et juridiques.
Option 1. Relais du serveur
Le serveur peut relayer le contenu audio avec des tags ad / talk / music aux auditeurs. Nous l'avons testé en 2016. Ici, des problèmes juridiques se posent, car relayer le flux peut être considéré comme un faux et / ou une violation du droit d'auteur (bien que je ne sois pas avocat). De plus, il n'est pas très évolutif car vous êtes maintenant un CDN et devez en supporter les coûts.
Pour des raisons de plaisanterie, dimanche, alors que j'étais absent pour des raisons familiales, Adblock Radio a reçu un franc succès,
dont il est tombé . Fait amusant: quelques jours plus tard,
France Inter , une importante station de radio publique française, a
annoncé Adblock Radio en prime time (mais sans le nommer). Il s'agit d'une décision éditoriale inattendue dans le contexte du fait que les régulateurs ont décidé en 2016 d'
assouplir les restrictions à la publicité sur les radios publiques , ce qui a exacerbé la
discorde entre les salariés de Radio France et la direction .
Quelques semaines plus tard, j'ai reçu des menaces de l'avocat de la chaîne de radio privée française
Les Indés Radio , prétendument pour violation de droits d'auteur et de marque. N'ayant pas de ressources financières pour une protection sérieuse, j'ai dû supprimer certains flux du site, fermer partiellement le site et changer l'architecture du système. Dans le même temps, ce réseau radio a refusé de coopérer à la recherche d'un compromis. Comme je vois dans les journaux qu'ils ont continué à surveiller mon site (parfois avec des comptes pseudonymes), ils ont également consulté
leurs avocats . Quel honneur pour moi! Avec le recul, ils ont réussi à gagner du temps, mais rien de plus. Salut les gars d'Indés! J'espère que vous apprécierez cette lecture!
xoxoxo .
Déclaration d'amour des Indés, un réseau de 131 radios françaisesOption 2. Le serveur relaie le son, mais en privé
Cela suppose une analyse sur le serveur et le relais du son effacé pour un utilisateur spécifique. Un tel système peut être exempté de la loi sur le droit d'auteur en tant que sa propre copie privée des médias. Si le serveur est géré par l'utilisateur final et que la source d'origine est légale et officiellement disponible dans votre région, tout est probablement juridiquement propre. Voir la discussion sur
Station Ripper [FR] et
VCast [FR] pour plus d'informations. Mais les utilisateurs sont rarement technophiles pour louer et installer leur propre serveur.
Il est très tentant de placer le serveur sous le contrôle d'un tiers, mais cela conduit à des problèmes juridiques, car alors l'opérateur qui fait la copie et l'utilisateur final ne sont pas la même personne. Dans ce cas, des restrictions légales sont imposées, au moins en France. Le service Internet français
Wizzgo [FR] a rencontré cette règle en 2008. Plus récemment, aux États-Unis, le service de télévision
Aereo a été fermé, bien qu'il ait pris des précautions en distribuant un
tuner séparé (!) À
chaque client .
Actuellement, le service
Molotov.TV [FR] se bat contre les titulaires de droits d'auteur qui souhaitent
limiter ses fonctions [FR] , malgré l'influence significative de ses co-fondateurs.
La taxe sur la copie privée [FR] doit être
payée à l'organisation officielle . Le montant est déterminé par
des calculs plutôt opaques [FR] et
augmente [FR] chaque année, atteignant plusieurs dizaines d'euros par utilisateur et par mois. Cette carte est devenue si haute que Molotov.TV a récemment
supprimé les fonctionnalités de son service pour les utilisateurs gratuits [EN] . (Note: je remercie sincèrement les journalistes du site français
NextINpact pour la très bonne couverture de ce sujet).
Payer ne suffit pas: la loi oblige des entités comme Molotov.TV
à signer des accords [FR] avec des sociétés protégées par des droits d'auteur sur la fonctionnalité de leur service. Essayez de parvenir à un accord avec les sociétés de radio si vous commencez à couper leurs publicités.
Option 3. Le serveur envoie uniquement des métadonnées
Une autre option est que l'utilisateur et le serveur écoutent la même radio Internet en même temps. Dans ce cas, le serveur analyse le son et envoie les métadonnées de classification de l'utilisateur (annonce / conversation / musique), mais pas le contenu audio. Depuis 2017,
adblockradio.com travaille sur cette architecture. Il s'appuie sur CDN, il n'entraîne donc aucun coût lié à la diffusion audio.
Cette architecture supprime le problème de la violation du droit d'auteur (avertissement: je ne suis pas avocat). Cependant, il peut encore y avoir une certaine incertitude concernant les lois sur les marques. Récemment (octobre 2018), les
propriétaires de radio
Skyrock ont demandé que le contenu soit supprimé sur cette base.
Romance du département juridique de SkyrockEn plus des considérations juridiques, il existe un problème technique avec une bonne synchronisation entre l'audio et les métadonnées. Dans la plupart des cas, tout fonctionne correctement avec un intervalle de synchronisation de moins de deux secondes. Mais certaines stations de radio ont des CDN étranges / malveillants ou injectent dynamiquement des publicités dans le flux. Cela signifie que les flux entre le serveur et différents clients peuvent varier considérablement. Par exemple, sur
Radio FG , des retards ont été observés jusqu'à 20 secondes, et sur
Jazz Radio - jusqu'à 45 secondes. Cela déçoit les auditeurs.
La synchronisation peut être étroitement implémentée en comparant les blocs de données entre le serveur et l'utilisateur. Malheureusement, cela ne fonctionne pas dans les navigateurs Web, car la plupart des CDN des stations de radio Internet n'utilisent pas d'en-
têtes CORS . Par conséquent, JavaScript dans le navigateur ne pourra pas lire le contenu audio à des fins de comparaison. Pour le travail, vous aurez besoin de modules autonomes distincts (par exemple,
Electron ), de modules Flash (ouais) ou d'extensions Web, ce qui semble un peu redondant.
Vous pouvez intégrer Adblock Radio dans votre lecteur
Ce projet n'est pas destiné aux utilisateurs finaux, mais aux entreprises qui lancent un produit de masse. Tu peux faire ça!
Les développeurs ont deux options pour intégrer Adblock Radio. Tout d'abord, le
SDK prend simplement les métadonnées du serveur adblockradio.com. Ce n'est pas une solution idéale pour les raisons décrites ci-dessus (problèmes juridiques et de synchronisation). Il est préférable d'exécuter un
algorithme d'analyse complet.
Logiciels
- Applications mobiles pour la radio Internet et les podcasts. Les modèles Keras doivent être convertis en Tensorflow natif et la bibliothèque Keras + Tensorflow peut être remplacée par Tensorflow Lite pour Android et iOS . Les routines Node.JS sont implémentées à l' aide du plugin React Native ou, dans les cas extrêmes, avec Termux .
- les extensions de navigateur fonctionnent avec Tensorflow JS et SQL.js. L'extension peut contrôler le curseur de volume dans les répertoires de radio Internet populaires, tels que TuneIn ou Radio.de . J'ai déjà travaillé sur une telle extension. C'était amusant de fouiller dans les joueurs JavaScript pour obtenir ce contrôle. Selon l'implémentation, gardez à l'esprit les problèmes de synchronisation dont nous avons discuté ci-dessus.
Matériel informatique
- alarmes numériques et projets amateurs, sous réserve de la disponibilité d'une puissance de calcul suffisante et d'un accès au réseau. Des plates-formes comme Raspberry Pi Zero / A / B devraient être suffisantes pour analyser un seul flux, bien que RPi 3B / 3B + soit recommandé pour le contrôle parallèle de plusieurs flux. Tensorflow est sur Raspbian .
- haut-parleurs connectés tels que Sonos . L'algorithme lui-même ne fonctionnera pas sur un tel équipement, vous devez donc traiter les données dans le cloud ou sur un appareil séparé dans le même réseau local (par exemple, sur Raspberry). Excellente idée pour une campagne de financement participatif.
Radio Adblock dans la voiture
La voiture est l'un des endroits les plus populaires pour écouter la radio. Là, les gens ont vraiment besoin d'un bloqueur de publicités. Mais c'est aussi le contexte où la mise en œuvre d'Adblock Radio n'est pas facile. Après tout, le système doit recevoir des commentaires afin de filtrer efficacement les nouvelles annonces, le programme a donc besoin d'une connexion réseau. Je vois trois concepts possibles pour les produits automobiles avec Adblock Radio.
- Une application compatible avec les systèmes d'infodivertissement des voitures modernes . La façon la plus simple de transmettre des données est probablement via le smartphone de l'utilisateur. Le smartphone peut également être utilisé séparément - avec une application mobile, une radio Internet en streaming, via une sortie audio, une connexion aux AUX ou Bluetooth de la voiture. Il peut également être intégré au système d'infodivertissement de la voiture, dans l'esprit d' Apple Car Play , d' Android Auto et de MirrorLink . Ce serait fantastique d'écouter la radio terrestre (FM, DAB). Mais un travail est nécessaire pour déterminer dans quelles configurations particulières Adblock Radio peut accéder à la sortie audio du tuner radio et, en même temps, le contrôler (volume, canal).
- Adaptateur matériel universel, interface utilisateur dédiée . Il est également possible de développer des équipements personnalisés similaires aux adaptateurs DAB existants pour les automobiles . Ces appareils syntonisent les stations de radio et transmettent des données audio au système de la voiture via la prise AUX ou via un canal FM inutilisé, comme les anciens adaptateurs iPod FM . L'accès au réseau peut passer par un smartphone via Bluetooth. Des solutions alternatives, telles que Sigfox et LoRa , pourraient être envisagées si le débit binaire et le prix sont appropriés. Une interface utilisateur spéciale doit être développée, distincte de l'appareil principal de la voiture. Au final, cela peut s'avérer trop cher.
- Un appareil minimaliste qui s'introduit dans le récepteur FM . Un si petit appareil peut contrôler le tuner si nécessaire. Besoin d'une interface standard, mais facile à connecter. Les commutateurs au volant sont un bon candidat, mais les utilisateurs finaux ne peuvent pas facilement les modifier à cet effet. Vous devez donc pirater le système.
Cet appareil sans tête aura un tuner FM et un microphone pour analyser la station que l'utilisateur écoute (corrélation croisée). Lorsqu'une annonce est détectée, l'appareil émet de fausses données RDS (telles que des annonces de trafic ) pour tromper l'autoradio et changer de station pendant la durée de l'annonce.Il peut également diffuser du silence sur la fréquence FM actuelle.
L'interface d'un tel appareil est très simple, avec seulement quelques boutons. Si moins cher qu'un adaptateur de voiture complet. Cependant, on ne sait pas si cela fonctionnera de manière fiable, car sans licence, l' utilisation d'émetteurs radio est strictement limitée par la loi . Enfin, on ne sait pas si une telle stratégie peut être adaptée pour fonctionner avec des flux numériques DAB.
S'il est possible de développer un appareil bon marché, alors un tel produit doit avoir un succès commercial. Il convient également au financement participatif.Le projet a besoin de signaux sur les réponses incorrectes et d'une assistance dans leur traitement.
Lors de l'intégration d'Adblock Radio dans le produit, veuillez laisser la possibilité de commentaires. Les dysfonctionnements doivent être signalés immédiatement pour que je puisse mettre à jour les modèles d'apprentissage automatique et la base de listes de véhicules recherchés.Les rapports sont affichés manuellement: spécifiez simplement le nom de la ou des stations de radio et l'heure à laquelle le problème est survenu. La bibliothèque fondée mécanisme de rapport pour l' envoi.Le traitement des rapports prend du temps. Outre les coûts de serveur, c'est une autre raison pour laquelle je n'ai pas ajouté plus de stations de radio à adblockradio.com. Besoin d'aide pour écouter les pistes audio et classer le contenu dans l'interface Web d'administration. Grâce à cela, nous pouvons augmenter le nombre de stations de radio et fournir un support pour les podcasts. Si vous êtes prêt à aider, veuillezInscrivez-vous ici et suivez le référentiel où aura lieu la discussion des threads pris en charge.Comment remplacer les publicités: question UX
Ignorer les publicités dans un podcast est trivial: du point de vue de l'auditeur, c'est comme sauter des parties d'une chanson. Malheureusement, cela ne fonctionne pas pour la radio. Nous ne pouvons pas avancer rapidement en direct!Adblockradio.com propose désormais trois options de filtrage:- baisse du volume
- passer à une autre station et revenir à la fin de la publicité. Cela est vrai si l'utilisateur écoute une conversation. Pendant la publicité, il passe temporairement à une station de musique.
- commutation permanente vers une autre station. Utile lors de l'écoute de stations de musique.
J'ai fait de mon mieux pour le rendre aussi pratique que possible, mais le système est toujours compliqué. Pas aussi simple qu'une radio ordinaire ou un bloqueur de publicités sur un ordinateur que vous pouvez installer et oublier . Je compte vraiment sur l'aide de l'esprit collectif. Interface Web
actuelle d' Adblock Radio Un
vieux prototype qui n'est jamais sorti. Ici, l'utilisateur a une totale liberté de paramétrage. Seules les émissions conversationnelles d'une station, uniquement la musique d'une autre station, etc. Mais les testeurs sont tellement confus! Avec le recul, même pour moi, cette interface est difficile à comprendre,elle me semble intéressante pour écouter le contenu. Je n'ai pas pu le vendre sur adblockradio.com pour les raisons légales mentionnées ci-dessus. Au lieu de cela, j'ai créé un lecteur de bureau autonome (également disponible sur Github ), dans l'esprit des magnétoscopes numériques . Les utilisateurs commencent à écouter avec un décalage horaire d'environ 10 minutes (c'est-à-dire qu'à 7h30 du matin, ils commencent à écouter la diffusion audio à partir de 7h20). À chaque interruption commerciale, une avance rapide se produit - et vous pouvez profiter de votre programme sans interruption. Avec une quantité typique de publicité, un décalage de dix minutes vous permet d'écouter la radio sans interruption pendant une heure ou deux. Dans le cas d'une application mobile, cela suffirait pour se mettre au travail.Lorsque l'utilisateur allume l'appareil, il doit livrer la diffusion il y a dix minutes. Comment faire cela dans le contexte de la mobilité, avec des restrictions sur la quantité d'énergie et de données? Veuillez noter que la loi interdit aux tiers non autorisés (dans le cloud) de diffuser des enregistrements radio.
Un prototype fonctionnel d'un lecteur radio à décalage horaire. Les blocs audio sont classés par segment. La musique est bleue, les conversations sont vertes et la publicité est rouge. Lorsque le curseur rose atteint la zone rouge (annonces), il le sauteÀ long terme, le système peut recevoir le contenu diffusé de toutes les stations - et le personnaliser entièrement en fonction des goûts de chaque auditeur. Diffusez vos émissions préférées, de la musique à votre goût, insérez des podcasts, etc. À mon avis, du contenu en direct difficile à reporter et à télécharger plus tard: événements sportifs, actualités, prévisions météo, musique en direct et etc. Cela deviendra peut-être un modèle commercial alternatif pour la radio .Conclusion
La solution technique pour bloquer les publicités à la radio et dans les podcasts s'est avérée plus compliquée que nous le souhaiterions. Les modèles doivent être mis à jour périodiquement avec de nouvelles vidéos. Cela signifie que le système doit être utilisé dans les appareils connectés à Internet, tels que les smartphones et la radio WiFi. Le service n'est pas encore adapté aux radios autonomes conventionnelles (FM, DAB +). Heureusement, avec l'omniprésence des communications mobiles, les gens changent leurs habitudes, donc le blocage des publicités devrait être plus facile à l'avenir.Vous pouvez aider à développer Adblock Radio.- En tant qu'auditeur radio: allumez le lecteur , écoutez la radio et notez les erreurs de reconnaissance afin que l'algorithme puisse apprendre. Vous n'avez pas vos stations préférées? Pas de problème, allez ici et laissez une demande.
- En tant que développeur: accédez au référentiel , lancez la démo, vous pouvez rejoindre la discussion. Découvrez une autre démo du lecteur de bureau sur Electron.
- En tant que chef de produit: contactez-nous si vous souhaitez intégrer Adblock Radio dans votre produit. Je serai ravi de vous aider.
À l'avenir, la publicité audio ne restera que dans des souvenirs lointains! Merci d'avoir lu.