Skip to content

Latest commit

 

History

History
125 lines (95 loc) · 4.81 KB

README.md

File metadata and controls

125 lines (95 loc) · 4.81 KB

Scriberr

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.

Features

  • 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.

Demo and Screenshots

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

CleanShot 2024-10-04 at 14 42 54@2x CleanShot 2024-10-04 at 14 48 31@2x CleanShot 2024-10-04 at 14 49 08@2x CleanShot 2024-10-04 at 15 11 27@2x

Installation

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>
      - [email protected]
      - POCKETBASE_ADMIN_PASSWORD=password
      - REDIS_HOST=127.0.0.1
      - REDIS_PORT=6379
      - SCRIBO_FILES=/scriberr
    volumes:
      - ./pb_data:/app/db
      - ./scriberr:/scriberr

Full Local Stack

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.

Planned Features

  • 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

Known Bugs

  • First app load will load a blank 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

Note

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.