SoundIA TV est le module TV de l'application SoundIA:
- Connexion / Inscription
- Abonnements
- Enregistrement audio - transformation des données audio pour le model
- Service audio
- traitement des données audio JNI C++
- TensorFlow lite / Prédiction
- Notification push, Connexion Bluetooth SmartEar.
- Historique des alertes
On peut s'inscrire, se connecter avec google Sign in
La gestion des abonnements s'est faite avec google Play billing. Vertification de l'existance d'un abonnement ou pas ainsi que sa validité.
Ce module est la base de l'application, il est composé de :
Ce service s'occupe de l'enregistrement de donnéees audio avec la classe AudioRecord, initialisée avec un sampleRate, un channel, ainsi qu'un format. Pour compléter la phase d'enregistrement j'ai mis en place un Circular buffer. Le service s'occupe aussi de la coupure et de la reprise de l'enregistrement avec AudioManager, afin de détecter si le service audio est requis par une autre application. Exemple un appel entrant, ou l'utilisateur se sert d'une autre application, qui elle devient prioritaire car l'utilisateur est dessus.
Une fois notre buffer rempli, les données sont envoyées à ma librairie native qui les transforme afin de concorder aux données d'entrées de notre model. Cette lib est construite à l'aide d'un fichier Cmake ainsi que quelques classes.
Module qui permet d'effectuer un prédiction avec les données retournées par notre librairie native et le model chargé. Puis retourne le resulat. Si la prédiction atteint ou dépasse un certain seuil, une alerte est émise à l'utilisateur, ou une notification locale si l'application est en background.
Une notification push est émise afin d'avertir les utilisateurs possédant l'application Notifier. Application réalisé en Kotlin qui permet d'être averti si un proche possédant Strix IA à une alerte. Ensuite si l'utilisateur possède un smartEar, l'application se connecte au smartear en bluetooth et lui envoie une commande, afin que ce dernier émette un signal lumineux.
Les alertes détectées sont sauvegardés dans une base de données en local mise en place avec Room. Notre module de base de données est composé de Repository, Dao et de viewmodel afin d'établir la communication entre l'interface et notre base de données.
