
Esta es una continuación de un artículo anterior sobre radio inteligente que no muere cuando se pierde Internet. Parece que el primer panqueque fue bastante irregular: a la mayoría de los usuarios no les gustó la aplicación. La crítica básicamente se divide en dos frentes:
- Las mismas pistas se repiten muy a menudo, y las nuevas aparecen muy raramente.
- No hay forma de elegir sus géneros favoritos, o menos pistas inadecuadas, para no tener que omitirlas dolorosamente.
El segundo problema se vio gravemente agravado por el primero, ya que las omisiones a menudo conducían a repeticiones de todas las mismas pistas, aunque en una secuencia diferente.
Me complace informarle que logré resolver el primer problema (la actualización ya está en Play Store). Debajo del corte habrá una descripción del algoritmo seleccionado para seleccionar y rotar pistas, así como la esencia de la corrección, que, como espero, debería mejorar dramáticamente la experiencia del usuario.
La idea básica de seleccionar pistas apareció casi de inmediato: la probabilidad de elegir una canción para reproducir es proporcional a su "puntaje de preferencia". Este último se calcula como la relación entre el tiempo de escucha promedio de una pista y su duración. Este método de selección conduce a la reproducción frecuente de aquellas composiciones que son más preferibles para el oyente. Desafortunadamente, esta evaluación no siempre corresponderá a la preferencia real, pero debería correlacionarse bien con ella.
Según la idea inicial, la rotación de las pistas debería ocurrir en el momento en que todas las pistas se escucharon al menos dos veces (una vez que parecía insuficiente para una estimación confiable de la pista). En el momento de la rotación, se eliminaron las pistas cuya puntuación de preferencia estaba por debajo de cierto nivel, y se cargó una nueva porción de pistas.
Este algoritmo en la práctica condujo a una rotación muy rara. De hecho, las pistas que se omitieron rápidamente perdieron la capacidad de ser escuchadas nuevamente durante mucho tiempo. Por lo tanto, tuve que sobreestimar artificialmente mi puntaje de preferencia para las pistas que he escuchado menos de dos veces para aumentar la probabilidad de reproducirlas.
Además, para excluir la repetición de las pistas que se acaban de reproducir, se decidió reducir artificialmente el puntaje de preferencia de las últimas diez pistas reproducidas.
En la práctica, esto funcionó bastante bien, pero solo bajo la condición de un perfil de preferencia más o menos formado, cuando la gran mayoría de las primeras veinte pistas cargadas no causan rechazo. El nuevo usuario recibió un conjunto de pistas completamente aleatorias que se vio obligado a omitir sin cesar. En el primer caso, las brechas eran bastante raras y no causaban irritación. En el segundo, el oyente simplemente no podía esperar a la próxima iteración de rotación.
Así que estaba en la versión original de la aplicación, que se publicó al momento de escribir el artículo anterior. Ahora sobre lo que se ha hecho para mejorar la experiencia del usuario:
- Para la próxima iteración, la rotación ahora es suficiente para que todas las pistas se escuchen solo una vez (anteriormente había dos veces).
- En presencia de composiciones inauditas, su evaluación de preferencia aumenta drásticamente, para todos los demás, disminuye drásticamente (ambos en un orden de magnitud).
Estos cambios han llevado al hecho de que cuando hay una conexión a Internet, las pistas ahora se reproducen solo una vez (como en la radio normal), pero las pistas que te gustan se quedan en el caché, desplazando al resto. Tan pronto como se pierde la conexión a Internet, se activa el antiguo mecanismo, reproduciendo las pistas seleccionadas en proporción a su evaluación de preferencia.
PD: También se corrigió un error relacionado con la falta de reconocimiento del WiFi aparecido.
La versión 1.0.2 de PPS estaba rota. Encendí la minificación y la compresión de recursos, como resultado, la aplicación se bloquea, como lo señaló nikita_dol . Pido disculpas, de ahora en adelante subiré actualizaciones solo a través de versiones beta. Realmente espero que la versión 1.0.3 esté funcionando.