Desarrollo Adblock Radio



tl; dr: Adblock Radio reconoce anuncios de audio utilizando aprendizaje automático y técnicas similares a Shazam. El principal motor de código abierto : ¡utilízalo en tus productos! Puedes unir fuerzas para apoyar más estaciones de radio y podcasts.

A pocas personas les gusta escuchar anuncios de radio. Lancé el proyecto AdblockRadio.com para que los oyentes puedan omitir anuncios en su radio de Internet favorita. El algoritmo se publica de código abierto , y este artículo describe cómo funciona.

Adblock Radio ya ha probado datos reales de más de 60 estaciones de radio en siete países . ¡También es compatible con podcasts y funciona bastante bien!

En comparación con implementaciones anteriores, nuestro algoritmo ofrece un enfoque universal, procesando hilos de varias fuentes. De las implementaciones anteriores, una se basa en metadatos para la radio por Internet , pero solo una pequeña parte de la radio es compatible con este método. Otra implementación reconoce los jingles conocidos , pero en muchos casos el jingle no marca el comienzo y el final de los cortes comerciales.

Además de detectar comerciales, el algoritmo propuesto puede distinguir la conversación de la música. Por lo tanto, también le permite evitar charlas y escuchar solo música.

Este es un informe de mi trabajo personal durante casi tres años. Lancé Adblock Radio a finales de 2015, unos meses después de graduarme de la escuela de posgrado en física de plasma de fusión. Cuando Adblock Radio ganó fama en 2016, recibí amenazas de abogados de estaciones de radio francesas (más abajo). Tuve que cerrar parcialmente el sitio, cambiar la arquitectura del sistema, estudiar mejor las consecuencias legales, etc. Hoy creo que AdBlock Radio se desarrollará mucho mejor en el paradigma de la innovación abierta .

Este artículo tiene tres partes. Están diseñados para diferentes audiencias. Puede desplazarse hacia abajo o hacer clic en el nombre para ir directamente a la sección deseada.

  • Detección de anuncios: estrategias probadas . Para personas con conocimientos técnicos, científicos, especialistas en análisis de datos ... Aquí hay varios métodos técnicos que intenté detectar anuncios, incluyendo reconocimiento de voz, huellas dactilares de sonido y aprendizaje automático. Reflexiones sobre las opciones para seguir trabajando.
  • No se recomienda ejecutar Adblock Radio en la nube . Para desarrolladores de software y personas interesadas en derechos de autor. Analizaremos lo difícil que es encontrar un compromiso satisfactorio entre las limitaciones técnicas y legales al lanzar Adblock Radio en servicios en la nube. Por estas razones, es mejor ejecutar Adblock Radio solo en dispositivos de usuario final.
  • Puedes integrar Adblock Radio en tu reproductor . Para fabricantes, propietarios de productos, diseñadores de UX, técnicos ... Estoy considerando ideas para integrar un algoritmo de código abierto en productos finales, incluidos los jugadores de automóviles, y enfatizo la necesidad de comentarios de los usuarios sobre casos de mal funcionamiento. Esto es necesario para mantener el sistema. Finalmente, aquí hay consejos sobre cómo crear las interfaces de usuario adecuadas. Espero muchos comentarios sobre este tema.



Adblock Radio trae de vuelta el placer de escuchar la radio

Detección de anuncios: estrategias probadas


Para bloquear un anuncio, primero debe detectarlo. El objetivo es detectar anuncios en la transmisión de audio sin ninguna ayuda de la estación de radio. Esta no es una tarea fácil. Intenté varios enfoques antes de obtener un buen resultado.

1. Métodos simples (no funcionan)


Volumen


La primera idea es verificar el volumen del sonido, porque el anuncio es muy ruidoso. Para publicidad, a menudo se usa compresión acústica . Este es un criterio interesante, pero no es suficiente para distinguir la publicidad. Por ejemplo, esta estrategia funciona bastante bien para las estaciones de música clásica, donde los anuncios suelen ser más fuertes que la música. Pero el pop es tan ruidoso como la publicidad. Además, algunos anuncios se pueden silenciar deliberadamente para evitar ser detectados.

Bloqueo del reloj


Otra idea es que la publicidad se transmite en un horario a una hora específica. Hasta cierto punto, esto es cierto, pero no hay precisión. Por ejemplo, vi que el programa matutino en la estación francesa no comenzaba exactamente a la misma hora, con variaciones de hasta dos minutos. Las estaciones de radio pueden sortear fácilmente ese bloqueo cambiando aleatoriamente sus programas en varias decenas de segundos.

Metadatos


La solución obvia es confiar en los metadatos ICY / Shoutcast para que jugadores como VLC muestren información de la transmisión. Desafortunadamente, estos datos están rotos en la mayoría de los casos. Uno podría tomar información de la transmisión en vivo en los sitios web de las estaciones de radio (desarrollé una herramienta para esto ), pero la mayoría de las veces el anuncio no se identifica como está. Por lo general, durante la publicidad en el sitio muestra el nombre de la canción o programa anterior. Una excepción notable es Jazz Radio , que escribe "la musique revient vite ..." durante los comerciales (la música volverá pronto). En conclusión, debe tenerse en cuenta que esta es una estrategia poco confiable, ya que las estaciones de radio pueden cambiar fácilmente los metadatos.

Marcado manual


Después de todo, ¡la detección de anuncios es posible sin ningún algoritmo! Simplemente puede pedirles a algunos oyentes que presionen un botón cuando un anuncio comienza y termina. Otros oyentes se beneficiarán de esto. Esta es la estrategia del decodificador TiVo Bolt . Le permite eliminar anuncios en canales establecidos en un momento determinado. Esto proporciona excelentes resultados, pero no se adapta bien a miles de estaciones de radio.

La desventaja es que es difícil iniciar el sistema desde cero. Puede que no haya suficiente audiencia en la nueva estación para un funcionamiento adecuado. Los primeros oyentes se molestarán y se irán, por lo que la estación nunca reunirá una audiencia lo suficientemente grande.

Otra dificultad es que las estaciones de radio querrán enviar señales falsas para sabotear el sistema. Requiere un mecanismo de moderación, un sistema de consenso o un umbral para votar.

El crowdsourcing es una buena idea. Creo que se ve aún mejor si el algoritmo hace la mayor parte del trabajo, dejando un mínimo para las personas. Esto es lo que hice.

2. Reconocimiento de voz y análisis de campo léxico (falla)


La publicidad es siempre el mismo tema y campo léxico: comprar un automóvil, obtener cupones de supermercado, inscribirse en un seguro, etc. Si reconoce el discurso, puede utilizar herramientas estándar para combatir el correo no deseado . Este fue mi primer camino de investigación a finales de 2015, pero no pude implementar el reconocimiento de voz.

Como principiante en el procesamiento del habla, comencé leyendo Huang's Speech Processing , un excelente libro, aunque un poco anticuado. Puse mis manitas sucias en CMU Sphinx , el mejor motor de reconocimiento de voz libre en ese momento.

El primer intento dio resultados muy pobres y requirió cálculos intensivos en la CPU. Utilicé los parámetros predeterminados: diccionario de francés estándar (lista de palabras posibles y fonemas correspondientes), modelo de idioma (probabilidades de secuencias de palabras) y modelo acústico (conexión de fonemas con forma de ondas de sonido).

Los intentos de mejorar el sistema fueron inútiles: el reconocimiento aún funcionó mal. Configuré el modelo de vocabulario y lenguaje en un pequeño conjunto de datos, compartiendo el sonido con una herramienta de diarización . También adaptó el modelo acústico MLLR a la estación de radio Europa 1 (francesa), en la que entrenó al sistema.

En general, la idea del reconocimiento de voz tuvo que ser abandonada. Esto es probablemente para expertos. Sin embargo, en el futuro puedes volver a él. Desde 2015, se han logrado avances significativos en el reconocimiento de voz. Se han publicado nuevas herramientas de código abierto, como Mozilla Deep Speech .

3. Base de publicidad de crowdsourcing, detección por huellas dactilares de sonido (alentador)


La primera versión de Adblock Radio en 2016 funcionó con una base de datos de comerciales. El sistema escuchaba continuamente el flujo de sonido en busca de publicidad. Los resultados fueron realmente prometedores, pero fue difícil mantener una base actualizada.

La técnica de búsqueda de huellas digitales es similar a lo que hace Shazam en sus servidores para reconocer canciones. Este tipo de algoritmo se conoce comúnmente como hito . Lo adapté para trabajar en streaming y abrí el código fuente .

Las huellas digitales son adecuadas para detectar comerciales, ya que se transmiten repetidamente en la misma forma. Por la misma razón, reconoce la música. Pero esta técnica no funcionará en el habla, porque las personas nunca pronuncian palabras de la misma manera. Esto solo es posible con la retransmisión de los programas por la noche, lo que no nos interesa. Por lo tanto, la publicidad y la música (como "no publicidad") deben ingresarse en la base de datos de huellas digitales, pero no tiene sentido procesar el habla.

Esencialmente, las huellas digitales sonoras son la conversión de algunas características de sonido en una serie de números llamados huellas digitales. Si muchas impresiones en vivo coinciden con la base, podemos concluir que se está transmitiendo publicidad. Para una resolución óptima, tiempo y rango de frecuencia se necesita algún ajuste. Los diferentes patrones deberían variar bien. Sin embargo, el sistema debería funcionar incluso con un ligero cambio en los algoritmos de compresión de sonido o si la radio ha cambiado la configuración del ecualizador. Finalmente, debe limitar el número de impresiones para no cargar recursos informáticos.


Ejemplo de cálculo de impresiones sonoras. Fondo rojo - espectrograma. Refleja el cambio en la intensidad del sonido en frecuencia (bajas frecuencias a continuación). En este mapa, los picos espectrales se identifican (puntos azules) y se conectan (líneas grises). La posición, longitud y orientación de cada línea gris se convierte en un número único, una impresión

La clasificación binaria da el resultado: es la muestra un anuncio o no. Si analizamos casos de errores, entonces el sistema casi siempre produjo un resultado falso negativo, es decir, se perdió anuncios, y rara vez notó un buen contenido como publicidad. Los usuarios pueden informar anuncios no detectados con un solo clic, lo que proporciona una excelente interfaz de usuario. El sonido correspondiente se agrega automáticamente a la base de datos. Modere estas acciones a posteriori.

Era difícil mantener actualizada la base de datos, ya que los comerciales a menudo cambian y los anuncios se transmiten con poca variación. También se actualizan con frecuencia, en algunos casos cada pocos días. Algunas transmisiones con un número insuficiente de oyentes son muy poco reconocidas.

Exploré estrategias interesantes para automatizar parcialmente el trabajo de los oyentes. Los anuncios se transmiten de la misma manera muchas veces al día. Esto se puede usar para identificarlos. Los registros buscaron secuencias de repetición máxima (MRS). También se repite otro contenido, por ejemplo, canciones y jingles (protectores de pantalla). Ordene todas las secuencias por longitud y tomé muestras con una duración de aproximadamente 30 segundos, típico de los comerciales. Por lo tanto, muy a menudo logró atrapar un anuncio. Pero a veces aparecían coros de canciones o incluso pronósticos meteorológicos grabados.

Encontré una manera de filtrar la mayoría de las repeticiones musicales: analicé las listas de reproducción de la estación, descargué las canciones y las integré en la base de datos con la etiqueta "sin anuncios". Por lo tanto, cada vez más candidatos para MRS resultaron ser comerciales reales. Pero aún así, no todo, la asistencia al usuario seguía siendo necesaria.

Se requería menos trabajo manual, pero la carga del servidor ya era un problema. Mirando hacia atrás, la elección de SQLite para estas operaciones de base de datos intensivas en recursos y tiempo no fue la mejor.

Afortunadamente, el algoritmo tuvo unos segundos para determinar si el sonido es un anuncio o no. Esto se debe a que las radios de Internet usan un búfer de audio, generalmente de 4 a 30 segundos, que no se reproduce inmediatamente en el dispositivo del usuario final. Esto ayuda a evitar interrupciones de transmisión en caso de una pérdida temporal de la red.

Utilicé este retraso del búfer de posprocesamiento para hacer que las predicciones de algoritmos sean más estables y sensibles al contexto. Inmediatamente antes de reproducir el sonido en el dispositivo del usuario final, el algoritmo analiza los resultados de los pronósticos que aún se encuentran en el búfer, así como los anteriores que ya se han reproducido. Corta puntos de datos cuestionables con múltiples coincidencias de huellas digitales, mostrando histéresis . También tiene en cuenta el tiempo promedio ponderado para suavizar posibles fallas.


Adblock Radio en algún momento de 2016. ¡El resaltado rojo de las estaciones de radio donde se reproduce el anuncio se veía realmente genial! Los usuarios pueden marcar los anuncios omitidos con un botón azul. El botón de música en una nube en la parte superior le permite exportar una transmisión de MP3 personalizada con la publicidad eliminada y, si esta función está configurada, transiciones suaves entre estaciones de radio. A continuación se encuentran los botones y funciones adicionales.

4. Clasificación de publicidad, conversación y música en aprendizaje automático (¡casi listo!)


La próxima versión del algoritmo analiza la acústica: de sonidos bajos a altos y su cambio en el tiempo. Se detectan nuevos comerciales desconocidos casi tan bien como los antiguos en los que se realizó la capacitación, solo por signos de ruido e impunidad. Este es un método más complejo para analizar el volumen del sonido (ver discusión anterior).

Para esto, utilicé herramientas de aprendizaje automático, a saber, la biblioteca Keras , conectada a Tensorflow . Esto dio muy buenos resultados con poco uso de CPU. Esta versión funcionó en producción durante más de un año, desde principios de 2017 hasta mediados de 2018. Ahora es posible distinguir conversaciones y música, por lo tanto, la clasificación se ha vuelto más precisa: en lugar de "publicidad / no publicidad" - "publicidad / conversación / música".

Estudiaremos los detalles. El sonido se convierte en un mapa 2D, donde la intensidad del sonido se presenta en función de la frecuencia y el tiempo (en una escala de aproximadamente cuatro segundos). Esta tarjeta es conceptualmente similar a la tarjeta roja en el capítulo de huellas digitales. La principal diferencia es que, en lugar del espectro clásico de Fourier, utilicé coeficientes Mel-cepstrales que son relevantes en el contexto del reconocimiento de voz.

Las tarjetas secuenciales con diferentes marcas de tiempo se analizaron luego como imágenes en una red neuronal recurrente , como LSTM (memoria a largo plazo). Cada tarjeta se analizó independientemente de la otra (RNN sin preservación del estado ), pero las tarjetas se superpusieron entre sí. Las cartas duraban 4 segundos, y cada segundo aparecía una nueva. El resultado final para cada tarjeta fue el vector softmax , por ejemplo, ad: 72%, talk: 11%, music 17% . Estos pronósticos se procesaron utilizando el mismo método que se describe en la sección de huellas digitales.


Obtenga una vista previa de los resultados típicos de aprendizaje automático para dos estaciones de radio. El eje horizontal representa aproximadamente 17 minutos de tiempo. La línea verde se mueve entre tres posiciones: publicidad en la parte superior, conversación en el medio y música en la parte inferior (más cercana a un fondo gris uniforme). Áreas rojas: intervalos de escucha del usuario. Si el algoritmo da una predicción incorrecta, el usuario puede corregirla

Inicialmente, entrené una red neuronal en un conjunto de datos muy pequeño. Desarrollé la interfaz de usuario (vea la imagen de arriba) para visualizar pronósticos y podría agregar más datos para entrenar modelos con mejor rendimiento. Al momento de escribir esto, el conjunto de datos de capacitación contiene aproximadamente diez días de audio: 66 horas de publicidad, 96 horas de conversación y 73 horas de música.

A pesar del buen trabajo, la precisión de la clasificación todavía resultó ser ligeramente inferior a las expectativas de los usuarios (consulte la sección sobre mejoras futuras a continuación). En el entrenamiento, la precisión del pronóstico de la categoría fue del 95%, pero las clasificaciones incorrectas restantes dejaron a los usuarios descontentos.

Nota para especialistas en procesamiento de datos: es costumbre dar resultados formales, dividiendo el conjunto de datos en subconjuntos de capacitación y pruebas. Creo que esto no tiene sentido aquí, porque el conjunto de datos se está construyendo gradualmente sobre datos donde los modelos anteriores se equivocaron. Esto significa que el conjunto de datos contiene más patologías que la transmisión promedio, y se subestimará la precisión. Se requerirá trabajo separado para medir indicadores reales. El operador puede marcar segmentos continuos de grabaciones de audio convencionales como datos de prueba, luego calcular la precisión y recuperarlos. Tal verificación regular le permitirá monitorear el rendimiento de los filtros.

La categorización de publicidad / conversaciones / música agregó conveniencia a los oyentes. Sin embargo, esta clasificación complicó la interfaz de usuario y se volvió más difícil trabajar con informes de usuarios. Si la bandera indica que algún contenido no es música, ¿es publicidad o conversación? Aquí necesitas moderación inmediata, no post factum.

Para mejorar aún más la calidad, desarrollé la última versión de Adblock Radio, que mejora ligeramente esta estrategia.

5. La combinación de clasificación de sonido y coincidencia de huellas digitales (¡éxito!)


Mi mejor algoritmo está publicado en Github . Para aumentar la confiabilidad, combina conceptos de dos intentos anteriores: clasificación acústica y base de datos de huellas digitales.

Un predictor de aprendizaje automático debidamente capacitado proporciona la clasificación correcta de la mayoría de los materiales de origen, pero no funciona en algunas situaciones (consulte la sección sobre mejoras futuras a continuación). La función del módulo de coincidencia de huellas digitales es reducir los errores del módulo de aprendizaje automático.

No todos los datos de entrenamiento conocidos se ingresan en la base de datos de huellas digitales, pero solo un pequeño subconjunto donde el aprendizaje automático muestra errores. Lo llamo la "base de datos de la lista caliente". El tamaño pequeño ayuda a reducir la tasa de error general mientras mantiene baja la carga de la CPU.

En una computadora portátil normal, el algoritmo consume solo 5-10% de la CPU en los archivos y 10-20% en el aire.

Mejoras futuras


Algunos tipos de contenido siguen siendo problemáticos.


El detector funciona imperfectamente en algunos tipos específicos de contenido de audio:

  • La música hip-hop a menudo se reconoce como publicidad. Puede solucionar el problema agregando pistas a la lista de favoritos, pero esto es demasiada música. Se podría desarrollar una red neuronal más general, posiblemente a expensas del rendimiento.
  • Los anuncios de álbumes de música a menudo se reconocen como música. Pero el bloqueo a través de huellas digitales conducirá a falsos positivos cuando se transmita una canción real. El problema puede resolverse mediante un análisis más profundo del contexto, pero es difícil en el aire, donde el contexto se conoce solo unos segundos más adelante.
  • Los anuncios de programas de entrevistas a menudo se reconocen como conversación. Hay límites borrosos, porque es tanto una conversación como un anuncio. Vemos el límite de posibilidades del clasificador publicitario / conversación / música. Para la clasificación por huellas digitales, utilicé la clase ad_self durante algún tiempo, que contiene anuncios de programas de entrevistas en estaciones específicas, pero con la introducción del algoritmo de aprendizaje automático, dejé de hacer esto. Puede ser sabio recrear esta clase. Otra opción es un mejor análisis del contexto.
  • publicidad nativa, donde el anfitrión lee el texto de patrocinio. En la radio, esto es raro, y más a menudo en podcasts. El siguiente paso lógico para bloquear dicha publicidad es la introducción del software de reconocimiento de voz.

Cadenas de Markov para un procesamiento posterior más estable


La estabilidad posterior al procesamiento se puede mejorar. Actualmente, solo se utilizan umbrales de confianza. Cuando se alcanza el valor umbral, se toma el último pronóstico confiable. Por lo tanto, el sistema a veces guarda un error.

Los ciclos de publicidad, conversaciones y música son bastante cíclicos en cada transmisión. Por ejemplo, la publicidad suele durar unos minutos. Para cada período de tiempo en un corte comercial, puede calcular la probabilidad de una transición a otro estado (conversación o música). Esta probabilidad ayudará a interpretar mejor las predicciones ruidosas del algoritmo: ¿es solo un segmento corto de música en el anuncio o se completa el corte publicitario? Aquí, los modelos ocultos de Markov serán una buena área de investigación.

Radio analógica no admitida todavía


Las señales analógicas (FM) no se han probado y actualmente no son compatibles. El ruido analógico anula los métodos utilizados aquí. Se pueden requerir filtros y / o algoritmos de reconocimiento de huellas digitales resistentes al ruido. Si esto sucede, el programa puede encontrar una aplicación más amplia entre los usuarios. Sin embargo, la radio está cambiando cada vez más hacia tecnologías digitales libres de ruido, como DAB y radio por Internet.

No se recomienda ejecutar Adblock Radio en la nube


Idealmente, Adblock Radio solo debe ejecutarse en dispositivos terminales. Pero ahora los servicios en la nube están de moda. Además, ¡esta es una gran idea de negocio! Adblock Radio probó dos opciones de arquitectura con tal paradigma. Sin embargo, la experiencia muestra que esta no es la mejor opción por razones técnicas y legales.

Opción 1. Retransmisión desde el servidor


El servidor puede transmitir contenido de audio con etiquetas de anuncios / conversación / música a los oyentes. Lo probamos en 2016. Aquí surgen problemas legales, ya que retransmitir la transmisión puede considerarse una falsificación y / o violación de los derechos de autor (aunque no soy un abogado). Tampoco escala bien porque ahora es un CDN y debe asumir los costos.

En aras de la broma, el domingo, cuando estaba fuera por razones familiares, Adblock Radio recibió una gran popularidad, de la que cayó . Dato curioso: unos días después, France Inter , una importante estación de radio pública francesa, anunció Adblock Radio en horario estelar (pero sin nombrarlo). Esta es una decisión editorial inesperada en el contexto del hecho de que los reguladores decidieron en 2016 relajar las restricciones a la publicidad en las estaciones de radio estatales , lo que exacerbó la disputa entre los empleados y la gerencia de Radio France .

Unas semanas después, recibí amenazas del abogado de la red de radio privada francesa Les Indés Radio , supuestamente por infracción de derechos de autor y marca registrada. Al no tener recursos financieros para una protección seria, tuve que eliminar algunos flujos del sitio, cerrar parcialmente el sitio y cambiar la arquitectura del sistema. Al mismo tiempo, esta red de radio se negó a cooperar en busca de un compromiso. Como veo en los registros que continuaron monitoreando mi sitio (a veces con cuentas seudónimas), también consultaron con sus abogados . ¡Qué honor para mí! Mirando hacia atrás, ganaron con éxito el tiempo, pero nada más. Hola chicos de Indés! ¡Espero que disfrutes leyendo esto! xoxoxo .


Declaración de amor de Les Indés, una red de 131 estaciones de radio francesas.

Opción 2. El servidor transmite el sonido, pero de forma privada.


Esto supone un análisis en el servidor y la transmisión del sonido borrado para un usuario específico. Tal sistema puede estar exento de la ley de derechos de autor como su propia copia privada de los medios. Si el servidor es administrado por el usuario final y la fuente original es legal y está disponible oficialmente en su región, probablemente todo esté legalmente limpio. Consulte la discusión sobre Station Ripper [FR] y VCast [FR] para obtener más información. Pero los usuarios rara vez son expertos en tecnología para alquilar e instalar un servidor por su cuenta.

Es muy tentador poner el servidor bajo el control de un tercero, pero esto genera problemas legales, porque el operador que realiza la copia y el usuario final no son la misma persona. En este caso, se imponen restricciones legales, al menos en Francia. El servicio de Internet francés Wizzgo [FR] encontró esta regla en 2008. Más recientemente, en los EE. UU., El servicio de televisión Aereo se cerró, aunque tomó precauciones al distribuir un sintonizador separado (!) A cada cliente .

Por el momento, el servicio Molotov.TV [FR] está luchando contra los titulares de derechos de autor que desean limitar sus funciones [FR] , a pesar de la influencia significativa de sus cofundadores. El impuesto de copia privada [FR] debe pagarse a la organización oficial . La cantidad se determina mediante cálculos bastante opacos [FR] y aumenta [FR] cada año, alcanzando varias decenas de céntimos de euro por usuario por mes. Esta placa se ha vuelto tan alta que Molotov.TV recientemente eliminó las características de su servicio para usuarios gratuitos [FR] . (Nota: Agradezco sinceramente a los periodistas del sitio francés NextINpact por su muy buena cobertura de este tema).

Pagar no es suficiente: la ley exige que entidades como Molotov.TV firmen acuerdos [FR] con empresas con derechos de autor sobre la funcionalidad de su servicio. Intente llegar a un acuerdo con las compañías de radio si comienza a cortar sus anuncios.

Opción 3. El servidor solo envía metadatos


Otra opción es que tanto el usuario como el servidor escuchen la misma radio de Internet al mismo tiempo. En este caso, el servidor analiza el sonido y envía los metadatos de clasificación del usuario (anuncio / conversación / música), pero no el contenido de audio. Desde 2017, adblockradio.com ha estado trabajando en esta arquitectura. Se basa en CDN, por lo que no incurre en ningún costo en relación con la transmisión de audio.

Esta arquitectura elimina el problema de la infracción de derechos de autor (descargo de responsabilidad: no soy un abogado). Sin embargo, aún puede existir cierta incertidumbre con respecto a las leyes de marcas registradas. Recientemente (octubre de 2018), los propietarios de radio Skyrock exigieron que el contenido se elimine sobre esta base.


Romance del Departamento Legal de Skyrock

Además de las consideraciones legales, existe un problema técnico con la sincronización adecuada entre audio y metadatos. En la mayoría de los casos, todo funciona bien con un intervalo de sincronización de menos de dos segundos. Pero algunas estaciones de radio tienen CDN extrañas / maliciosas o inyectan anuncios dinámicamente en la transmisión. Esto significa que los flujos entre el servidor y los diferentes clientes pueden variar significativamente. Por ejemplo, en Radio FG , se observaron retrasos de hasta 20 segundos, y en Radio de Jazz , hasta 45 segundos. Esto decepciona a los oyentes.

La sincronización puede implementarse estrictamente comparando bloques de datos entre el servidor y el usuario. Desafortunadamente, esto no funciona en los navegadores web, porque la mayoría de las CDN en las estaciones de radio de Internet no usan encabezados CORS . Por lo tanto, JavaScript en el navegador no podrá leer contenido de audio para comparar. Para el trabajo, necesitará módulos independientes (por ejemplo, Electron ), módulos Flash (sí) o extensiones web, lo que parece un poco redundante.

Puedes integrar Adblock Radio en tu reproductor


Este proyecto no es para usuarios finales, sino para empresas que lanzan un producto en masa. ¡Puedes hacer eso!

Los desarrolladores tienen dos opciones para integrar Adblock Radio. Primero, el SDK simplemente toma metadatos del servidor adblockradio.com. Esta no es una solución ideal por los motivos descritos anteriormente (problemas legales y de sincronización). Es mejor ejecutar un algoritmo de análisis completo.

Software


  • Aplicaciones móviles para radio por Internet y podcasts. Los modelos Keras deben convertirse a Tensorflow nativo, y la biblioteca Keras + Tensorflow se puede reemplazar con Tensorflow Lite para Android e iOS . Las rutinas Node.JS se implementan utilizando el complemento React Native o, en casos extremos, con Termux .
  • Las extensiones del navegador funcionan con Tensorflow JS y SQL.js. La extensión puede controlar el control deslizante de volumen en los directorios de radio de Internet populares, como TuneIn o Radio.de . Ya he trabajado en tal extensión. Fue divertido hurgar en los jugadores de JavaScript para obtener este control. Dependiendo de la implementación, tenga en cuenta los problemas de sincronización que discutimos anteriormente.

Hardware


  • alarmas digitales y proyectos de aficionados, sujetos a la disponibilidad de suficiente potencia informática y acceso a la red. Las plataformas como Raspberry Pi Zero / A / B deberían ser suficientes para analizar un solo flujo, aunque se recomienda RPi 3B / 3B + para el control paralelo de múltiples flujos. Tensorflow está en Raspbian .
  • altavoces conectados como Sonos . El algoritmo en sí no funcionará en dicho equipo, por lo que debe procesar los datos en la nube o en un dispositivo separado en la misma red local (por ejemplo, en Raspberry). Gran idea para una campaña de crowdfunding.

Adblock Radio en el auto


El automóvil es uno de los lugares más populares para escuchar la radio. Allí, la gente realmente necesita un bloqueador de anuncios. Pero este es también el contexto donde implementar Adblock Radio no es fácil. Después de todo, el sistema debe recibir comentarios para filtrar efectivamente los nuevos anuncios, por lo que el programa necesita una conexión de red. Veo tres posibles conceptos para productos automotrices con Adblock Radio.

  • Una aplicación compatible con los sistemas de infoentretenimiento de automóviles modernos . Probablemente la forma más fácil de transmitir datos es a través del teléfono inteligente del usuario. El teléfono inteligente también se puede usar por separado: con una aplicación móvil, transmisión de radio por Internet, a través de la salida de audio, conectándose al AUX o Bluetooth del automóvil. También se puede integrar con el sistema de información y entretenimiento del automóvil, en el espíritu de Apple Car Play , Android Auto y MirrorLink . Sería fantástico escuchar la radio terrestre (FM, DAB). Pero se necesita trabajo para determinar en qué configuraciones particulares Adblock Radio puede acceder a la salida de audio del sintonizador de radio y, al mismo tiempo, controlarlo (volumen, canal).
  • Adaptador de hardware universal, interfaz de usuario dedicada . También es posible desarrollar equipos personalizados similares a los adaptadores DAB existentes para automóviles . Estos dispositivos sintonizan estaciones de radio y transmiten datos de audio al sistema del automóvil a través de la toma AUX oa través de un canal FM no utilizado, como los viejos adaptadores FM para iPod . El acceso a la red puede pasar a través de un teléfono inteligente a través de Bluetooth. Se podrían considerar soluciones alternativas, como Sigfox y LoRa , si la tasa de bits y el precio son apropiados. Se debe desarrollar una interfaz de usuario especial, separada del dispositivo principal del automóvil. Al final, esto puede resultar demasiado costoso.
  • Un dispositivo minimalista que irrumpe en el receptor FM . Un dispositivo tan pequeño puede controlar el sintonizador si es necesario. Necesita una interfaz estándar, pero fácil de conectar. Los interruptores del volante son un buen candidato, pero los usuarios finales no pueden modificarlos fácilmente para este propósito. Entonces necesitas hackear el sistema.

    Este dispositivo sin cabeza tendrá un sintonizador de FM y un micrófono para analizar qué estación está escuchando el usuario (correlación cruzada). Cuando se detecta un anuncio, el dispositivo emite datos RDS falsos (como anuncios de tráfico ) para engañar al sintonizador del automóvil y cambiar la estación durante la duración del anuncio.También puede emitir silencio en la frecuencia FM actual.

    La interfaz de dicho dispositivo es muy simple, con solo unos pocos botones. Tan más barato que un adaptador de coche con todas las funciones. Sin embargo, no está claro si esto funcionará de manera confiable, ya que sin una licencia el uso de transmisores de radio está estrictamente limitado por la ley . Finalmente, no se sabe si dicha estrategia puede adaptarse para trabajar con transmisiones digitales DAB.

Si es posible desarrollar un dispositivo barato, dicho producto debe tener éxito comercial. También es adecuado para crowdfunding.

El proyecto necesita señales sobre respuestas incorrectas y asistencia en su procesamiento.


Al integrar Adblock Radio en el producto, deje la oportunidad de recibir comentarios. Las fallas deben ser informadas de inmediato para que pueda actualizar los modelos de aprendizaje automático y la base de la lista de favoritos.

Los informes se ven manualmente: solo especifique el nombre de la (s) estación (es) de radio y la hora en que surgió el problema. La biblioteca fundada mecanismo de información para el envío.

El procesamiento de informes lleva tiempo. Además de los costos del servidor, esta es otra razón por la cual no he agregado más estaciones de radio a adblockradio.com. Necesita ayuda para escuchar pistas de audio y clasificar contenido en la interfaz web de administración. Gracias a esto, podemos aumentar la cantidad de estaciones de radio y brindar soporte para podcasts. Si está dispuesto a ayudar, por favorRegístrese aquí y siga el repositorio donde tendrá lugar la discusión de los hilos compatibles.

Cómo reemplazar los anuncios: pregunta UX


Omitir anuncios en un podcast es trivial: desde el punto de vista del oyente, es como omitir partes de una canción. Desafortunadamente, esto no funciona para la radio. ¡No podemos avanzar rápido en vivo!

Adblockradio.com ahora ofrece tres opciones de filtrado:

  • bajar volumen
  • cambiar a otra estación y regresar al final de la publicidad. Esto es cierto si el usuario está escuchando una conversación. Durante la publicidad, cambia temporalmente a una estación de música.
  • cambio permanente a otra estación. Útil al escuchar estaciones de música.

Hice todo lo posible para que fuera lo más conveniente posible, pero el sistema sigue siendo complicado. No es tan simple como una radio normal o un bloqueador de anuncios en una computadora que puede instalar y olvidar . Realmente cuento con la ayuda de la mente colectiva. Interfaz web


actual de Adblock Radio Un


viejo prototipo que nunca salió. Aquí el usuario tiene una libertad de configuración absolutamente completa. Solo transmisiones conversacionales desde una estación, solo música desde otra estación, etc. ¡Pero los evaluadores están tan confundidos! Mirando hacia atrás, incluso para mí esta interfaz es difícil de entender,

me parece interesante otra forma de escuchar el contenido. No pude venderlo en adblockradio.com por las razones legales mencionadas anteriormente. En cambio, hice un reproductor de escritorio independiente (también disponible en Github ), en el espíritu de las grabadoras de video digital . Los usuarios comienzan a escuchar con un cambio de tiempo de aproximadamente 10 minutos (es decir, a las 7.30 de la mañana, comienzan a escuchar la transmisión de audio desde las 7.20). En cada corte comercial, se produce un avance rápido, y puede disfrutar de su programa sin interrupciones. Con una cantidad típica de publicidad, un turno de diez minutos le permite escuchar la radio sin interrupción durante una o dos horas. En el caso de una aplicación móvil, esto sería suficiente para ponerse a trabajar.

Cuando el usuario enciende el dispositivo, necesita entregar la transmisión hace diez minutos. ¿Cómo hacer esto en el contexto de la movilidad, con restricciones en la cantidad de energía y datos? Tenga en cuenta que la ley prohíbe que terceros sin licencia (en la nube) transmitan grabaciones de radio.


Un prototipo funcional de un reproductor de radio con cambio de hora. Los bloques de audio se clasifican por segmento. La música es azul, las conversaciones son verdes y el anuncio es rojo. Cuando el cursor rosa llega a la zona roja (anuncios), lo omite

A la larga, el sistema puede recibir contenido de transmisión de todas las estaciones y personalizarlo completamente de acuerdo con los gustos de cada oyente. Transmita sus programas favoritos, música a su gusto, inserte podcasts, etc. En mi opinión, contenido en vivo que es difícil de posponer y subir más tarde: eventos deportivos, noticias, pronósticos del tiempo, música en vivo y etc. Quizás esto se convierta en un modelo comercial alternativo para la radio .

Conclusión


La solución técnica para bloquear anuncios en la radio y en podcasts resultó ser más complicada de lo que nos gustaría. Los modelos deben actualizarse periódicamente con nuevos videos. Esto significa que el sistema debe usarse en dispositivos conectados a Internet, como teléfonos inteligentes y radio WiFi. El servicio aún no es adecuado para radios independientes convencionales (FM, DAB +). Afortunadamente, con la ubicuidad de las comunicaciones móviles, las personas están cambiando sus hábitos, por lo que bloquear anuncios debería ser más fácil en el futuro.

Puedes ayudar a desarrollar Adblock Radio.

  • Como oyente de radio: encienda el reproductor , escuche la radio y observe los errores de reconocimiento para que el algoritmo pueda aprender. ¿No tienes tus estaciones favoritas? No hay problema, ve aquí y deja una solicitud.
  • Como desarrollador: vaya al repositorio , ejecute la demostración, puede unirse a la discusión. Echa un vistazo a otra demostración del reproductor de escritorio en Electron.
  • Como gerente de producto: contáctenos si desea integrar Adblock Radio en su producto. Estaré encantado de ayudar.

¡En el futuro, la publicidad de audio permanecerá solo en recuerdos lejanos! Gracias por leer

Source: https://habr.com/ru/post/es435720/


All Articles