Nemo is a Flutter application that integrates Google Gemini AI, Speech-to-Text, and Text-to-Speech (TTS) to provide a seamless conversational experience. This app allows users to communicate with an AI assistant via text and voice input, receive responses with voice output, and store chat history using Hive.
- AI-Powered Conversations - Uses Google's Gemini AI for generating responses.
- Speech-to-Text (STT) - Converts voice input into text using the
speech_to_text
package. - Text-to-Speech (TTS) - Reads responses aloud with adjustable speech rate, pitch, and volume.
- Chat History Persistence - Stores chat history using Hive database.
- Toggle Voice Response - Option to enable or disable AI voice responses.
- Scroll to Latest Message - Automatically scrolls down to show the latest message.
- Flutter (Cross-platform mobile development)
- Google Gemini AI (Natural language processing)
- Hive (Local database for storing chat history)
- GetX (State management)
- Speech-to-Text API (Voice input processing)
- Flutter TTS (Voice output for AI responses)
- Clone the Repository
git clone https://github.com/CodeBySubin/Ai-Chatbot cd Nemo
- Install Dependencies
flutter pub get
- Run the App
flutter run
- Type or Speak - Enter text in the chatbox or use the microphone for voice input.
- AI Response - The chatbot processes the input and responds in text & voice.
- View History - Previous messages are saved using Hive and can be accessed anytime.
- Toggle Voice - Enable or disable AI voice output using the toggle button.
- Replace your Google Gemini API Key in
ChatController
:model = GenerativeModel( model: 'gemini-pro', apiKey: "YOUR_GOOGLE_API_KEY", );
├── lib
│ ├── controllers
│ │ ├── chat_controller.dart
│ ├── models
│ │ ├── chat_model.dart
│ ├── utils
│ │ ├── utils.dart
│ ├── views
│ │ ├── chat_screen.dart
│ ├── main.dart
│ ├── pubspec.yaml
dependencies:
flutter:
sdk: flutter
google_generative_ai: ^latest_version
speech_to_text: ^latest_version
flutter_tts: ^latest_version
get: ^latest_version
hive: ^latest_version
hive_flutter: ^latest_version
For any queries or suggestions, feel free to reach out: 📧 Email: subin.c.mail@gmail.com