Smule adopta el oboe de Google para mejorar la calidad del registro y las tasas de finalización


Publicado por el equipo de ingeniería de Smule: David Gayle, Chris Manchester, Mark Gills, Trayko Traykov, Randal Leistikow, Mariya Ivanova.

Gráficos en azul claro con elementos de karaoke.

Síntesis

Siendo la aplicación de canto más descargada de todos los tiempos, Smulo Inc. ha invertido en Android para mejorar la calidad general del audio y, más específicamente, para mejorar la latencia más baja, lo que permite a los cantantes escuchar su propia voz en los auriculares mientras actúan. Los equipos especializados en Audio y Vídeo han destinado una parte importante de 2021 a realizar los cambios necesarios para convertir la aplicación Smule utilizada por más de diez millones de usuarios de Android de la API de audio OpenSL a la biblioteca de audio Oboe, lo que permitirá un aumento de aproximadamente 10 % y por encima de la tasa de finalización del registro.

Introducción

Smule Inc. es líder en karaoke, con una aplicación que ayuda a millones de personas a cantar sus canciones favoritas y compartir programas todos los días. La aplicación Smule va más allá del karaoke tradicional al enfocarse en la creación conjunta, brindando a los usuarios la oportunidad única de compartir música y colaborar con amigos, otros cantantes en la plataforma y sus artistas musicales favoritos. La calidad del audio es clave y, en 2020, el equipo de Smule vio el potencial para mejorar la experiencia en Android.

Captura de pantalla de la aplicación de karaoke Smule

La implementación heredada de OpenSL de Smule no era adecuada para aprovechar el hardware ultrarrápido de los nuevos dispositivos mientras admitía los diferentes dispositivos en su mercado mundial. El equipo de desarrollo de Smule determinó que la actualización del sistema de sonido era una mejora lógica y necesaria.

Estrategia de lanzamiento de oboe

Smule tuvo que enfrentarse a dos posibles vías de mejora: apuntar directamente Audiouna API de audio de Android C de alto rendimiento introducida en Android O diseñada para aplicaciones que requieren baja latencia o Oboe, que envuelve tanto AAudio como OpenSL internamente. Después de una cuidadosa consideración, el equipo de desarrollo de Smule optó por la base de código fácil de usar de Oboe, la amplia compatibilidad de dispositivos y el sólido apoyo de la comunidad, que logró la latencia más baja y aprovechó al máximo el audio nativo disponible.

La conversión a Oboe representó una importante evolución arquitectónica y tecnológica. Como resultado, Smule abordó el proceso de implementación de forma conservadora, con un lanzamiento planificado y por etapas que comenzó con una pequeña selección de modelos de dispositivos para validar la calidad. Semana tras semana, el equipo habilitó múltiples dispositivos (informando un número limitado de dispositivos que tenían problemas en Oboe a OpenSL). Este enfoque incremental y metódico ayudó a minimizar el riesgo y permitió que el equipo de ingeniería manejara los problemas específicos del dispositivo a medida que ocurrían.

Mejore la experiencia de calidad de audio

Smule cambió a Oboe para mejorar la experiencia de la aplicación. Esperaban reducir drásticamente los bloqueos en la reproducción de audio, eliminar problemas como el eco y el crujido al grabar y reducir la latencia del audio. Un artículo reciente en el Android Developer Blog muestra que la latencia promedio de los veinte dispositivos más populares se redujo de 109 ms en 2017 a 39 ms en la actualidad con Oboe. Si bien un retraso de monitoreo de 109 ms se percibe como un eco distintivo que interfiere con el canto en vivo, 39 ms está por debajo del umbral aceptable para aplicaciones en tiempo real. Las latencias de los mejores dispositivos de la actualidad están dentro de los 22 ms entre sí y esta consistencia es una gran ventaja.

El aumento en la tasa de finalización de registros que Smule experimentó con Oboe probablemente se deba a esta latencia más baja, que permite a los cantantes escuchar sus voces en los auriculares mientras tocan con los efectos de audio de clase mundial de Smule aplicados, pero sin eco.

Usar un portal colaborativo efectivo de GitHub dedicado a Oboe, el equipo de Google desempeñó un papel importante en la integración de Smule’s Oboe, brindándoles información y asistencia clave. Trabajando juntos, los dos equipos pudieron lanzar la mayor distribución de Oboe hasta la fecha, llegando a millones de usuarios activos. El equipo de Smule ayudó a solucionar algunos problemas con el código de Oboe y el equipo de Google se coordinó con algunos fabricantes de dispositivos móviles para mejorar aún más la compatibilidad con Oboe.

La calidad del audio es de suma importancia para nuestra comunidad de cantantes y estamos agradecidos por nuestro compromiso compartido de brindar la mejor experiencia posible y potenciar la creación musical en Smule. – Eric Dumas, CTO de Smule.

Dada la magnitud de la operación, era natural abordar problemas específicos del dispositivo. Un ejemplo notable fue una función integrada del sistema operativo que inyectaba efectos de sonido de eco en la transmisión de audio sin procesar, lo que impedía que Smule aplicara correctamente sus algoritmos DSP y filtros de audio patentados. El equipo de Google acudió al rescate proporcionando actualizaciones y parches ultrarrápidos a la biblioteca. El proceso de informe de problemas de Oboe fue simple, bien definido y manejado de manera oportuna por el equipo de Google.

Smule ha superado juntos otros obstáculos específicos de dispositivos, incluidos errores con conjuntos de chips específicos. Por ejemplo, cuando Oboe solicitó una entrada de micrófono mono, algunos dispositivos proporcionaron entradas estéreo mezcladas con una entrada de micrófono mono falsa. Smule creó un ticket en GitHub de Oboeproporcionando ejemplos y reproduciendo el problema usando la aplicación Oboe tester.

Desarrollado por Google Aplicación de prueba de oboe fue una herramienta útil para solucionar e identificar problemas durante la implementación. Resultó particularmente útil para probar muchas de las funciones de Oboe, AAudio y OpenSL ES, así como para probar dispositivos Android, medir latencia y fallas, y mucho más. La aplicación ofrece una gran cantidad de funciones que pueden ayudar a simular casi cualquier configuración de audio. El probador de Oboe también se puede usar en autoevaluaciones, iniciándolo desde un script de shell con una intención de Android. Smule se basó en gran medida en las pruebas de automatización, dada la gran cantidad de dispositivos cubiertos por la integración.

Una vez que Smule estuvo seguro de que los problemas específicos del dispositivo se resolvieron y el audio del Oboe era lo suficientemente estable, Smule pasó a un enfoque de implementación de prueba dividida más amplio. En solo unas pocas semanas, Smule aumentó la población que usaba Oboe del 10 % al 100 % de los dispositivos exitosos, lo que solo fue posible gracias a los comentarios positivos y las métricas de KPI verdes que Oboe recibió continuamente durante el proceso de lanzamiento.

los resultados hablan por si mismos. Los usuarios de Smule en Oboe cantan más, es así de simple. Grabaciones de karaoke únicas y presentaciones conjuntas, o dúos, aumentadas en gran medida 8,07%, 3,84 % de cargas únicas e interpretaciones de canciones completadas por 4,10% Es más. Smule observó un aumento en la tasa de finalización de registro de más del 10 % en el tercer y cuarto trimestre de 2021.

Utilizando el Crashlytics de base de fuego La herramienta de Google, Smule, ha visto una caída en los bloqueos relacionados con el audio de la versión completa de Oboe, lo que hace que la aplicación sea más estable, incluso en dispositivos de gama baja. El equipo dedicado de atención al cliente de Smule estaba encantado de informar a 33% Reducción de las quejas de audio, incluidos problemas como la voz y el eco (no intencionales) del robot.

La decisión de cambiar al oboe valió la pena. La aplicación funciona mejor que nunca y Smule está bien equipado para abordar nuevos avances en audio y hardware con tecnología actualizada. Más importante aún, los usuarios de Smule están contentos y hacen música, que es todo lo que importa.

Compruebe también

La actualización de CameraX hace que las cámaras duales simultáneas sean aún más fáciles

Publicado por Donovan McMurray – Ingeniero de relaciones con desarrolladores CámaraXLa biblioteca de cámaras Jetpack …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *