{"id":30364757,"url":"https://github.com/mendoc/clara-speaker-android-service","last_synced_at":"2025-08-19T20:19:50.120Z","repository":{"id":302925655,"uuid":"1002681580","full_name":"mendoc/clara-speaker-android-service","owner":"mendoc","description":"Service Android pour Clara Speaker","archived":false,"fork":false,"pushed_at":"2025-07-04T19:18:57.000Z","size":115,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-04T20:26:57.825Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mendoc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-16T01:08:40.000Z","updated_at":"2025-07-04T19:19:00.000Z","dependencies_parsed_at":"2025-07-04T20:27:40.355Z","dependency_job_id":"2d2f261e-b7d2-4558-b020-b40b18a57d14","html_url":"https://github.com/mendoc/clara-speaker-android-service","commit_stats":null,"previous_names":["mendoc/clara-speaker-android-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mendoc/clara-speaker-android-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendoc%2Fclara-speaker-android-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendoc%2Fclara-speaker-android-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendoc%2Fclara-speaker-android-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendoc%2Fclara-speaker-android-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mendoc","download_url":"https://codeload.github.com/mendoc/clara-speaker-android-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendoc%2Fclara-speaker-android-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271215037,"owners_count":24720098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-19T20:19:49.622Z","updated_at":"2025-08-19T20:19:50.111Z","avatar_url":"https://github.com/mendoc.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clara Speaker\n\nClara Speaker est une application Android conçue pour écouter des résumés textuels de manière fluide et intelligente. Elle reçoit des textes courts via des notifications push, les convertit en audio, et les lit automatiquement lorsqu'un casque Bluetooth est connecté.\n\n## 🚀 Fonctionnalités Principales\n\n- **Réception de Résumés** : Intégration avec Firebase Cloud Messaging (FCM) pour recevoir des textes à la volée.\n- **Synthèse Vocale** : Utilise l'API Text-to-Speech de Google Cloud pour générer un audio de haute qualité en français.\n- **Lecture Intelligente via Bluetooth** :\n    - Si un casque est connecté, le résumé est lu immédiatement.\n    - Sinon, le résumé est mis en file d'attente.\n- **Lecture Différée** : Dès qu'un casque Bluetooth est connecté, l'application lit tous les résumés en attente de manière séquentielle.\n- **Interface de Consultation** : Un écran principal affiche les 3 derniers résumés joués, permettant de les réécouter ou de les supprimer.\n- **Persistance Locale** : Utilise la base de données Room pour stocker l'historique des résumés, leur état (lu/non lu) et le chemin vers le fichier audio généré.\n\n## 🛠️ Architecture Technique\n\nLe projet suit une architecture Android moderne (MVVM) et s'articule autour des composants suivants :\n\n- **`MyFirebaseMessagingService`** : Service qui écoute les notifications push de FCM, sauvegarde immédiatement chaque résumé en base de données et déclenche la lecture si nécessaire.\n- **`Room` (`AppDatabase`, `SummaryDao`, `Summary`)** : Couche de persistance pour stocker les résumés. Le schéma inclut le texte, l'état de lecture, la date, le modèle de voix utilisé et le chemin du fichier audio.\n- **`Retrofit` (`TtsApiService`)** : Client HTTP pour communiquer avec l'API Google Cloud Text-to-Speech.\n- **`AudioPlayerManager`** : Un objet singleton qui centralise la logique de synthèse vocale, la sauvegarde du fichier audio `.mp3` dans le stockage interne et la gestion de la lecture via `MediaPlayer`.\n- **`BluetoothConnectionReceiver`** : Un `BroadcastReceiver` qui détecte les connexions d'appareils Bluetooth (`ACTION_ACL_CONNECTED`) et lance la lecture des résumés en attente.\n- **`MVVM` (`MainActivity`, `SummaryViewModel`, `SummaryAdapter`)** : L'interface utilisateur est gérée par une `Activity` qui observe un `ViewModel`. Le `ViewModel` expose les données via `LiveData`, et un `RecyclerView` les affiche.\n\n## ⚙️ Configuration du Projet\n\nPour compiler et exécuter le projet, suivez ces étapes :\n\n1.  **Cloner le dépôt**\n    ```bash\n    git clone https://github.com/mendoc/clara-speaker-android-service.git\n    ```\n\n2.  **Ouvrir dans Android Studio**\n    Importez le projet dans Android Studio.\n\n3.  **Configuration de Firebase**\n    - Vous devez avoir un projet Firebase configuré pour une application Android.\n    - Téléchargez votre propre fichier `google-services.json` depuis la console Firebase.\n    - Placez ce fichier dans le dossier `app/` du projet.\n\n4.  **Clé d'API Google Text-to-Speech**\n    - L'application nécessite une clé d'API pour l'API Google Cloud Text-to-Speech.\n    - Créez un fichier nommé `local.properties` à la racine du projet (au même niveau que `build.gradle`).\n    - Ajoutez votre clé d'API dans ce fichier comme suit :\n      ```properties\n      GOOGLE_TTS_API_KEY=\"VOTRE_CLE_API_PERSONNELLE_ICI\"\n      ```\n\n5.  **Compiler et Exécuter**\n    Synchronisez le projet avec les fichiers Gradle, puis compilez et exécutez l'application sur un émulateur ou un appareil physique.\n\n## ⚠️ Permissions Requises\n\nL'application demandera les permissions suivantes lors de l'exécution :\n\n- `BLUETOOTH_CONNECT` (pour Android 12 et supérieur) : Pour détecter la connexion des appareils Bluetooth.\n- `POST_NOTIFICATIONS` (pour Android 13 et supérieur) : Pour pouvoir recevoir les notifications push de Firebase.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmendoc%2Fclara-speaker-android-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmendoc%2Fclara-speaker-android-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmendoc%2Fclara-speaker-android-service/lists"}