WikiProject remote event participation/Documentation/Wikipedia 20th Birthday Global Celebration - live translation in Italian

Overview of Open Broadcaster Software in action.
Schema of a professional-like low-cost remote realtime interpreter flow with PulseAudio for realtime feedback in headphones.
Title of the event
Realtime translation of the "Wikipedia's 20th birthday party" (from English to Italian)
Date
January, 15, 2021
Organizers
Wikimedia Italia and their current Tech Boost team.
More info
(Italian) https://diff.wikimedia.org/it/2021/01/13/sei-invitato-al-20o-compleanno-di-wikipedia/
Video

Format of the event edit

Main format
realtime translation
Duration
1 hour
Main goal
Allow the participation of a local community in an international event.
Main target audience
Italian-speaking Wikimedians.
Total number of participants
not estimated before the event but about ~100 effective.
Number of organizers
1
Language(s) spoken during the event
Source language: English translated in real-time in Italian.
Tools used
  • Debian GNU/Linux as operating system for the laptop but whatever GNU/Linux distribution would be fine.
  • Pulseaudio and its volume control pavucontrol (Q104876454). They are pre-installed in Debian-based distributions. This is not necessary to pipe the output of BigBlueButton as input for Open Broadcaster Software, but it's useful to reproduce a professional-like realtime feedback in headphones, which is usually done with dedicated hardware in recording studios.
Communication

Lessons learned edit

Success edit

We were successfully able to do a live-translation using free software and with a very low budget.

  • prepared in very few time (2-3 days) (!)
  • it was free software from the point of view of the director (using OBS)
  • it was free software from the point of view of the interpreter (using BigBlueButton)
  • it was free software from the point of view of the viewers (workaroud: using Invidious)

Challenges edit

  • video director with hear in the headphones of the exact copy of the audio that will go live (in real-time)
    → this professional feature can be covered by GNU/Linux and PulseAudio (but it's not really necessary, just a bonus point to have everything under control)
  • censor a Zoom trademark in real-time (!)
    → it was of little use to prepare OBS scenes in advance: stay ready for the last minute surprise!
  • organize in the meanwhile a foolish "outdoor cinema" for a localized Wikipedia 20!

Possible improvements edit

  • ask upstream (in this case, Wikimedia Foundation) to do not provide only a stream on YouTube (even if Invidious exists)
    https://www.gnu.org/philosophy/whats-wrong-with-youtube.en.html - warnings on YouTube
  • ask upstream (in this case, Wikimedia Foundation) to do not adopt Zoom or other proprietary software applying weird trademarks or spamming proprietary software
    → censoring a trademark in realtime for Wikimedia Italia turned out quite daring/unprofessional (visitors noticed the video director hot-playing with OBS masks)

Recommendations edit

  • contact the official source to make sure if they will put any useful information on the video and where (like speaker name).
  • if it's an important event you can use three computers like we did:
    • one for the primary streaming
    • another as backup streaming
    • and another for monitoring
  • if you can, setup a backup video direction with another Internet source and different power supply (e.g. uninterruptible power supply)

Other comments edit

Also note that using Open Broadcaster Software is super-easy nowadays.

Documentation edit

 
Overview of pavucontrol, with Chromium playing in a Pulseaudio NULL sink interface.
 
Overview of pavucontrol, with OBS recording from the Pulseaudio NULL sink monitor interface.

Overview:

PulseAudio configuration:

#
# Create a NULL sink
#
# Note: this can be used to capture browser's output
# Note: this creates also an internal 'BrowserOut.monitor' for its output
# Note: as default you cannot listen to it (you need a loopback)
pactl load-module module-null-sink sink_name=BrowsersOut

#
# Create a loopback for the above NULL sink
#
# Note: this allow to listen it in your speaker/headphones
pactl load-module module-loopback  source=BrowsersOut.monitor

#
# Assign a nice description for my NULL sink
#
# Note: without this, in pavucontrol you will see weird things
#
pacmd update-sink-proplist   BrowsersOut         device.description=BrowsersOut
pacmd update-source-proplist BrowsersOut.monitor device.description=BrowsersOut.monitor

PulseAudio documentation:

https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/

Configuration in pavucontrol (Q104876454):

Questions & discussions edit

If you want to talk to the the organizers, ask further questions, feel free to use the talk page.

External links edit