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 SoundScripter directory
cd SoundScripter
-
Make sure to change the file permission, if not done already
chmod +x scripts/build.sh scripts/check-requirements.sh
-
Check the requirements
sh scripts/check-requirements.sh
or
make check-requirements
-
Build and run the application
sh scripts/build.sh
or
make run
-
After the successful build your app will be up and running and you can access it via
http://localhost:3000
. -
Clean and remove the running application
docker-compose -f docker-compose.yml down --remove-orphans
or
make clean
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.