├── app ├── .gitignore ├── src │ ├── main │ │ ├── ic_launcher-playstore.png │ │ ├── assets │ │ │ ├── stopWords │ │ │ │ ├── stop.tflite │ │ │ │ └── stop.json │ │ │ ├── wakeWords │ │ │ │ ├── alexa.tflite │ │ │ │ ├── hey_luna.tflite │ │ │ │ ├── hey_jarvis.tflite │ │ │ │ ├── okay_nabu.tflite │ │ │ │ ├── hey_mycroft.tflite │ │ │ │ ├── hey_peppa_pig.tflite │ │ │ │ ├── okay_computer.tflite │ │ │ │ ├── choo_choo_homie.tflite │ │ │ │ ├── hey_home_assistant.tflite │ │ │ │ ├── alexa.json │ │ │ │ ├── hey_jarvis.json │ │ │ │ ├── hey_mycroft.json │ │ │ │ ├── hey_home_assistant.json │ │ │ │ ├── hey_luna.json │ │ │ │ ├── okay_nabu.json │ │ │ │ ├── hey_peppa_pig.json │ │ │ │ ├── choo_choo_homie.json │ │ │ │ └── okay_computer.json │ │ │ └── sounds │ │ │ │ ├── timer_finished.flac │ │ │ │ ├── wake_word_triggered.flac │ │ │ │ └── LICENSE.md │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── values │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── themes.xml │ │ │ │ └── strings.xml │ │ │ ├── mipmap-anydpi │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── drawable │ │ │ │ ├── arrow_back_24px.xml │ │ │ │ ├── more_vert_24px.xml │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ava │ │ │ │ ├── ui │ │ │ │ ├── theme │ │ │ │ │ └── Type.kt │ │ │ │ ├── screens │ │ │ │ │ └── settings │ │ │ │ │ │ ├── components │ │ │ │ │ │ ├── SwitchSetting.kt │ │ │ │ │ │ ├── DialogSettingItem.kt │ │ │ │ │ │ ├── NumberSetting.kt │ │ │ │ │ │ └── SettingItem.kt │ │ │ │ │ │ └── SettingsScreen.kt │ │ │ │ ├── Navigation.kt │ │ │ │ └── services │ │ │ │ │ └── ServiceViewModel.kt │ │ │ │ ├── esphome │ │ │ │ ├── entities │ │ │ │ │ ├── Entity.kt │ │ │ │ │ ├── SwitchEntity.kt │ │ │ │ │ └── MediaPlayerEntity.kt │ │ │ │ └── voicesatellite │ │ │ │ │ └── VoiceSatellitePlayer.kt │ │ │ │ ├── microwakeword │ │ │ │ ├── WakeWordProvider.kt │ │ │ │ ├── WakeWord.kt │ │ │ │ ├── AssetWakeWordProvider.kt │ │ │ │ ├── TensorBuffer.kt │ │ │ │ └── WakeWordDetector.kt │ │ │ │ ├── permissions │ │ │ │ └── PermissionsHelper.kt │ │ │ │ ├── utils │ │ │ │ ├── NetworkUtils.kt │ │ │ │ ├── BufferUtils.kt │ │ │ │ ├── EspHomeStateTranslations.kt │ │ │ │ └── AsyncUtils.kt │ │ │ │ ├── settings │ │ │ │ ├── SettingState.kt │ │ │ │ ├── SettingsStore.kt │ │ │ │ ├── MicrophoneSettings.kt │ │ │ │ ├── SettingsSerializer.kt │ │ │ │ ├── PlayerSettings.kt │ │ │ │ └── VoiceSatelliteSettings.kt │ │ │ │ ├── nsd │ │ │ │ ├── VoiceSatelliteNsd.kt │ │ │ │ └── NsdRegistration.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── players │ │ │ │ ├── AudioFocusRegistration.kt │ │ │ │ └── TtsPlayer.kt │ │ │ │ ├── server │ │ │ │ └── ClientConnection.kt │ │ │ │ ├── notifications │ │ │ │ └── NotificationHelper.kt │ │ │ │ ├── wakelocks │ │ │ │ └── WifiWakeLock.kt │ │ │ │ └── audio │ │ │ │ └── MicrophoneInput.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── ava │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── example │ │ └── ava │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle.kts ├── esphomeproto ├── .gitignore ├── src │ └── main │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── esphomeproto │ │ │ └── api │ │ │ └── VoiceAssistantFeature.kt │ │ └── proto │ │ └── api_options.proto └── build.gradle.kts ├── microfeatures ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── cpp │ │ │ ├── tensorflow │ │ │ │ └── lite │ │ │ │ │ └── experimental │ │ │ │ │ └── microfrontend │ │ │ │ │ ├── README.md │ │ │ │ │ └── lib │ │ │ │ │ ├── kiss_fft_int16.cc │ │ │ │ │ ├── log_scale_io.c │ │ │ │ │ ├── log_scale_util.c │ │ │ │ │ ├── frontend_io.h │ │ │ │ │ ├── log_scale_io.h │ │ │ │ │ ├── fft_io.h │ │ │ │ │ ├── fft_util.h │ │ │ │ │ ├── window_io.h │ │ │ │ │ ├── log_lut.h │ │ │ │ │ ├── filterbank_io.h │ │ │ │ │ ├── log_scale.h │ │ │ │ │ ├── kiss_fft_int16.h │ │ │ │ │ ├── noise_reduction_io.h │ │ │ │ │ ├── fft.h │ │ │ │ │ ├── noise_reduction.h │ │ │ │ │ ├── pcan_gain_control.h │ │ │ │ │ ├── noise_reduction_io.c │ │ │ │ │ ├── fft_io.c │ │ │ │ │ ├── window.h │ │ │ │ │ ├── log_scale_util.h │ │ │ │ │ ├── window_util.h │ │ │ │ │ ├── log_lut.c │ │ │ │ │ ├── frontend_memmap_generator.c │ │ │ │ │ ├── filterbank_util.h │ │ │ │ │ ├── window_io.c │ │ │ │ │ ├── noise_reduction_util.c │ │ │ │ │ ├── kiss_fft_common.h │ │ │ │ │ ├── noise_reduction_util.h │ │ │ │ │ ├── fft.cc │ │ │ │ │ ├── pcan_gain_control.c │ │ │ │ │ ├── frontend_memmap_main.c │ │ │ │ │ ├── fft_test.cc │ │ │ │ │ ├── noise_reduction.c │ │ │ │ │ ├── frontend_util.h │ │ │ │ │ ├── log_scale_test.cc │ │ │ │ │ ├── pcan_gain_control_test.cc │ │ │ │ │ ├── pcan_gain_control_util.h │ │ │ │ │ ├── filterbank.h │ │ │ │ │ ├── frontend_main.c │ │ │ │ │ ├── window_util.c │ │ │ │ │ ├── fft_util.cc │ │ │ │ │ ├── frontend.h │ │ │ │ │ ├── window.c │ │ │ │ │ ├── noise_reduction_test.cc │ │ │ │ │ ├── filterbank_io.c │ │ │ │ │ ├── README.md │ │ │ │ │ ├── frontend.c │ │ │ │ │ └── frontend_io.c │ │ │ └── kissfft │ │ │ │ └── tools │ │ │ │ ├── kiss_fftnd.h │ │ │ │ ├── kiss_fftr.h │ │ │ │ ├── kiss_fftndr.h │ │ │ │ ├── kfc.h │ │ │ │ └── Makefile │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── microfeatures │ │ │ └── MicroFrontend.kt │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── microfeatures │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── example │ │ └── microfeatures │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle.kts ├── .idea ├── .gitignore ├── compiler.xml ├── kotlinc.xml ├── vcs.xml ├── AndroidProjectSystem.xml ├── migrations.xml ├── deploymentTargetSelector.xml ├── deviceManager.xml ├── misc.xml ├── gradle.xml └── runConfigurations.xml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle.kts ├── gradle.properties ├── .github └── workflows │ └── release.yml └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /esphomeproto/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /microfeatures/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /microfeatures/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /microfeatures/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/assets/stopWords/stop.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/stopWords/stop.tflite -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/alexa.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/alexa.tflite -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/hey_luna.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/hey_luna.tflite -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/assets/sounds/timer_finished.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/sounds/timer_finished.flac -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/hey_jarvis.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/hey_jarvis.tflite -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/okay_nabu.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/okay_nabu.tflite -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/hey_mycroft.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/hey_mycroft.tflite -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/hey_peppa_pig.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/hey_peppa_pig.tflite -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/okay_computer.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/okay_computer.tflite -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/assets/sounds/wake_word_triggered.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/sounds/wake_word_triggered.flac -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/choo_choo_homie.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/choo_choo_homie.tflite -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/assets/wakeWords/hey_home_assistant.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/assets/wakeWords/hey_home_assistant.tflite -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brownard/Ava/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/java/com/example/ava/ui/theme/Type.kt: -------------------------------------------------------------------------------- 1 | package com.example.ava.ui.theme 2 | 3 | import androidx.compose.material3.Typography 4 | 5 | val AppTypography = Typography() 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3263C3 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |