OpenMMLA
OpenMMLA is an IoT-based multimodal data collection toolkit for learning analytics. It provides three pipelines, real-time speech recognition with speaker diarization (ASR), AprilTag-based indoor positioning (IPS) and vision-language video frame analysis (VFA), synchronized across base stations, stored in InfluxDB and MongoDB, and shown on a dashboard live and after the session.
- Documentation: https://openmmla.readthedocs.io
- Source code and issues: https://github.com/ucph-ccs/OpenMMLA
- Paper: https://doi.org/10.1145/3706468.3706525
Installation
This package provides the openmmla library and the mmla command line. Each pipeline has its own extra, so a machine only installs what it runs:
pip install "openmmla[asr-base]" # ASR base station
pip install "openmmla[ips-base]" # IPS base station
pip install "openmmla[vfa-base]" # VFA base station
pip install "openmmla[uber-base]" # analytics and session exports
pip install "openmmla[uber-server]" # dashboard backend and worker
pip install "openmmla[tui]" # management console
The pipelines and the management console run against a checkout of the repository, which holds the pipeline configuration bundles (pipelines/), the shared settings (config/) and the Docker compose files of the AI services (docker/). The recommended setup is therefore an editable install from the clone:
git clone https://github.com/ucph-ccs/OpenMMLA.git
cd OpenMMLA
conda create -n tui python=3.10 -y && conda activate tui
pip install -e ".[tui]"
mmla tui
See the documentation for the system prerequisites (conda, git, tmux, PortAudio, FFmpeg), the system services (InfluxDB, MongoDB, Redis, Mosquitto, Nginx, dashboard) and the pipeline guides.
Citation
@inproceedings{10.1145/3706468.3706525,
author = {Li, Zaibei and Yamaguchi, Shunpei and Spikol, Daniel},
title = {OpenMMLA: an IoT-based Multimodal Data Collection Toolkit for Learning Analytics},
year = {2025},
doi = {10.1145/3706468.3706525},
booktitle = {Proceedings of the 15th International Learning Analytics and Knowledge Conference},
pages = {872–879},
}
Metadata
Release files for openmmla 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openmmla-0.2.0.tar.gz | 326.8 kB | Without provenance | Details for openmmla-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openmmla-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for openmmla-0.2.0-py3-none-any.whl |
Total release size: 717.6 kB
Release files / openmmla-0.2.0.tar.gz
| Download URL | openmmla-0.2.0.tar.gz |
|---|---|
| Size | 326.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81964275694f54174ee6f78872f0757667afc47458747aa443a9222f10908400
|
|
BLAKE2b-256 checksum How to use checksums |
92c5542b6e30e23c1c89bf88959417945a673f7498a62231a536e15b86af5f82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|
Release files / openmmla-0.2.0-py3-none-any.whl
| Download URL | openmmla-0.2.0-py3-none-any.whl |
|---|---|
| Size | 390.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da082757cdc070ae330fefff8baf9338dfb137dfbf7a3865371cb9907e21a1fa
|
|
BLAKE2b-256 checksum How to use checksums |
0c12c5422782bb7d4a80c786123c09908da326ab05c58af0a3b73ea48a74029a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|
Security for openmmla 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.