Welcome to the Image Style Quiz

Test your ability to recognize and classify AI-generated image styles. The images are based on a photo of the Judo Champion d’Alsace 2025. Click a link below to open the image gallery. Choose a style for each image from the list in the header. Navigate to the next images using the arrows or by swiping. Once you’ve labeled all images, you can submit your answers to see your results. Feel free to revise your choices before submitting. Use the footer buttons to return here or to go to the table of content.

  • easy level quiz : 13 images
  • moderate level quiz : 13 images
  • difficult level quiz : 13 images

Hosting

KI-Léierbud.lu Homepage

in root folder /httpdocs/index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
  <meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="theme-color" content="#fff7e6" />
  <title>KI-Léierbud</title>
  <style>
    html, body {
      margin: 0;
      padding: 0;
      height: 100%;
      background-color: #fff7e6;
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
      color: #333;
      line-height: 1.6;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
    }
    body {
      padding-top: env(safe-area-inset-top);
      padding-right: env(safe-area-inset-right);
      padding-bottom: env(safe-area-inset-bottom);
      padding-left: env(safe-area-inset-left);
    }
    main {
      max-width: 768px;
      margin: 0 auto;
      padding: 1em;
    }
    h1 {
      font-size: 2.8em;
      text-align: center;
      margin-top: 1em;
      color: #b30000;
    }
    .indented-lines p {
      margin: 0.3em 0;
      color: #444;
    }
    .indent-0 { padding-left: 0; }
    .indent-1 { padding-left: 1em; }
    .indent-2 { padding-left: 2em; }
    .indent-3 { padding-left: 3em; }
    .indent-4 { padding-left: 4em; }
    .timeline {
      text-align: center;
      font-weight: bold;
      font-size: 1.1em;
      margin: 1.5em 0 0.5em;
      color: #5a2d0c;
    }
    img {
      display: block;
      width: 100%;
      height: auto;
      margin: 1em 0;
      box-shadow: 0 4px 10px rgba(0,0,0,0.1);
      border-radius: 10px;
    }
    .language-links {
      margin-top: 2em;
    }
    .language-links p {
      margin: 0.3em 0;
    }
  </style>
</head>
<body>
  <main>
    <div class="indented-lines">
      <p class="indent-0"><a href="https://admin.ki-leierbud.lu">Welcome to the portal of</a> …</p>
      <p class="indent-1"><a href="https://admin.ki-leierbud.lu/">Bienvenue sur le portail de</a> …</p>
      <p class="indent-2"><a href="https://admin.ki-leierbud.lu">Willkommen auf dem Portal der</a> …</p>
      <p class="indent-3"><a href="https://admin.ki-leierbud.lu">Bem-vindos ao portail de</a> …</p>
      <p class="indent-4"><a href="https://admin.ki-leierbud.lu/">Wëllkomm um Portal vun der</a> …</p>
    </div>

    <h1>KI-Léierbud</h1>

    <div class="timeline">&lt;&lt;&lt; 14 .000 .000 .000 <a href="https://admin.ki-leierbud.lu/archives/99">years</a> - <a href="https://admin.ki-leierbud.lu/archives/108">années</a> – <a href="https://admin.ki-leierbud.lu/archives/102">Jahre</a> – <a href="https://admin.ki-leierbud.lu/archives/106">anos</a> - <a href="https://admin.ki-leierbud.lu/archives/104">Joer</a></div>
    <img src="images/14billions.jpg" alt="14 Billion Years" />

    <div class="timeline">&lt;&lt;&lt; 14.000.000 années – Jahre – years – Joer – anos</div>
    <img src="images/14millions.jpg" alt="14 Million Years" />

    <div class="timeline">&lt;&lt;&lt; 14.000 années – Jahre – years – Joer – anos</div>
    <img src="images/14thousand.jpg" alt="14 Thousand Years" />

    <div class="timeline">&lt;&lt;&lt; 14 années – Jahre – years – Joer – anos</div>
    <img src="images/14years.jpg" alt="14 Years" />

    <div class="timeline">2023 : AI Tsunami (en) – Tsunami IA (fr, pt) – KI Tsunami (de, lb)</div>
    <img src="images/tsunami.jpg" alt="AI Tsunami" />

    <div class="timeline">aujourd’hui – heute – today – haut – hoje &gt;&gt;&gt; KI-Léierbud</div>
    <img src="images/ki-leierbud.jpg" alt="KI-Léierbud Today" />

    <div class="language-links indented-lines">
      <p class="indent-0">Start your exploration of the KI-Léierbud in English </p>
      <p class="indent-1">Commencez votre exploration de la KI-Léierbud en français </p>
      <p class="indent-2">Beginnen Sie Ihre Erkundung der KI-Léierbud auf Deutsch </p>
      <p class="indent-3">Comece a sua exploração da KI-Léierbud em português </p>
      <p class="indent-4">Start Är Entdeckung vun der KI-Léierbud op Lëtzebuergesch </p>
    </div>
  </main>
</body>
</html>

File .htaccess

in root folder /ki-leierbud.lu/httpdocs/.htaccess

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Lux-ASR: Speech to Text System

The University of Luxembourg provides and Automatic Speech Recognition System (ASR) for Luxembourgish and several other languages (english, french, german, portuguese and spanish). Four output formats are available : plain text (txt), SubRip Subtitles (srt), JSON (with or without time codes for words) and Praat TextGrid. As an experimental feature for the Luxembourgish text translation to other languages has been added, which will output the recognized text in English, French, German, Portuguese, and Spanish.

The speech to transcribe can be recorded from a microphone or uploaded as Audio or Video file. If the recording contains more than one speaker, setting diarization to “On” will separate the text of every speaker in the recording along with time codes for their turns.

API Access

Lux-ASR can also be accessed by API and can be reached via:

curl -X POST "https://luxasr.uni.lu/v2/asr?diarization=Enabled&outfmt=text" \
  -H "accept: application/json" \
  -F "audio_file=@PATH/TO/AUDIO FILE;type=audio/wav"

The API returns the transcription in the specified output format.

Query Parameters

  • diarization: Can be set to Enabled (default) or Disabled to include or exclude speaker diarization.
  • outfmt: Specifies the output format. Supported values are:
    • text – plain text transcript (default)
    • json – detailed JSON output
    • srt – SubRip subtitle format
    • textgrid – Praat TextGrid format

Accepted audio formats are .wav, .mp3, and .m4a.

Python Script

Below is a basic Python script that replicates the functionality of the curl command with added flexibility. You can specify the audio file and optionally choose whether to enable diarization and which output format to use.

import requests
import argparse
import os
import sys

def main():
    parser = argparse.ArgumentParser(
        description="Send an audio file to the LuxASR API for transcription."
    )
    parser.add_argument(
        "audio_file",
        type=str,
        help="Path to the audio file (.wav, .mp3, .m4a)"
    )
    parser.add_argument(
        "--diarization",
        choices=["Enabled", "Disabled"],
        default="Enabled",
        help="Enable or disable speaker diarization (default: Enabled)"
    )
    parser.add_argument(
        "--outfmt",
        choices=["text", "json", "srt", "textgrid"],
        default="text",
        help="Output format: text, json, srt, or textgrid (default: text)"
    )

    args = parser.parse_args()

    if not os.path.isfile(args.audio_file):
        print(f"Error: File '{args.audio_file}' not found.")
        sys.exit(1)

    url = f"https://luxasr.uni.lu/v2/asr?diarization={args.diarization}&outfmt={args.outfmt}"
    headers = {
        "accept": "application/json"
    }

    # Determine MIME type
    ext = args.audio_file.lower()
    if ext.endswith(".wav"):
        mime_type = "audio/wav"
    elif ext.endswith(".mp3"):
        mime_type = "audio/mpeg"
    elif ext.endswith(".m4a"):
        mime_type = "audio/mp4"
    else:
        mime_type = "application/octet-stream"

    with open(args.audio_file, "rb") as audio:
        files = {
            "audio_file": (os.path.basename(args.audio_file), audio, mime_type)
        }
        response = requests.post(url, headers=headers, files=files)

    print(response.text)

if __name__ == "__main__":
    main()

Usage

python luxasr_transcribe.py path/to/your_audio.wav --diarization Enabled --outfmt json

Replace path/to/your_audio.wav with your actual audio file. The --diarization and --outfmt options are optional and default to Enabled and text respectively.

Lux-ASR is under constant development by Peter Gilles, Nina Hosseini-Kivanani, and Léopold Hillah at the University of Luxembourg and is supported by the Chambre des Députes du Grand-Duché de Luxembourg.

Disclaimer

Note that the transcription and the translation are run on a dedicated server at the University of Luxembourg. All data thus stays within Luxembourg and the University’s network. Nobody has access to the uploaded audio or the text output. The audio data is streamed to this server and no files are stored on this server or in the network. No data is used to further train the model and no data is transferred to third parties.

Domain Names

The main domain-name for the KI-Léierbud is ki-leierbud.lu with the following sub-domains :

  • admin (homepage WordPress)
  • app1 (NodeJS Application)
  • app2 (NodeJS Application)

The following screenshot shows the configuration of a subdomain in the Plesk Dashboard :

The following sub-domains will be added if required :

  • app3, app4, app5, … (NodeJS applications)
  • python1, python2, python3, … (Python applications)
  • gradio1, gradio2, gradio3, … (Gradio applications)
  • …..

IP – Adresses

KI-Léierbud Server :

  • v4 : 85.93.210.152
  • v6 : 2001:1610:0:9::152

DNS-Server : Visual Online

Visual Online DNS resolver servers:

  • Resolver 1 IPv4: 80.90.44.25
  • Resolver 1 IPv6: 2001:1610:0:3::25
  • Resolver 2 IPv4: 85.93.210.60
  • Resolver 2 IPv6: 2001:1610:0:13::60

URL Shortener : TinyURL

quiz ? : https://tinyurl.com/3hy6aax4

Plesk SSH-Terminal

AlmaLinux 9.6

AlmaLinux 9.6, codenamed “Sage Margay,” was released on May 20, 2025. As a downstream rebuild of RHEL 9.6, it offers full binary compatibility while also introducing unique enhancements:AlmaLinux OS+4Facebook+4wiki.almalinux.org+4

  • Kernel Version: Ships with Linux kernel 5.14.0-570.12.1.el9_6.wiki.almalinux.org+2wiki.almalinux.org+2Wikipedia+2
  • Extended Hardware Support: Includes a tech-preview of KVM virtualization support for the IBM Power architecture, addressing the needs of specific user groups. wiki.almalinux.org
  • Updated Development Tools: Features updated versions of development tools and module streams, such as Apache HTTP Server 2.4.62, Node.js 22, Nginx 1.26, PHP 8.3, MySQL 8.4, and Maven 3.9. AlmaLinux OS+2Linuxiac+2AlmaLinux OS+2
  • System Toolchain Upgrades: Incorporates GCC 11.5, LLVM-Toolset 19.1.7, Go-Toolset 1.23.6, and Rust-Toolset 1.84.1, enhancing performance and compatibility.

Some AlmaLinux commands are different from Ubuntu which I use on my desktop computers. I asked ChatGPT to generate a cheat sheet comparing commands between the two systems.

Here is a screenshot of the entries in the Plesk SSH Terminal to install a node app :

KI-Léierbud Info

Welcome to KI-Léierbud !

Discover everything about Artificial Intelligence in four sections: Knowledge, Quiz, Hands-on, and Pro.
The first version of our portal launches on Monday, September 15, 2025.
Expect regular updates and new features until June 2026 — stay tuned as we grow step by step!


Bienvenue sur KI-Léierbud !

Découvrez tout ce qu’il faut savoir sur l’intelligence artificielle à travers quatre rubriques : Connaissances, Quiz, Pratique et Pro.
La première version de notre portail ouvre le lundi 15 septembre 2025.
Des évolutions seront déployées par étapes jusqu’en juin 2026 — suivez-nous dans cette aventure !


Willkommen bei KI-Léierbud !

Erfahren Sie alles über Künstliche Intelligenz in vier Rubriken: Wissen, Quiz, Praxis und Pro.
Die erste Version unseres Portals startet am Montag, den 15. September 2025.
Bis Juni 2026 wird das Portal schrittweise weiterentwickelt — bleiben Sie gespannt!


Bem-vindo ao KI-Léierbud !

Saiba tudo sobre Inteligência Artificial em quatro secções: Conhecimento, Quiz, Prática e Profissional.
A primeira versão do nosso portal será lançada na segunda-feira, 15 de setembro de 2025.
O portal evoluirá por etapas até junho de 2026 — acompanhe o nosso progresso!


Wëllkomm op KI-Léierbud !

Hei léiers de vill iwwer kënschtlech Intelligenz an de véier Rubricken: Wëssen, Quiz, Hands-on a Pro.
Déi éischt Versioun vum Portal geet Méindes, de 15. September 2025, online.
Bis Juni 2026 wäert de Portal a Schrëtt evoluéieren — bleib dobäi a kuck mat eis wéi e wiisst!


Digital Content Management for KI-Léierbud

The present backend server is only available to the developers and editors of the KI-Léierbud Portal.

Login