Skip to content
lagosprojectPublic

About

A Flutter app to transcribe your voice with speech-to-text, supporting sharing and file export

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Dictation

Dictation

A clean, offline-first Flutter app that turns your voice into text — with real-time dictation, undo/redo, auto-save drafts, and file management.

CI Status License: MIT Flutter Version

Get it on Google Play


Table of Contents


About the Project

Dictation is a minimalist, privacy-first note-taking app built with Flutter. It uses the device's native speech recognition engine — no cloud API required — to transcribe your voice in real time. Notes are auto-saved locally so nothing is ever lost between sessions. The app ships with English, Spanish, and French localizations and adapts to the device language automatically.


Features

Feature Details
Real-time dictation Continuous speech-to-text with auto-restart on interruption
Undo / Redo Full edit history via Flutter's UndoHistoryController
Auto-save draft Text preserved across sessions via SharedPreferences
Save & Load Export notes as .txt files and reload them anytime
Share Send transcribed text to any app instantly
Font size control Adjustable editor font, persisted across sessions
Word & character count Live counter displayed below the editor
Localization English, Spanish, and French

Prerequisites

  • Flutter SDK 3.12.0 or higher
  • Dart SDK 3.12.0 or higher (bundled with Flutter)
  • Android Studio / SDK for Android builds
  • A connected device or emulator

Verify your setup:

flutter doctor

Installation & Setup

  1. Clone the repository

    git clone https://github.com/lakescorp/Dictation.git
    cd Dictation
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run
  4. Build a release APK / AAB

    # APK
    flutter build apk --release
    
    # Android App Bundle (for Play Store)
    flutter build appbundle --release

Usage

Tap the microphone FAB at the bottom to start dictating. The app transcribes speech continuously and appends new words to the existing text. Tap again to stop.

// Core dictation loop (SpeechService)
await _speechToText.listen(
  onResult: (result) {
    final prefix = _wordsBeforeSpeech;
    _inputController.text =
        prefix.isEmpty ? result.recognizedWords : '$prefix ${result.recognizedWords}';
  },
);

Use the AppBar actions to undo, redo, save, or clear the current note. The overflow menu (⋮) gives access to Load file, Share, and Font size.


Configuration

This app runs entirely offline and requires no API keys. Copy the example environment file if you plan to extend the project with external services:

cp .env.example .env

See .env.example for available variables and their descriptions.


Running Tests

# Run the full test suite
flutter test

# Static analysis
flutter analyze

Tests cover FileService, DraftService, UI widget behaviour, and the app smoke test.


Contributing

Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request, and follow the Code of Conduct.


Changelog

See CHANGELOG.md for a full history of releases.


License

Distributed under the MIT License. See LICENSE for details.

About

A Flutter app to transcribe your voice with speech-to-text, supporting sharing and file export

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Used by

Contributors

Languages