Skip to content

ScribeRelay: A self-hostable web service and API for audio transcription. Based on the excellent Buzz project.

License

Notifications You must be signed in to change notification settings

michaelborck-dev/scribe-relay

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ScribeRelay API

ScribeRelay is a self-hostable web service that provides a powerful REST API for audio transcription and translation. Powered by OpenAI's Whisper.

ScribeRelay adapts the powerful transcription engine of Buzz into a robust, API-first service. It allows developers to easily integrate state-of-the-art audio transcription into their applications without relying on third-party cloud providers.

Key Features

  • REST API: Simple, intuitive endpoints for submitting transcription tasks, checking status, and retrieving results.
  • Self-Hosted: Run the service on your own infrastructure for full control over data privacy and cost.
  • Asynchronous by Design: Handles long-running transcription jobs without blocking, making it suitable for scalable applications.
  • Powered by Whisper: Leverages OpenAI's Whisper models for high-quality transcription and translation across numerous languages.
  • Flexible Model Support: Easily switch between different Whisper model sizes (tiny, base, small, medium, large) to balance speed and accuracy.

Project Status

The main branch of this repository contains the original Buzz desktop application code. The ScribeRelay API service is currently under active development on the scribe-relay-api branch.

Running the API Service (In Development)

To test the new API service, you must check out the feature branch.

  1. Clone the repository:
    git clone [https://github.com/YOUR\_USERNAME/scribe-relay.git\](https://github.com/YOUR\_USERNAME/scribe-relay.git)
    cd scribe-relay

  2. Switch to the feature branch:
    git checkout scribe-relay-api

  3. Install dependencies and run the service:
    It's recommended to do this within a virtual environment.
    # Create and activate a virtual environment
    python -m venv venv
    source venv/bin/activate # On Windows, use `venv\Scripts\activate`

    # Install dependencies
    pip install -r requirements.txt

    # Run the service
    uvicorn api_service:app --reload

    Your ScribeRelay API will now be running and accessible at http://localhost:8000.

API Usage

You can interact with the API using any HTTP client. Here are some examples using curl.

POST /transcribe

Submit an audio file for transcription. This endpoint returns a task_id that you can use to track the job.

curl -X POST \
-F "file=@/path/to/your/audio.mp3" \
-F "req={\"model_type\": \"Whisper.cpp\", \"whisper_model_size\": \"tiny\"}" \
http://localhost:8000/transcribe

Successful Response (202 Accepted):

{
"task_id": "a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6",
"message": "Transcription task started."
}

GET /status/{task_id}

Check the status of a transcription job.

curl http://localhost:8000/status/a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6

Response:

{
"id": "a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6",
"status": "in_progress",
"progress": 0.75,
"error": null
}

GET /result/{task_id}

Retrieve the final transcription once the task status is completed.

curl http://localhost:8000/result/a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6

Response:

{
"id": "a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6",
"segments": [
{
"start": 0,
"end": 3250,
"text": "Hello, this is the first segment of the transcription."
},
{
"start": 3250,
"end": 6800,
"text": " And this is the second segment."
}
]
}

Acknowledgements

ScribeRelay is a fork of Buzz, an amazing offline transcription tool created by Chidi Williams. This project adapts the powerful core of Buzz into a self-hostable web service for developers.

We are immensely grateful to the original author for their work and for making it available to the community under an open-source license.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

ScribeRelay: A self-hostable web service and API for audio transcription. Based on the excellent Buzz project.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 92.9%
  • HTML 5.1%
  • Makefile 1.5%
  • Other 0.5%