# Barta
**Note:** This documentation has been prepared to keep track of the idea & progress of this platform while developing, and it is by no means a finilized documentation. The requirements and functionalities may change from time to time.
## What is Barta?
Barta is a data collection platform developed by [Bengali.AI](https://www.facebook.com/bengaliAI/) for the purpose of creating video based [sign language](https://en.wikipedia.org/wiki/Sign_language) datasets. It is mainly tagreted towards the continuous sign language. It provides data collection, validation and annotation features supported for various languages. It is inspired by the [Mozilla Common Voice](https://commonvoice.mozilla.org/) project.
## Features
1. Text upload
2. Video validation
3. Video recording (data collection)
4. Video annotation (**not** planned yet)
5. Multilingual support (**not** planned yet)
### Terminalogies
* **start time:** The time from which the video should start.
* **end time:** The time at which the video should stop.
* **lighting:** The lighting condition while recording the video.
* **camera view:** The angle/side from which the video was recorded (right, left, front, etc).
**Sign in:** Users **must** use gmail to sign in (*Sign in using Google*) to use **any** of the platform's features. When users sign up for the first time, we will provide them an additional form to input some basic information such as their age, gender etc.
### Text Upload
At first, texts must be uploded to the server for which users will create sign language video recordings. This will be done through the admin panel, by uploading a *CSV* file. The file will contain the texts themselves as well as some other information such as the language, topic, etc. During the recording, users will be given these texts based on some specific parameters such as how often has the text appeared, the up vote and down vote ratio, etc.
**Note:** The admin panel section & text randomization has not been finilized yet.
### Video Recording
In the video recording section, users will be provided with an in built video recorder. The users will be given a text (one or more sentences or a topic) for which they will record a video in [sign language](https://en.wikipedia.org/wiki/Sign_language). After recording the video, the platform will automatically switch to a video player form where the users can preview their recorded video. Along with other details of the video, the users can set the [start time](###Terminalogies) and [end time](###Terminalogies) to remove the unnecessary parts (such as moving the hand forward to start or end the recording). If a mistake is made during recording, the users will have the choice of keeping the video or discarding it. If the video is discarded, users will be prompted to record the video again. Otherwise, users will be provided with a form where they **must** fillup some the necessary video details such as lighting information, camera view, resolution etc. After submitting all the required fields the platform will upload the video to the server and store the information against the users' account that was used while recording the video.
### Video Validation
The validation is divided into two sections; one after video recording and another after annotation.
In the validation section, users will be provided with a video, it's corresponding text and other information that was provided during the video recording section. The users will be able to play the video and provide a feedback whether the video is correct or not in accordance to the text. Users will also be able to edit the start time, end time, view, lighting and other information if they find it wrong.
The validation after video recording will not include any text. However, the validation after annotation has been added will include the corresponding text as a subtitle.
<img align="center" width="100%" height="100%"
src="https://drive.google.com/uc?export=view&id=1mJRqec5weV0ryRB3I4uYznIUNsXe5f-O">
Here the side buttons are to switch between different section of the webpage (Switch between features)
1. Users can carry out basic video player funtionalities including play, pause, download, picture-in-picture, playback speed, turning on/off subtitles, etc.
2. The relevant information for the videos described above will be shown here.
3. Here, the user can switch locales. Only Bangla and English are supported at the moment. Later, when we add support for several languages, it will be changed to a selectable dropdown.
4. The toolbox below manages a number of crucial features:
* Up-vote/Down-vote
* Show next/previous video
* Edit video details like lighting, start time etc (Image 2)
<img align="center" width="100%" height="100%"
src="https://drive.google.com/uc?export=view&id=1uK8BAXIn22T3t0z8HTizfTCkfIGik43H">
### Video Annotation
We will provide a section where the user can provide a sentence/word/phrase with specific timestamp and later it will be converted into a ".srt" or ".vtt" file (not fixed yet) and it will show text as a subtitle to that video according to the timestamp that was given.
**Note:** This feature has not been implemented yet into the demo of the platform.
### Multilingual Support
The platform **will** support data collection, validation and annotation for multiple languages. Unsupported languages can be requested to add support.
### A short demostration of this idea
<div style="position: relative; padding-bottom: 56.25%; height: 0;"><iframe src="https://www.loom.com/embed/143dae8c0ab14527ac5b75afc70b5510" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div>