Real-Time Translation of Meeting Transcripts
This project is a tool for translating real-time transcripts of discussions during meetings in the Ilmenau-based student association FeM e.V. It is written in Python.
Description
Sometimes you might participate in meetings where a transcript is written in real-time by a human using a collaborative note-taking tool e.g. HedgeDoc or EtherPad. A single collaborative document written using such a tool is called pad. It then could be possible that you want to have the protocol translated into different languages. One possible reason is that there are participants that would like to read the protocol in real-time in another language than the one the protocol is written in.

The software reads the original protocol-pad and posts a translated version repeatedly into another pad. The translation is unidirectional. Words written into the translated version are not translated back into the original protocol-pad.
During a meeting, transcripts can be very large to send the whole transcript to a translation service for translating. The maximum number of words to be translated might be exceeded. On the other hand, it is not enough to just translate the lowest line of a document, because changes might occur anywhere in the document at any time. This is why a diff is calculated between two consecutive versions of the original pad to only translate the lines that changed.

At the time of development, LibreTranslate did not handle leading white spaces in the translation correctly as they were omitted in the translated version. This was a problem since indentation was an important syntactical component of bullet-point style note-taking. Therefore, this tool wraps the white-space handling around the translation service.
The software design enables for configuring different services for translation or for note-taking by defining the abstract classes Pad and Translate.

The BD student club in Ilmenau developed another solution for the same problem with focus on different aspects.
Installation and Usage
- Get the project:
$ git clone https://gitlab.fem-net.de/technik/protocol-translation-live.git
$ cd protocol-translation-live
$ cp example.conf config.conf
- Edit
config.confto fit your needs.
Currently it is only possible for the destination to be an etherpad instance. The source could be either a hedgedoc or an etherpad instance.
The pads themselves have to exist before you start the package
- Create a file named
api_keys.confin the project's root directory, using the template below and enter the API-Keys of the services you want to use.
[default]
etherpad_key = <etherpad-key>
libretranslate_key = <libretranslate-key>
- Create a venv to install the package in:
$ python3 -m venv venv
$ source venv/bin/activate
- install the package by typing
$ python3 setup.py install
- Now you can execute the package by typing
$ python3 protocol_translation_live