Skip to content

Interleace/mlts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

🎧 Multilingual Translation Setup Using a Gigaport HD+ USB Audio Interface

Easily create up to 8 Zoom instances and route their audio output to 8 mono channels using a Gigaport HD+ USB sound card. This setup enables simultaneous translation or multilingual broadcast capabilities.

This repository provides a set of scripts to simplify the process.


🧰 Requirements

  • ALSA
  • PulseAudio Required tools: pactl, qjackctl
  • JACK2 Required tool: jackd
  • Chromium
  • Devuan Linux (or compatible distro using openrc instead of systemd)
  • (Optional) Move the .sh scripts into ~/.local/bin/ or /usr/local/bin/ for easy execution

🔧 Hardware Test

1. Connect the Gigaport HD+

Then run the following command to verify the device and its channel capabilities:

cat /proc/asound/card1/stream0

Example output:

ESI Audiotechnik GmbH GIGAPort HD+ at usb-0000:00:1d.0-1.2, full speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S16_LE
    Channels: 8
    Endpoint: 0x01 (1 OUT) (ADAPTIVE)
    Rates: 44100
    Bits: 16
    Channel map: FL FR FC LFE RL RR FLC FRC

2. Run a speaker test:

speaker-test -c 8 -r 44100 -D hw:1,0

This will output pink noise through each of the 8 mono channels sequentially. You can watch the LED's blink.


⚙️ Setup

1. JACK Audio Routing

Run:

./setup_jack.sh

This will split the card’s stereo channels (Windows-style) into 8 mono sinks, labeled as zoom1 to zoom8.

2. Route the Audio

Use QJackCtl to route each Zoom sink to its respective channel:

  • zoom1 → Channel 1
  • zoom2 → Channel 2
  • zoom8 → Channel 8

3. Launch Zoom Instances

Edit setup_zoom.sh and define the languages you want to broadcast (up to 8). Then run:

./setup_zoom.sh

This will:

  • Create a Chromium user profile for each language
  • Launch a separate Zoom instance in each profile
  • Fill the name with language suffix
  • Open the browser windows automatically

In each browser window, select the correct audio output device matching the sink/channel index.


🖥️ Optional: Window Manager Optimization (e.g., dwm)

If you're using a tiling window manager like dwm:

  • Assign each Zoom instance to a separate tag (e.g., MOD+1 to MOD+8)
  • Match Zoom language windows to the appropriate channel
    • Example: If zoom_ger uses Channel 1 → put it on tag 1
  • Quickly switch between streams using keyboard shortcuts

This enhances control, speed, and overview.


🎤 Future Plans

To include microphone input channels (e.g., for interpreters), we plan to:

  • Use a second Gigaport HD+
  • Route audio input from interpreters to Zoom channels

🧑‍💻 Author

Made with ❤️ using Linux and open-source tools.

About

Multi-Lingual-Translation Setup

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages