Simplify and Automate your transcription workflow with SoundScripter
- Media Transcription: Convert media files (audio/video) to text with high accuracy.
- Scalable: Utilizes a distributed architecture to handle multiple requests in parallel.
- Real-time Notifications: Uses Redis Pub-Sub and Server-Sent Events (SSE) for real-time notifications
SoundScripter's architecture is designed to handle transcription requests efficiently. Here's how it works:
-
User Requests: Users uploads video/audio files for transcription through API.
-
Optimization: Media files are optimized to be utilized for transcription service.
-
RabbitMQ Message Broker: Transcription requests are added to the RabbitMQ message broker.
-
Celery Task Queue: Celery task queues manages and distribute the tasks. When new tasks are added to the queue, Celery workers pick them up and process them asynchronously and concurrently.
-
Task Execution: Each task runs in its own container, allowing for parallel processing of multiple tasks based on the system configuration.
-
Realtime Notifications: SoundScripter leverages Redis Pub-Sub and Server-Sent Events (SSE) for real-time notifications.
To run SoundScripter locally or in a server environment, follow these steps:
-
Clone this repository to your local machine
git clone https://github.com/hitesh22rana/SoundScripter.git
-
Navigate to the backend directory
cd backend
-
Configuration
- You can configure various settings, such as RabbitMQ connection details and task priorities, in the
docker-compose.yml
files. - Environment variables are stored in
.env
. Refer.env.example
for a template of the required variables. Make sure to create a.env
file with your specific configuration before running the application.
- You can configure various settings, such as RabbitMQ connection details and task priorities, in the
-
Requirements Check
Before running the application, it's important to ensure that system meets the essential requirements in order to run the application. You can use the
check-requirements.sh
script to verify this:./check-requirements.sh
-
Build and run the application
i. First build the transcription service
docker build -t transcription-service -f Dockerfile.transcription-service .
ii. Now, run the docker-compose file to bind all the services
docker-compose -f docker-compose.yml up
-
Now you backend is up and running and you can access the API docs at
http://localhost:8000/docs
.
We welcome contributions to improve SoundScripter. Feel free to open issues, submit pull requests, or reach out with your ideas.
This project is licensed under the MIT License - see the LICENSE file for details.