| --- |
| title: Float |
| emoji: 🧘 |
| colorFrom: indigo |
| colorTo: purple |
| sdk: docker |
| pinned: false |
| license: mit |
| --- |
| <div align="center" style="display: block;margin-left: auto;margin-right: auto;width: 50%;"> |
| <h1 > |
| <img width="800" src="banner.png" alt="float-app icon"> |
| </h1> |
| <div style="display: flex; justify-content: center; align-items: center;"> |
| <h4 style="margin: 0; display: flex;"> |
| <a href="https://www.apache.org/licenses/LICENSE-2.0.html"> |
| <img src="https://img.shields.io/badge/license-Apache2.0-blue" alt="float is under the Apache 2.0 liscense" /> |
| </a> |
| <a href="https://github.com/circlemind-ai/fast-graphrag/blob/main/CONTRIBUTING.md"> |
| <img src="https://img.shields.io/badge/Expo-51+-green" alt="Expo Version" /> |
| </a> |
| <a href="https://cloud.google.com/text-to-speech/docs/basics"> |
| <img src="https://img.shields.io/badge/Google%20TTS%20>=2.6-yellow" alt="Google Text-To-Speech" /> |
| </a> |
| <a href="https://platform.openai.com/docs/guides/text-to-speech"> |
| <img src="https://img.shields.io/badge/OpenAI-voilet" alt="OpenAI Text-To-Speech" /> |
| </a> |
| <a href="https://www.youtube.com/watch?v=8hmrio2A5Og"> |
| <img src="https://img.shields.io/youtube/views/8hmrio2A5Og"> |
| </a> |
| <img src="https://img.shields.io/badge/python->=3.12.1-blue"> |
| </h4> |
| </div> |
| |
| <p><b>From feelings to Flow - Customized Meditations <br> <a href="https://float-app.fun/"> FLOAT » </a> </b> </p> |
| </div> |
|
|
| # Float |
|
|
| Float is a cross-platform meditation app built with React Native and Expo. It uses Google Generative AI, Eleven Labs text-to-Speech (migrating to Google TTS), and a library of sound files to create personalized meditation experiences based on user-submitted incidents that have affected them emotionally, which we refer to as "floats". Floats are categorized by emotion and intensity, and include a timer and a color scheme to indicate the duration, summary, and reasoning behind each meditation. The app can generate meditations from up to three floats at a time. |
|
|
| ## Features :zap: |
|
|
| - **Personalized Meditations**: Generates customized meditation sessions based on user-submitted floats. |
| - **Multi-Platform Support**: Built with React Native and Expo, supporting iOS, Android and Web platforms. |
| - **Create Floats with Audio and Text**: User can create floats with audio or text allowing Gemini to capture tonality and speech patterns to asses mood and intensity of emotion as well as text |
| - **Google Generative AI Integration**: Utilizes Google Generative AI for generating floats and meditation content. |
| - **ElevenLabs Text-to-Speech**: Converts generated text into spoken meditations using ElevenLabs' text-to-speech technology. |
| - **Color-Coded Timer**: Provides a visual timer with a color scheme to indicate the elapsed time of the meditation session. |
| - **Emotion and Intensity Categorization**: Categorizes floats by emotion and intensity to tailor meditation experiences. |
| - **Backend Powered by AWS Lambda**: Manages API calls to Google Generative AI and ElevenLabs through AWS Lambda functions. |
|
|
| # Installation :eyes: |
|
|
| To set up and run Float locally, follow these steps: |
|
|
| ### Prerequisites |
|
|
| - Node.js (version 14 or higher) |
| - Expo CLI (install with `npm install -g expo-cli`) |
| - A Google Cloud account with API access for Generative AI |
| - An ElevenLabs account with API access for Text-to-Speech |
| - OpenAI Account and API key |
| - AWS account with Lambda functions set up |
|
|
| ### Clone the Repository |
|
|
| ```bash |
| git clone https://github.com/yourusername/float.git |
| cd float |
| ``` |
|
|
| ### Install Dependencies |
| ```bash |
| yarn |
| ``` |
|
|
| ## Configure Environment Variables |
| Create a .env file in the root directory and add the following variables: |
|
|
| Frontend |
| ```bash |
| EXPO_PUBLIC_AWS_ID=<aws_id> |
| EXPO_PUBLIC_AWS_SECRET=<aws_secret> |
| EXPO_PUBLIC_AWS_REGION=<aws_region> |
| ``` |
|
|
| Backend |
| ```bash |
| FFMPEG_BINARY=/opt/bin/ffmpeg |
| G_KEY=<google_api_key> |
| SIMILARITY_BOOST=0.7 |
| STABILITY=0.3 |
| STYLE=0.3 |
| VOICE_ID=jKX50Q2OBT1CsDwwcTkZ |
| XI_KEY=<eleven_labs_key> |
| OPENAI_API_KEY=<openai_key> |
| ``` |
|
|
| # Run the App :smile: |
|
|
| ### Frontend |
|
|
| Start the development server: |
|
|
| ```bash |
| npm start -c |
| ``` |
| This will open the metro builder. You can run the app on iOS, Android, or web |
|
|
| ### Backend |
|
|
| Create a Lambda Layer for the FFMPEG subprocess. Thanks to [SARVESH VIRKUD](https://virkud-sarvesh.medium.com/building-ffmpeg-layer-for-a-lambda-function-a206f36d3edc) |
|
|
| The Lambda packages need to be downloaded and built on a Linux machine with python 3.12 for google.protbuf and crypto binary packages to work correctly |
|
|
| ## Usage |
|
|
| - **Add Floats:** Enter incidents with audio or text that have affected you. |
| - **Review:** Review the summary and reasoning behind the float-generation. |
| - **Timing:** Use the color-coded timer to monitor if enough temporal space has been created. |
| - **Generate Meditation:** Select up to three floats to create a personalized meditation. |
| - **Start Meditation:** Begin the meditation session. |
|
|
| ## API Integration :fire: |
|
|
| - **Google Generative AI:** Used for generating the content of the meditations. |
| - **AWS Lambda:** Manages API calls and processes data from Google and ElevenLabs APIs. |
|
|
| **Choice of Voice API:** Converts generated text into audio for the meditation sessions. |
| - **ElevenLabs** |
| - **Google TTS** |
| - **OpenAI Text-to-Speech** |
|
|
|
|
| ## License |
| This project is licensed under the Apache 2.0 License. See the LICENSE file for details. |
|
|
| ## Acknowledgements |
|
|
| **Google Icons:** Material Icons provided by Google Material Icons |
|
|
| **Logo Font:** Font provided by notyourtypefoundry testType(1.1) |
|
|
| ## Contact |
| For questions or feedback, please contact: |
|
|
| - Email: gemenielabs@gmail.com |
| - GitHub: https://github.com/hatmanstack |
| - Twitter: @hatmanstack |
|
|
| Enjoy your meditative journey with Float! |
|
|