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 OpenAI's ChatGPT API, with your own custom prompts. Summarization using ollama is also supported.
- 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
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
- Audio recording functionality
- File actions - rename, delete
- Full text fuzzy search
- Tag based organization system
- Follow along text with playback
- Edit summaries
- Export options
- Support for other languages
- First app load will fail due to missing database. Reloading will fix it.
- Requires page refresh to load audio for newly transcribed files
- Automatic update of processed files is finnicky and might require a page refresh for update
This is a beta app in development, so expect a few rough edges and minor bugs. The app is functional and should for the most part be usable barring the need to refresh the page at times for the UI to update state.
If you like this project I would really appreciate it if you could star this repository.