Skip to main content

What is Voice Journaling?

Voice Journaling transforms spoken memories into written stories using AI transcription. Simply tap to record, speak naturally, and watch your words appear as text—no typing required. Every recording is processed through ElevenLabs Scribe AI for accurate, multi-language transcription.

Why Use Voice Journaling?

Natural & Fast

Capture thoughts 3x faster than typing. Perfect for recording moments as they happen.

Hands-Free

Record while walking, cooking, or relaxing. No keyboard needed.

Multi-Language

Supports English and multiple languages with automatic detection.

Noise Cancellation

Built-in echo cancellation and noise suppression for clear recordings.

How to Record a Story

1

Start Recording

Navigate to the Record page and tap the large microphone button. Grant microphone permissions if prompted.
The button glows with animated rings while recording to show you’re live.
2

Speak Your Story

Talk naturally and clearly. The recording duration appears in real-time (MM:SS format).Recording Tips:
  • Speak at a moderate pace
  • Find a quiet environment
  • Hold phone/device 6-12 inches from your mouth
  • Pause briefly between thoughts for better segmentation
3

Stop Recording

Tap the microphone button again (now showing a square icon). Your audio is automatically sent for transcription.
Transcription starts immediately after you stop—no extra button needed.
4

Review Transcription

The transcribed text appears in the Content section below. You can:
  • Edit the text manually if needed
  • Enhance it with AI grammar/flow improvements
  • Read it aloud using text-to-speech
5

Add Details

Before saving:
  • Title: Add a descriptive title (auto-suggested based on date)
  • Date: Set the memory date (backdate to when it actually happened)
  • Visibility: Choose Private (vault-encrypted) or Public (visible on feed)
6

Save to Blockchain

Tap Save Privately or Publish & Save. Your story is:
  • Uploaded to IPFS (permanent decentralized storage)
  • Saved to Supabase (cloud database with metadata)
  • Encrypted in Local Vault (if vault is unlocked)
  • Pinned with your wallet address as author proof

Recording Interface Walkthrough

Microphone Button States

StateVisualAction
IdleBlue gradient with soft glowTap to start recording
RecordingRed background with pulsing ringsTap to stop recording
ProcessingDisabled (grayed out)Transcription in progress

Audio Specifications

Format: WebM audio
Sample Rate: 16kHz (optimized for voice)
Max File Size: 25MB per recording
Quality: Echo cancellation + noise suppression enabled

Draft Auto-Save

Your work is automatically saved to sessionStorage every 500ms. If you accidentally close the tab, your draft will be restored when you return to the Record page.

Advanced Features

Click Read Aloud to hear your transcribed story using the browser’s built-in speech synthesis. Useful for:
  • Proofreading by ear
  • Accessibility (visually impaired users)
  • Multi-tasking while reviewing
The Date of Memory field lets you set when the story actually happened (not when you recorded it). Two timestamps are preserved:
  • story_date: User-selected memory date
  • created_at: Actual upload timestamp
This enables accurate timeline visualization in your library.
Original audio files are stored in Supabase Storage and linked to your story. The has_audio flag in metadata indicates audio availability. Audio URLs are private—only you can access them.

Supported Audio Formats

The transcription API accepts:
  • audio/webm (default from browser recorder)
  • audio/wav
  • audio/mp3, audio/mpeg
  • audio/ogg
  • audio/flac
  • audio/m4a, audio/mp4
Maximum file size is 25MB. Recordings exceeding this limit will be rejected with a 400 error.

Troubleshooting

”Failed to access microphone”

Solution: Grant microphone permissions in your browser:
  • Chrome/Edge: Click the lock icon in the address bar → Site settings → Microphone → Allow
  • Safari: Safari menu → Settings → Websites → Microphone → Allow
  • Firefox: Click the microphone icon in address bar → Allow

”Transcription returned empty result”

Causes:
  • Recording was too short (< 1 second)
  • Audio quality too poor (high background noise)
  • Silence throughout recording
Solution: Re-record in a quieter environment and speak clearly.

Recording cuts off unexpectedly

Solution: Check that your browser tab stays active. Some browsers pause media recording when the tab is backgrounded.

Privacy & Security

Your voice data is processed securely:
  • Audio is sent directly to ElevenLabs Scribe API (no server storage during processing)
  • Transcription happens in encrypted transit (HTTPS)
  • Original audio stored in Supabase with RLS (Row-Level Security)
  • Only you can access your audio files via authenticated API routes

Next Steps

After recording your first story:

AI Enhancement

Polish your transcription with AI grammar and style improvements

Cognitive Insights

Extract themes, emotions, and patterns from your stories

Local Vault

Encrypt private stories with military-grade AES-256 encryption

Blockchain Storage

Understand how your stories are permanently stored on IPFS

Build docs developers (and LLMs) love