Skip to content

Anonymizing Research Data in DUUI: Text, Voices, Faces and Video

How ENTAILab Measure 2 (CIRCLET) protects people in social-science data: PII redaction in text, synthetic voices for speech, and diffusion-based face anonymization for images and video. Read article Close article

23 October 2026 · Ali Abusaleh

Social-science data is full of people. Open survey answers mention names and employers, interviews carry voices that identify the speaker, and photo and video answers show faces. Before such data can be shared, reused or analysed with external models, the people in it need protecting, while the data stays useful for research.

In ENTAILab Measure 2 (CIRCLET) this is handled by a set of DUUI components, one per modality. Because they are ordinary DUUI components, a project can place anonymization at the start of any pipeline, before transcription, topic modeling or a vision-language model ever sees the raw data.

ModalityComponentApproach
Textduui-anonymizePII detection and redaction with token-classification models
Speechduui-speaker-anonymizationTranscribe, replace the speaker identity, re-synthesize the voice
Images & videoduui-face_anonDiffusion-based face anonymization, or blur, blackout and pixelation

Text: duui-anonymize ​

duui-anonymize is a FastAPI service that receives text from DUUI through a Lua communication script, detects spans of personal information, and writes them back as annotations with character offsets and a category. It also adds a second view of the document holding the redacted text, so later pipeline steps can work on the redacted version while the original stays in its own view.

No single model is best at everything, so the component offers three, selected per pipeline:

ModelLabelsLanguagesUse it for
openai/privacy-filter (default)8 broad categoriesEnglishKeeping as much of the original wording as possible
OpenMed/privacy-filter-nemotron55 fine-grained typesEnglishBroad identifier removal, e.g. first vs. last names
bardsai/eu-pii-anonimization-multilang36 GDPR categories24 EU languagesMultilingual data and GDPR Art. 9 special categories

Spans can be replaced with placeholders such as [private_person] or removed entirely. The service can analyse a selected window of the document instead of the whole text, ships CPU and CUDA images, and is covered by unit tests plus Java integration tests on German and English samples.

How the three models compare ​

The models were evaluated on TAB, SPIA and RAT-Bench; the full results are in Choosing a Text Anonymization Model. In short:

  • OpenMed Nemotron removes the most: TAB token recall of 70.2% and the lowest explicit re-identification rate on RAT-Bench (49.8%), at the cost of changing more text (BLEU 0.893).
  • OpenAI Privacy Filter preserves the wording best (BLEU 0.970, precision 91.6%) but misses more identifiers (recall 33.1%).
  • BardsAI protects best against attribute inference on SPIA, but barely against explicit profile linkage (90.3% re-identification, versus 93.2% without anonymization).

The hardest case is identification from context. On RAT-Bench's implicit level, re-identification fell only from 36.3% to 32.0–35.3%, and no model solved it. This is the limit of span-level redaction, and the reason the model choice is left to each project rather than fixed.

Speech: duui-speaker-anonymization ​

A voice is biometric data: removing names from a transcript is not enough if the recording itself is shared. The component builds on the IMS speaker-anonymization pipeline. It transcribes the audio with Whisper large-v3, replaces the speaker embedding with an artificial one generated by a GAN, and re-synthesizes the content with IMS-Toucan in the new voice. What was said is kept; who said it is not. Supported languages are English, German, French, Italian, Spanish, Portuguese, Dutch, Polish and Russian.

Faces in images and video: duui-face_anon ​

The component builds on Face Anonymization Made Simple. A diffusion model (Stable Diffusion 2.1 with CLIP ViT-L/14 conditioning) generates a different face that keeps the original pose and expression, for one face or many. The degree of anonymization is adjustable, and a fixed seed makes results reproducible. Where generation is not wanted, faces can instead be blurred, blacked out or pixelated, at scopes from half the face to the whole head.

For video, the component samples frames either uniformly (every Nth frame) or adaptively, choosing representative frames per time segment, so long recordings remain affordable to process.

Why components, not a single tool ​

Projects supported by ENTAILab Measure 2 (CIRCLET) mix modalities differently: one has only open text answers, another has video interviews. Separate components let each project compose only what it needs, in a pipeline that is documented and repeatable.

Anonymize first

A typical pipeline anonymizes first, then transcribes or analyses. Every later step, including vision-language models, then works only on protected data.

Contributors and code ​

duui-anonymize was developed by Ali Abusaleh. duui-speaker-anonymization was developed by Tim Wolf, and duui-face_anon by Tim Wolf and Coco Sittardt, both under the supervision of Ali Abusaleh and Giuseppe Abrami. All three components are available in texttechnologylab/duui-uima.

Choosing a Text Anonymization Model

A comparison of OpenMed Nemotron, OpenAI Privacy Filter, and BardsAI using TAB, SPIA, and RAT-Bench. Read article Close article

15 October 2026 · Tim Wolf

Text anonymization helps protect personal information while keeping documents useful for research and analysis. The challenge is deciding what to remove: too little can leave people identifiable, while too much can erase valuable context. This post compares the three models available in duui-anonymize using results from TAB, SPIA, and RAT-Bench to help you choose the right model for your task.

Our evaluation uses three complementary benchmarks: TAB measures removal of annotated identifiers, SPIA tests which personal attributes an attacker can still infer, and RAT-Bench measures whether recovered information enables re-identification.

Which model fits your task? ​

ModelChoose it when…Benchmark evidenceMain trade-off
OpenMed NemotronYou prioritize broad identifier removal and resistance to re-identification.Highest TAB token recall (70.2%) and quasi-identifier recall (62.8%); lowest RAT-Bench explicit re-identification rate (49.8%).Changes more text: BLEU 0.8930, versus 0.9695 for OpenAI.
OpenAI Privacy FilterYou prioritize preserving wording and limiting removal of non PII-text.Highest TAB token precision (91.6%) and RAT-Bench BLEU (0.9695); explicit re-identification 66.7%.Misses more identifiers: TAB token recall 33.1% and quasi-identifier recall 26.5%.
BardsAIYour main goal is protection against personal-attribute inference, as measured by SPIA.Highest mean SPIA protection across all tested dataset–attacker combinations; with GPT-OSS-120B attacking, CPR is 45.5% on TAB and 71.3% on PANORAMA. Highest TAB direct-identifier recall (85.7%).Weak protection against explicit profile linkage in RAT-Bench: 90.3% re-identification, compared with 93.2% without anonymization.

TAB recall measures how much annotated identifying information is removed; precision measures how much removed text matches those annotations. Higher SPIA Collective Protection Rate (CPR) means stronger protection against attribute inference. Lower RAT-Bench re-identification is better. BLEU measures overlap with the original wording,

Conclusion ​

OpenMed provides the most consistent privacy protection, based on its TAB and RAT-Bench results. OpenAI preserves the text most effectively but leaves more identifiers recoverable. BardsAI achieves the highest protection rates in SPIA, but its SPIA advantage does not translate into strong protection against profile linkage.

The hardest case remains contextual identification. On RAT-Bench’s implicit-identifier level, re-identification was 36.3% without anonymization and 32.0–35.3% after anonymization. None of the three substantially addressed this risk in the evaluation.

BibTeX references9 entries
Abusaleh, 2026: DUUI Anonymize
@misc{abusaleh_duui_anonymize_2026,
  author       = {Abusaleh, Ali},
  title        = {{DUUI Anonymize}: PII Detection and Redaction Component for {DUUI}},
  year         = {2026},
  institution  = {Text Technology Lab, Goethe University Frankfurt},
  howpublished = {\url{https://github.com/texttechnologylab/duui-uima}},
  note         = {Part of the DockerUnifiedUIMAInterface (DUUI) component ecosystem}
}
bards.ai et al., 2026: eu-pii-anonimization-multilang
@misc{bards.ai_2026,
    author    = {bards.ai and Michał Swędrowski and others},
    title     = {eu-pii-anonimization-multilang (Revision 6de9f68)},
    year      = {2026},
    url       = {https://huggingface.co/bardsai/eu-pii-anonimization-multilang},
    doi       = {10.57967/hf/8721},
    publisher = {Hugging Face}
}
Krčo et al., 2026: RAT-Bench
@misc{krco2026ratbench,
    title = "{RAT-Bench}: A Comprehensive Benchmark for Text Anonymization",
    author = "Kr{\v{c}}o, Nata{\v{s}}a and
              Yao, Zexi and
              Meeus, Matthieu and
              de Montjoye, Yves-Alexandre",
    year = "2026",
    eprint = "2602.12806",
    archivePrefix = "arXiv",
    primaryClass = "cs.CL",
    doi = "10.48550/arXiv.2602.12806",
    url = "https://arxiv.org/abs/2602.12806"
}
Oh et al., 2026: Subject-level Inference
@inproceedings{oh-etal-2026-subject,
    title = "Subject-level Inference for Realistic Text Anonymization Evaluation",
    author = "Oh, Myeong Seok and
              Kim, Dong-Yun and
              Oh, Hanseok and
              Kang, Chaean and
              Kang, Joeun and
              Wang, Xiaonan and
              Park, Hyunjung and
              Jung, Young Cheol and
              Kim, Hansaem",
    booktitle = "Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
    month = jul,
    year = "2026",
    address = "San Diego, California, United States",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2026.acl-long.778/",
    doi = "10.18653/v1/2026.acl-long.778",
    pages = "17100--17135"
}
OpenMed, 2026: Open models and resources for healthcare NLP
@misc{openmed_2026,
  author       = {OpenMed},
  title        = {{OpenMed}: open models and resources for healthcare NLP},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/OpenMed}}
}
OpenMed, 2026: Privacy Filter Nemotron
@misc{openmed_privacy_filter_nemotron_2026,
  author       = {OpenMed},
  title        = {{OpenMed/privacy-filter-nemotron}: fine-grained PII extraction with 55 categories},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/OpenMed/privacy-filter-nemotron}}
}
NVIDIA, 2025: Nemotron-PII
@misc{nemotron_pii_2025,
  author       = {NVIDIA},
  title        = {{Nemotron-PII}},
  year         = {2025},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/datasets/nvidia/Nemotron-PII}}
}
OpenAI, 2025: Privacy Filter
@misc{openai_privacy_filter_2025,
  author       = {OpenAI},
  title        = {{openai/privacy-filter}},
  year         = {2025},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/openai/privacy-filter}}
}
Pilán et al., 2022: Text Anonymization Benchmark
@article{pilan-etal-2022-text,
    title = "The Text Anonymization Benchmark ({TAB}): A Dedicated Corpus and Evaluation Framework for Text Anonymization",
    author = "Pil{\'a}n, Ildik{\'o} and
        Lison, Pierre and
        {\O}vrelid, Lilja and
        Papadopoulou, Anthi and
        S{\'a}nchez, David and
        Batet, Montserrat",
    journal = "Computational Linguistics",
    volume = "48",
    number = "4",
    month = dec,
    year = "2022",
    publisher = "MIT Press",
    url = "https://aclanthology.org/2022.cl-4.19/",
    doi = "10.1162/coli_a_00458",
    pages = "1053--1101"
}