A voice memos-like for Android and iOS. Written in Flutter.

Related tags

Templates app flutter
Overview

Voiceliner

A voice memos-like for Android and iOS. Written in Flutter.

The codebase is still quite messy, but contributions welcome!

Screenshots

Contributing & License

This project is AGPLv3 but with an exception for the App Store. Learn More

Building

  • Install flutter
  • flutter run lib/main.dart

If running Android and need transcription:

  • flutter run --dart-define="AZURE_SPEECH_KEY=MyAzureAPIKey"

Rebuilding Icons

Place a 1024x1024 icon.png in assets/icon/icon.png and run

flutter pub run flutter_launcher_icons:main

Deploying

  • android/key.properties:
  storePassword=keystore password
  keyPassword=key password
  keyAlias=key alias
  storeFile=/keystore/location
Env Var Value
AZURE_SPEECH_KEY api key for Azure speech to text services (https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/overview#try-the-speech-service-for-free)
APPLE_ID apple account email"
APP_IDENTIFIER ios com.blabla.blabla
PLAY_APP_IDENTIFIER android com.blablabla.bla
ITC_TEAM_ID documented in fastlane
TEAM_ID documented in fastlane
MATCH_GIT github SSH URI for fastlane match
MATCH_PASSWORD documented in fastlane
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD app specific password for fastlane
FASTLANE_USER documented in fastlane
FASTLANE_PASSWORD documented in fastlane
FASTLANE_SESSION documented in fastlane
GOOGLE_PLAY_JSON_CONTENT base64 encoded json keys for google play fastlane
KEYSTORE base64 encoded keystore.jks
KEY_PROPERTIES key.properties seen above
SSH_PRIVATE_KEY for github access
SENTRY_DSN for sentry logging
Comments
  • waiting to transcribe... never transcribes

    waiting to transcribe... never transcribes

    Device: Samsung S20 5G Location: Ontario, Canada (in case that matters)

    Steps

    1. Installed app
    2. Made 3 brief recordings

    Expected result: see transcription quickly Actual result: still waiting, 10 mins and no error Screenshot_20211212-101110

    bug 
    opened by thephm 13
  • App not compatible with device in play store

    App not compatible with device in play store

    Hi, I installed voiceliner after seeing it on HN a while ago and I loved it. However when I tried updating it from the play store recently, it said your device is not compatible, contact developers for more info. Is there some criteria devices need to fulfill to be compatible? It was working perfectly before.

    I have a Xiaomi Mi A2 with Android 10.

    bug help wanted 
    opened by karmanyaahm 8
  • Google Drive Sign in doesn't work on android

    Google Drive Sign in doesn't work on android

    Related to SHA-1 fingerprint - API Exception 10

    Can anyone familiar with the API help out? https://github.com/maxkrieger/voiceliner/blob/main/lib/repositories/drive_backup.dart

    bug help wanted important 
    opened by maxkrieger 8
  • export audio

    export audio

    i'd like to be able to export the whole audio outline as one big audio file. right now you can only export the text version.

    i could see this as a really neat way to put an entire podcast or audio essay together, for example.

    maybe for phase 1, the app gives you a download of all the individual audio clips (preserving the order they are in in the outline).

    phase 2, maybe the app gives the option to combine the audio for you into one big file. but it's not strictly needed because there are other services that can do this like this one https://clideo.com/merge-audio

    enhancement help wanted 
    opened by trosel 7
  • Not useful response to tapping record button

    Not useful response to tapping record button

    If you tap the record button, it makes a very short, pretty much empty recording. It would make more sense if the UI did something else, like:

    • ignored taps
    • toggled on record mode until tapped again

    though not sure if the latter fits the intended workflow of recording quick, individual thoughts. but maybe this could go well with a future feature that lets you slice up larger recordings.

    enhancement 
    opened by elliotsayes 6
  • Investigate alternative transcription solutions for Android

    Investigate alternative transcription solutions for Android

    An HN commenter suggested https://github.com/alphacep/vosk-api. We'd have to write a binding and make sure the 50mb bundle stays in the Android folder, not the iOS build. The API is a little unclear https://github.com/alphacep/vosk-api/tree/master/java

    https://github.com/alphacep/vosk-android-demo/blob/b0035656cb39b77318a8c0b75f9ca9ea61b20884/app/src/main/java/org/vosk/demo/VoskActivity.java#L233

    enhancement help wanted important 
    opened by maxkrieger 5
  • Back up to iCloud

    Back up to iCloud

    Hi all,

    From https://a9.io/voiceliner/, it stated You can back up to "Google Drive and iCloud"

    I have an iphone 7 with iOS 15.7.1 (latest) and latest Voiceliner installed from app store.

    I tried to figure out where I can backup to iCloud in the app setting but only see option to backup to Google Drive (see screenshot below)

    Browsing with File app I can see "Voiceliner" folder in "on my iPhone" but not "iCloud Drive" location.

    I wonder am I missing something?

    Thanks.

    Jake

    IMG_162115961455-1

    opened by jakemkc 4
  • Off-line voice transcription

    Off-line voice transcription

    At the moment voice transcription cannot be done without data access.

    It would be great if transcription could be done within the device - offline - without the need of a data connection — both for speed, practical and also security purposes.

    opened by lyondhur 4
  • add audio export with linking in md file

    add audio export with linking in md file

    image image image
    image image image
    image image image --------

    @maxkrieger Please do a legit review on this, cause as of now, it's literally the only iOS code I've ever written. Tested in the simulator (screenshots above), but not tested on a real device.

    opened by benjaffe 4
  • Where to find the backup in Google Drive?

    Where to find the backup in Google Drive?

    I've been trying to find the backup file in Drive so that I can do some other fun stuff with the data, but haven't been able to figure out what the file is called. According to the code (below) I expected it to be something like voice_outliner-TIMESTAMP.zip but didn't see a file with that name anywhere in my Drive.

    https://github.com/maxkrieger/voiceliner/blob/bbc7832af7a1dcc048796eb79d250f6bcd5ac894/lib/repositories/drive_backup.dart#L104-L113

    From playing around with it, my backup does seem to be working, so it seems to be creating a file somewhere. I just can't figure out what the file is called!

    P.S. Thank you for making VoiceLiner! I've been wanting exactly this tool for ages.

    opened by devonzuegel 4
  • App-specific options when selecting text on Android

    App-specific options when selecting text on Android

    Cool app, really like the flow so far.

    Sorry if the description is a bit unclear, I don't know the exact Android terms.

    Some apps expose a special interface when you select text. For example, AnkiDroid lets you create a new card in the "3 dots" menu of the selection popover.

    Now in Voiceliner, I can select the transcribed text via the Edit modal.

    But when I select text, I only see the three options "Cut" "Copy" and "Paste".

    Could support for app-specific interfaces be added? Or is it maybe not possible with Flutter?

    enhancement 
    opened by Narretz 4
  • Recording stopped after three minutes with no warning

    Recording stopped after three minutes with no warning

    I was recording a voice note and it seems like it just stopped recording after around 3 mins.

    Both the text and audio were cut off abruptly at that point, which I only discovered after listening to the recording.

    OS: iOS 16.0.2 iPhone 13 Pro

    bug 
    opened by semistrict 0
  • iOS Shortcut to open a specific note

    iOS Shortcut to open a specific note

    With this feature and a little Shortcut configuration, you could have a "Journal" app icon on your home screen that opens the note called "Journal" in Voiceliner. A user could do this for many notes, and even have an entire home screen dedicated to Voiceliner shortcuts.

    It's a small UX optimization. I use this app a lot and would love this feature. I'm not an iOS developer but would consider trying to code it up at some point.

    enhancement help wanted good first issue 
    opened by akjams 1
  • Dropbox auto-backup

    Dropbox auto-backup

    Since google drive doesn't let you view the backed up files without absurdly permissive permissions (#62), but Dropbox does, a Dropbox option would be useful.

    Can use this https://pub.dev/packages/dropbox_client/example

    Related: #65 #44 #24 #23 #62

    enhancement help wanted 
    opened by maxkrieger 0
  • Voice transcription when online/offline

    Voice transcription when online/offline

    When the user creates a note without data access (offline), the current state only timestamps the recording, leaving it without a transcription.

    It would be great if, when the device goes back online, transcription is picked up and done automatically.

    PS: at the moment there is no way to transcribe a note that has been initially done off-line.

    bug important 
    opened by lyondhur 3
  • Gracefully handle security update segfaults on Android

    Gracefully handle security update segfaults on Android

    Some users are getting this (fatal) when google sends a security update along. I imagine it's related to dynamic linking:

    OS Version: Android 12 (SP2A.220505.002)
    Report Version: 104
    
    Exception Type: Unknown (SIGSEGV)
    
    Application Specific Information:
    Segfault
    
    Thread 0 Crashed:
    0   split_config.arm64_v8a.apk      0x7c17edc940        Model::Ref
    1   split_config.arm64_v8a.apk      0x7c17e5a3c8        KaldiRecognizer::KaldiRecognizer
    2   split_config.arm64_v8a.apk      0x7c17efe22c        vosk_recognizer_new
    3   split_config.arm64_v8a.apk      0x7c1af1404c        <unknown> + 533027962956
    4   split_config.arm64_v8a.apk      0x7c1af11b54        <unknown> + 533027953492
    5   split_config.arm64_v8a.apk      0x7c1af07540        <unknown> + 533027910976
    6   split_config.arm64_v8a.apk      0x7c1af1214c        <unknown> + 533027955020
    7   split_config.arm64_v8a.apk      0x7c1af141e0        <unknown> + 533027963360
    8   libart.so                       0x7cc02d4044        <unknown> + 535800135748
    9   libart.so                       0x7cc020988c        <unknown> + 535799306380
    10  base.odex                       0x7c4da0ca6c        <unknown> + 533878327916
    11  libart.so                       0x7cc020a044        <unknown> + 535799308356
    12  base.odex                       0x7c4d93e9ec        <unknown> + 533877484012
    13  libart.so                       0x7cc020a044        <unknown> + 535799308356
    14  base.odex                       0x7c4d93e892        <unknown> + 533877483666
    15  libart.so                       0x7cc0209124        <unknown> + 535799304484
    16  base.odex                       0x7c4d93e828        <unknown> + 533877483560
    17  libart.so                       0x7cc0209124        <unknown> + 535799304484
    18  base.odex                       0x7c4da14cd8        <unknown> + 533878361304
    19  libart.so                       0x7cc020ae64        <unknown> + 535799311972
    20  base.odex                       0x7c4d9cbeee        <unknown> + 533878062830
    21  libart.so                       0x7cc020ae64        <unknown> + 535799311972
    22  base.odex                       0x7c4da2fa84        <unknown> + 533878471300
    23  libart.so                       0x7cc020a044        <unknown> + 535799308356
    24  base.odex                       0x7c4da2fb0c        <unknown> + 533878471436
    25  libart.so                       0x7cc020a748        <unknown> + 535799310152
    26  base.odex                       0x7c4da2f794        <unknown> + 533878470548
    27  libart.so                       0x7cc02098d4        <unknown> + 535799306452
    28  base.odex                       0x7c4da2f67c        <unknown> + 533878470268
    29  boot-framework.oat              0x713b1df0          <unknown> + 1899699696
    
    
    
    EOF
    

    Update 9/10 another trace:

    https://sentry.io/share/issue/f160e0c94bd7487097d9b5261d990beb/

    bug help wanted 
    opened by maxkrieger 0
Releases(v1.24.1)
Call Kit is a prebuilt feature-rich call component, which enables you to build one-on-one and group voice/video calls into your app with only a few lines of code.

Call Kit (ZegoUIKitPrebuiltCall) Call Kit is a prebuilt feature-rich call component, which enables you to build one-on-one and group voice/video calls

ZEGOCLOUD 9 Dec 26, 2022
WooCommerce App template that uses Flutter. Integrated to work with WooCommerce stores, connect and create an IOS and Android app from Flutter for IOS and Android

WooCommerce App: Label StoreMax Label StoreMax - v5.3.1 Official WooSignal WooCommerce App About Label StoreMax Label StoreMax is an App Template for

WooSignal 314 Jan 9, 2023
This is the code for the POAPin app, which is written in Flutter and currently supports iOS, Android, and Web platforms.

POAPin This is the code for the POAPin app, which is written in Flutter and currently supports iOS, Android, and Web platforms. ?? Get the app Platfor

Glory Lab 17 Nov 7, 2022
A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter

Klutter A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter Background This is a project

Mark Winckle 58 Dec 7, 2022
Flutter tableview - A flutter widget like iOS UITableview. let listView with section header and each section header will hover at the top.

中文 flutter_tableview A flutter widget like iOS UITableview. let listView with section header and each section header will hover at the top. Installing

null 41 Jul 22, 2022
A iOS like table view including section, row, section header and divider

flutter_section_table_view A iOS like table view including section, row, section header and divider Support both Android and iOS Support drop-down ref

刘彦博 73 Nov 4, 2022
A ListView that allows you to group list items and support headers like iOS UITableView section.

GroupListView package for Flutter. A ListView that allows you to group list items and support headers like iOS UITableView section. Features List Item

Daniel Ioannou 73 Nov 21, 2022
A Flutter package of datepicker like Holo Theme in Android

flutter_holo_date_picker A Flutter package of Datepicker inspired by the Holo Theme in Android. Getting Started This plugins displays a Datepicker ins

Kfir Matityahu 48 Nov 28, 2022
Megalinks is an android app where we provide free resources available for video editing, like Scenepacks, project files of the big editor, tutorials, etc...

MegaLinks Megalinks is an android app where we provide free resources available for video editing, like Scenepacks, project files of the big editor, t

Vishal Rajesh Karangale 3 Jul 8, 2022
Sibyl App written with Dart/Flutter. (My first experience in writing a real android app in flutter).

sibyl_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if thi

ALi.w 3 Feb 17, 2022
Android App written with Flutter/Dart to navigate medium.com without limitations.

Medium Unlimited An Android application written with Flutter/Dart to read medium.com without limitations. Features Read medium without reading limits

null 29 Dec 22, 2022
This is the Zuri Chat Android app project repository handled by TEAM SOCRATES, written with pure Flutter.

Zuri Chat Overview This is the Zuri Chat Android app project repository handled by TEAM SOCRATES, written with pure Flutter. NB: Always contact Team l

Zuri Chat 32 Nov 22, 2022
A wrapper around our Cocoa and Java client library SDKs, providing iOS and Android support for those using Flutter and Dart.

Ably Flutter Plugin A Flutter plugin wrapping the ably-cocoa (iOS) and ably-java (Android) client library SDKs for Ably, the platform that powers sync

Ably Realtime - our client library SDKs and libraries 46 Dec 13, 2022
Flutterbodydetection - A flutter plugin that uses MLKit on iOS/Android platforms to enable body pose and mask detection using Pose Detection and Selfie Segmentation APIs for both static images and live camera stream.

body_detection A flutter plugin that uses MLKit on iOS/Android platforms to enable body pose and mask detection using Pose Detection and Selfie Segmen

null 18 Dec 5, 2022
A Flutter package for simple and easy to use actions like buttons, checkboxes and switches.

Easy Actions Overview A Flutter package for simple and easy to use actions like buttons, checkboxes and switches. Features Elevated Button Outlined Bu

Ashish Bhakhand 3 Jun 25, 2022
A fully-featured Last.fm client and scrobbler with Shazam-like scrobbling, a collage generator, home screen widgets, and more!

Finale A fully-featured Last.fm client and scrobbler with Shazam-like scrobbling, a collage generator, and more! The app is available on iOS, Android,

Noah Rubin 66 Jan 5, 2023
Deepak Sharma 149 Dec 10, 2022
A beautiful, secure and simple authenticator app that supports multiple protocols and services. Free and open source. Written in Flutter and Dart.

OpenAuth A beautiful, secure and simple authenticator app that supports multiple protocols and services. Free and open source. Written in Flutter and

Isaiah Collins Abetong 31 Oct 5, 2022
Flutter simple image crop - A simple and easy to use flutter plugin to crop image on iOS and Android

Image Zoom and Cropping plugin for Flutter A simple and easy used flutter plugin to crop image on iOS and Android. Installation Add simple_image_crop

null 97 Dec 14, 2021