ftlabs/transcription-service is a open-source project on GitHub, written primarily in JavaScript. It has 61 stars. A Node.js server that accepts audio/video files and transcribes the content
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Time-based transcriptions of media content, powered by Google's Speech APIs
This service currently lives on Heroku.
Media Formats
This service can transcribe the following media formats:
mp4
wav
mp3
ogg
m4a
mxf
Any files sent to the service for transcription must not be larger than 419430400 bytes (40 mb). If a file is uploaded/a resource is passed to the service, and it is too big, the transcription will not be performed.
Usage
There are two ways to start a transcription:
You can pass a file to /transcribe as binary data
You can pass a URL that points to a valid media file
In order to start a transcription, you must obtain a token to include in your request as a query parameter
Acquiring A token
Tokens can only be created by FT staff.
To create a token head to /token/generate.
This endpoint is protected by S3O. If authentication is successful, you'll receieve a JSON response containing your token, and your S3O username.
{
token: "VALID_TOKEN",
owner: "your.name"
}
For every other endpoint, this token must be included as a query parameter ?token=VALID_TOKEN.
Posting a file for transcription
You can upload a file for transcription like so:
curl --request POST --data-binary "@file_to_transcribe.mp3" https://ftlabs-transcription.herokuapp.com/transcribe?token=VALID_TOKEN
Passing a resource for transcriptions
You can also point the transcription service to a valid resource on the internet for transcription. These files mist be publically accessible, and are still subject to the same constraints as files that are uploaded for transcription.
You can pass a url pointing to the resource for transcription like so:
This will not trigger a new transcription, it will rearrange the existing data into the VTT format.
WEBVTT
1
00:00:00.000 --> 00:01:86.000
This is just a short
2
00:01:86.000 --> 00:03:18.000
demo of the transcription service
Languages
The transcription service can transcribe files with different languages in them (though it cannot distinguish between more than one language per file). Telling the service which language the media file you wish to have transcribed predominantly features will likely improve the quality of that transcription.
By default, all media files are assumed to be British English, and will be transcribed as such.
To specify a language to be used in the transcription process, pass the language code with a query parameter when you make a request to the transcribe endpoint.
?token=[VALID_TOKEN]&languagecode=en-us
For a list of supported language codes, refer here.
Process
The process for transcribing the content is as follows:
The passed media file is converted into a WAV file
If the converted wav file is longer than 30 seconds, it is divided into 30 second chunks.
Each 30 second chunk is transcribed with the Google Speech API
When all transcriptions have completed, they are concatenated to form a transcript of the original WAV file in its entirety.
The original WAV file is then split according at each point of silence (< -20DBs) detected in the audio that is more than 0.2s long.
if no silences are detected, the WAV file is divided into equal 4 second long chunks
If the time between silences (a clip) is longer than 8 seconds, the clip is divided into 4 second chunks
These individual chunks are then transcribed with the same settings that were used to transribe the 30 second chunks earlier in the process. Each chunk has the combined transcript of the original WAV file passed along with it as a 'phrase' to help the Google Speech API determine what each chunk is supposed to say.
On completion of the transcriptions for each chunk, the data is returned to the client.
TopGit's last sync did not record any GitHub topics for ftlabs/transcription-service. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on ftlabs/transcription-service?
The most recent commit recorded on ftlabs/transcription-service was 5.5 years ago, based on the GitHub push timestamp. The repository has 15 forks — one of the better signals of community interest.
How many stars does ftlabs/transcription-service have?
ftlabs/transcription-service has 61 GitHub stars — refresh the page for the live number, or check github.com/ftlabs/transcription-service. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is ftlabs/transcription-service written in?
ftlabs/transcription-service is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
Where can I see ftlabs/transcription-service in action?
The project maintains a homepage at https://ftlabs-transcription.herokuapp.com/. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about ftlabs/transcription-service?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/ftlabs/transcription-service is the definitive source.
Read full README in the tab above.
Still deciding about transcription-service?
One click hands the question to an AI along with this page — see what it says about transcription-service.