Dev.to AI πŸ€– Ai πŸ‘ 0 πŸ“– 2 min read

Hour-long voice notes don't fit in an email, so I stopped sending them

Email Me does one thing: it sends a note to your own inbox. For years, a voice note was simply an audio file attached to that email. And that worked fine, until people started asking me to record meetings and lectures πŸ˜…

Hour-long voice notes don't fit in an email, so I stopped sending them

Email Me app icon

Email Me does one thing: it sends a note to your own inbox. For years, a voice note was simply an audio file attached to that email. And that worked fine, until people started asking me to record meetings and lectures πŸ˜…

The 25 MB wall

Most email providers cap attachments at around 25 MB, and some of them strip or bounce big ones. An hour of speech at the app's old "high" setting (AAC mono at 22 kHz) is about 22 MB. That's already at the limit before any other attachment. On top of that, the recorder had a hard 5-minute cap in AVAudioRecorder, on both iPhone and Apple Watch.

A bigger attachment wasn't the answer. The real fix was to separate the audio from the email.

Audio as an asset, email as a notification

So I changed the rule: a recording is a durable file on the server, and the email just tells you about it.

  • The app uploads the audio to the server and gets back a URL. The link can be password-protected.
  • The email carries that link and the transcript, instead of the file.
  • Recordings also stay on the device, in a Core Data library with a full player: waveform, scrubbing and 0.75–2Γ— speed.
  • The Apple Watch uploads through a background URLSession, so a long recording still arrives after you lower your wrist.

Two transcription engines

The transcripts come from two places:

  1. On-device, live: SpeechAnalyzer on iOS 26, and SFSpeechRecognizer on older versions, so you see the words while you record.
  2. Server-side, final: Whisper produces the transcript that goes into the email. Hour-long recordings usually finish in about 30 seconds.

Funny enough, the trickiest bugs were about language, not audio. The transcript language you pick in the settings had to match on iPhone, Apple Watch and CarPlay. Now the Watch gets the language from the iPhone automatically, so a setting you chose months ago still applies.

Email Me App Store screenshots

What I'd tell my past self

  • Treat email as a notification channel, never as storage.
  • Give long-running work its own background path from day one, especially on watchOS.
  • Put the transcription result in the email itself. When something fails, users can tell you about it instead of guessing.

Email Me is on version 7.15 now, ten years after version 1.0. Still going πŸ’ͺ

Get Email Me on the App Store β†’

Website: emailmeapp.net

Thanks for reading! If you've dealt with long audio on iOS, I'd love to hear how you solved it. Drop a comment πŸ™‚

The personal story behind this app, and why I built it in the first place, is on my newsletter: manuelescrig.substack.com.

Manuel

πŸ“° Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.