Skip to content

Softcatala/transcribe-service

Repository files navigation

Introduction

The transcribe-service provides the following functionality:

  • Receives files and creates a priortized queue to serve them
  • Notifies by email when file is ready or it has been error
  • Provides an estimated time for the file to be ready

The requirements of the system is to process a file at the time, a maximum 100 files in queue to be processed and ability to easily to change the transcribe tool and models that we use.

Description of system

The transcribe web service exposes the POST method /transcribe_file/. From the web site, the user sends an audio or video that they want to transcribe. This file is then stored in queue that is processed by order of arrival. Once the processing finished, an email is sent to the user to download the resulting files.

Queue

This is a priority queue implemented on top of the fileystem.

The files to be processed by the queue are stored in /srv/files/ and a entry in /srv/entries/ is created with the information received on the POST. Once the files are transcribed the results are stored into /srv/processed for the user to pick resulting files. The web services exposes the method get_file which then serves files from the processed directories.

Elements on the processed directory are purged after certain amound of time.

Running the system locally using Docker

This requires that you have docker, docker-compose and make installed in your system.

First build by running:

 make build-all

Once the system is built, you can run it typing:

docker-run

And open http://localhost:8700/stats to verify that the service works.

Also in the html-client directory you have a simple HTML client to test the service.

Updating faster-whisper dependency

Updating dependencies to a newer version or test new models.

Then run the benchmark:

make benchmark-run

And make sure that there is no regression in WER (precision) or time (latency) in the results.json file.

Contact

Email address: Jordi Mas: [email protected]