Skip to content

hanief/journai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JournAI: Voice Journal with AI Transcription

JournAI is a modern mobile application that transforms your voice recordings into searchable journal entries using advanced AI transcription. Built with React Native and Expo, it offers a seamless journaling experience with features like real-time audio visualization, mood tracking, and category organization.

🌟 Features

  • Voice Recording: High-quality audio recording with visual feedback and duration tracking
  • AI Transcription: Powered by Whisper.cpp for accurate speech-to-text conversion
  • Rich Journal Entries:
    • Audio playback with speed control
    • Text editing capabilities
    • Mood tracking (Happy, Neutral, Sad)
    • Category tagging
  • Smart Organization:
    • Search through entries
    • Filter by categories
    • Sort by date
  • Modern UI/UX:
    • Real-time audio visualization
    • Smooth animations
    • Intuitive controls

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or later)
  • npm or yarn
  • Expo CLI
  • iOS Simulator or Android Emulator (for development)
  • Xcode (for iOS development)
  • Android Studio (for Android development)

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/journai.git
    cd journai
  2. Install dependencies:

    npm install
  3. Install iOS dependencies:

    cd ios
    pod install
    cd ..
  4. Start the development server:

    npm start

Running the App

  • For iOS:

    npm run ios
  • For Android:

    npm run android

πŸ›  Technical Details

Architecture

The app is built using:

  • React Native with Expo
  • React Native Reanimated for smooth animations
  • Expo AV for audio recording and playback
  • AsyncStorage for local data persistence
  • Whisper.cpp for AI transcription

Key Components

  • RecordingInterface: Handles audio recording with visual feedback
  • AudioPlayer: Custom audio player with playback speed control
  • JournalEntryItem: Displays and manages individual journal entries
  • TranscriptionService: Manages Whisper model and transcription

File Structure

journai/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ AudioPlayer.tsx
β”‚   β”‚   β”œβ”€β”€ JournalEntryItem.tsx
β”‚   β”‚   β”œβ”€β”€ RecordingInterface.tsx
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── TranscriptionService.ts
β”‚   β”œβ”€β”€ types.ts
β”‚   └── index.tsx
β”œβ”€β”€ assets/
└── ...

πŸ”§ Troubleshooting

Common Issues

  1. Whisper Model Download Fails

    • Check your internet connection
    • Try using the redownload button in the app header
    • Verify device storage has enough space
  2. Audio Recording Issues

    • Ensure microphone permissions are granted
    • Check audio settings in device settings
    • Try closing other apps using the microphone
  3. App Performance

    • Clear app cache if experiencing slowdown
    • Ensure device has sufficient free storage
    • Consider removing old journal entries if needed

Error Messages

  • "Failed to initialize transcription service":

    1. Check internet connection
    2. Verify storage permissions
    3. Try redownloading the Whisper model
  • "Error recording audio":

    1. Check microphone permissions
    2. Restart the app
    3. Verify no other apps are using the microphone

πŸ“± Device Compatibility

  • iOS: Version 13.0 or later
  • Android: API Level 21 (Android 5.0) or later

πŸ” Privacy

  • All audio processing is done on-device
  • No data is sent to external servers
  • Journal entries are stored locally on your device

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Support

If you encounter any issues or have questions:

  1. Check the troubleshooting guide above
  2. Open an issue on GitHub
  3. Contact the development team

πŸ™ Acknowledgments

About

Journaling mobile app (powered by React Native, Whisper)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published