Speakr
Docker app from learnedmachine's Repository
Overview
Speakr is a self-hosted AI transcription and intelligent note-taking platform. Transform your audio recordings into organized, searchable, and intelligent notes with speaker identification, AI chat, semantic search, and collaboration features.
Key Features:
- AI-powered transcription with speaker identification
- Voice profiles for automatic speaker recognition
- Interactive chat with your recordings
- Semantic search across all recordings (Inquire Mode)
- Internal sharing and group collaboration
- Smart tagging with custom AI prompts
- Auto-deletion and retention policies
- Automated export to Obsidian/Logseq
- Full internationalization (EN, ES, FR, DE, ZH)
- Light/dark themes with customizable colors
IMPORTANT: Requires API keys for OpenAI/OpenRouter or local AI services for transcription and text generation.
Requirements
Before starting, you MUST configure API keys:
1. Create a .env file or use environment variables
2. Set TEXT_MODEL_API_KEY (OpenRouter or OpenAI)
3. Set TRANSCRIPTION_API_KEY (OpenAI Whisper)
4. Set ADMIN_USERNAME and ADMIN_PASSWORD
See the GitHub documentation for complete setup instructions.
Runtime arguments
- Web UI
http://[IP]:[PORT:8899]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Web interface port
- Target
- 8899
- Default
- 8899
- Value
- 8899
Storage for uploaded audio files
- Target
- /data/uploads
- Default
- /mnt/user/appdata/speakr/uploads
- Value
- /mnt/user/appdata/speakr/uploads
Database and application state
- Target
- /data/instance
- Default
- /mnt/user/appdata/speakr/instance
- Value
- /mnt/user/appdata/speakr/instance
Exported transcriptions (for Obsidian, etc.)
- Target
- /data/exports
- Default
- /mnt/user/appdata/speakr/exports
- Value
- /mnt/user/appdata/speakr/exports
Watch directory for automatic file processing
- Target
- /data/auto-process
- Default
- /mnt/user/appdata/speakr/auto-process
- Value
- /mnt/user/appdata/speakr/auto-process
API key for OpenRouter or OpenAI (required for summaries)
- Target
- TEXT_MODEL_API_KEY
API endpoint for text generation
- Target
- TEXT_MODEL_BASE_URL
- Default
- https://openrouter.ai/api/v1
- Value
- https://openrouter.ai/api/v1
Model name for text generation
- Target
- TEXT_MODEL_NAME
- Default
- openai/gpt-4o-mini
- Value
- openai/gpt-4o-mini
OpenAI API key for Whisper transcription (required)
- Target
- TRANSCRIPTION_API_KEY
Whisper API endpoint
- Target
- TRANSCRIPTION_BASE_URL
- Default
- https://api.openai.com/v1
- Value
- https://api.openai.com/v1
Whisper model to use
- Target
- WHISPER_MODEL
- Default
- whisper-1
- Value
- whisper-1
Initial admin username
- Target
- ADMIN_USERNAME
- Default
- admin
- Value
- admin
Initial admin email
- Target
- ADMIN_EMAIL
- Default
- admin@example.com
- Value
- admin@example.com
Initial admin password (CHANGE THIS!)
- Target
- ADMIN_PASSWORD
Allow new user registration (true/false)
- Target
- ALLOW_REGISTRATION
- Default
- false
- Value
- false
Timezone for date/time display (e.g., America/New_York)
- Target
- TIMEZONE
- Default
- UTC
- Value
- UTC
Logging level: DEBUG, INFO, WARNING, ERROR
- Target
- LOG_LEVEL
- Default
- INFO
- Value
- INFO
Maximum tokens for AI summaries
- Target
- SUMMARY_MAX_TOKENS
- Default
- 8000
- Value
- 8000
Maximum tokens for chat responses
- Target
- CHAT_MAX_TOKENS
- Default
- 5000
- Value
- 5000
Split large files for API limits (true/false)
- Target
- ENABLE_CHUNKING
- Default
- true
- Value
- true
Chunk size limit (e.g., 20MB or 1200s)
- Target
- CHUNK_LIMIT
- Default
- 20MB
- Value
- 20MB
Overlap between chunks in seconds
- Target
- CHUNK_OVERLAP_SECONDS
- Default
- 3
- Value
- 3
Enable AI-powered semantic search across recordings (true/false)
- Target
- ENABLE_INQUIRE_MODE
- Default
- false
- Value
- false
Watch directory for automatic file processing (true/false)
- Target
- ENABLE_AUTO_PROCESSING
- Default
- false
- Value
- false
Processing mode: admin_only, user_directories, or single_user
- Target
- AUTO_PROCESS_MODE
- Default
- admin_only
- Value
- admin_only
Check interval for new files (seconds)
- Target
- AUTO_PROCESS_CHECK_INTERVAL
- Default
- 30
- Value
- 30
Automatically export transcriptions to markdown (true/false)
- Target
- ENABLE_AUTO_EXPORT
- Default
- false
- Value
- false
Include transcription in exports (true/false)
- Target
- AUTO_EXPORT_TRANSCRIPTION
- Default
- true
- Value
- true
Include summary in exports (true/false)
- Target
- AUTO_EXPORT_SUMMARY
- Default
- true
- Value
- true
Enable automatic deletion of old recordings (true/false)
- Target
- ENABLE_AUTO_DELETION
- Default
- false
- Value
- false
Days to retain recordings (0 = disabled)
- Target
- GLOBAL_RETENTION_DAYS
- Default
- 90
- Value
- 90
Deletion mode: audio_only or full_recording
- Target
- DELETION_MODE
- Default
- audio_only
- Value
- audio_only
Allow users to delete their own recordings (true/false)
- Target
- USERS_CAN_DELETE
- Default
- true
- Value
- true
Enable user-to-user sharing (true/false)
- Target
- ENABLE_INTERNAL_SHARING
- Default
- false
- Value
- false
Display usernames in interface (true/false)
- Target
- SHOW_USERNAMES_IN_UI
- Default
- false
- Value
- false
Allow public share links (true/false)
- Target
- ENABLE_PUBLIC_SHARING
- Default
- true
- Value
- true
Database connection string
- Target
- SQLALCHEMY_DATABASE_URI
- Default
- sqlite:////data/instance/transcriptions.db
- Value
- sqlite:////data/instance/transcriptions.db
Download Statistics
Total Downloads Over Time
Details
learnedmachine/speakrRun Speakr on Unraid.
Speakr is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.