This is Scriberr, a self-hostable AI audio transcription app. Scriberr uses the open-source Whisper models from OpenAI, to transcribe audio files locally on your hardware. It uses the Whisper.cpp high-performance inference engine for OpenAI's Whisper. Scriberr also allows you to summarize transcripts using ollama or OpenAI's ChatGPT API, with your own custom prompts. From v0.2.0 Scriberr supports offline speaker diarization.
- Fast transcription with support for hardware acceleration across a wide variety of platforms
- Customizable compute settings. Choose #threads, #cores and your model size
- Transcription happens locally on device
- Exposes API endpoints for automation pipelines and integrating with other tools
- Optionally summarize transcripts with ChatGPT or Ollama
- Use your own custom prompts for summarization
- Mobile ready
- Simple & Easy to use
- Speaker Diarization (New)
and more to come. Checkout the planned features section.
Note
Demo was run locally on my Macbook Air M2 using docker. Performance depends on the size of the model used and also number of cores and threads you assign. Was running a lot of things in the background and this is in dev mode so it's really slow.
CleanShot.2024-10-04.at.14.55.46.mp4
Scriberr can be deployed using Docker. Use the docker-compose shown below with your configuration values.
Under the directory or volume you are mapping to /scriberr
, please create the following 2 sub-directories,
audio
and transcripts
.
Warning
Make sure to create the sub-directories inside SCRIBO_FILES
as transcription will fail silently without that.
Important
On first load, the app will throw a 500 Error because the database collection hasn't been created. Please reload the page for the app to start working. This only happens on the very first run after install.
services:
scriberr:
image: ghcr.io/rishikanthc/scriberr:beta-0.2
ports:
- "3000:3000"
- "8080:8080" #Optionally expose DB UI
- "9243:9243" #Optionally expose JobQueue UI
environment:
- OPENAI_API_KEY=<reallylongsecretkey>
- POCKETBASE_ADMIN_EMAIL=admin@example.com
- POCKETBASE_ADMIN_PASSWORD=password
- REDIS_HOST=127.0.0.1
- REDIS_PORT=6379
- SCRIBO_FILES=/scriberr
volumes:
- ./pb_data:/app/db
- ./scriberr:/scriberr
To run all components locally, including Ollama in place of OpenAI, see docker-compose.ollama.yaml
.
$ mkdir -p .dockerdata/scriberr/audio .dockerdata/scriberr/transcripts
$ docker-compose -f docker-compose.ollama.yaml up
...
The app will be available in your browser: http://localhost:3000
Additionally, you can run the container against an external Ollama instance by passing in the appropriate values for these environment variables:
OPENAI_ENDPOINT=<ollama service api url>
OPENAI_MODEL=<the ollama model> # must already be pulled
OPENAI_ROLE=user
Warning
This will be very slow without an NVIDIA GPU to pass through.
Warning
If you have issues re-starting the stack (403: 'Only admins can perform this action.'
), clear the Auth token cookie.
- Speaker diarization for speaker labels
- File actions - rename, delete
- Provide multiple algorithms for speaker label corrections
- Hardware Acceleration setup wizard
- Youtube integration
- Subtitle generation
- Support for other languages
- Audio recording functionality
- Full text fuzzy search
- Tag based organization system
- Follow along text with playback
- Edit summaries
- Export options
- First app load will load a blank due to missing database. Reloading will fix it.
Requires page refresh to load audio for newly transcribed filesAutomatic update of processed files is finnicky and might require a page refresh for update
This app is under development, so expect a few rough edges and minor bugs. Expect breaking changes in the first few minor releases. Will smooth out and try to avoid it as best as I can
If you like this project I would really appreciate it if you could star this repository.