Traditional speaker recognition answers one question: "Is this speaker A or B?"
CoLMbo asks something richer: "What is this speaker like?"
Given a few seconds of audio and a natural language prompt, CoLMbo generates free-form descriptions of the speaker their gender, age, dialect, height, education, and more directly from voice alone, with no labels or metadata required.
"The speaker is a male. He is likely between 26 and 35 years old. He speaks with a New England dialect. He has a Bachelor's Degree."
CoLMbo integrates a speaker encoder with prompt-conditioned GPT-2 decoding, enabling zero-shot generalization across diverse speaker populations and datasets.
1from transformers import AutoModel
2import torchaudio
34# Load CoLMbo5model = AutoModel.from_pretrained("cmu-mlsp/CoLMbo", trust_remote_code=True)6model.eval()78# Option A — from a waveform tensor9waveform, sr = torchaudio.load("speaker.wav")10print(model.describe(waveform,"Please describe the speaker."))1112# Option B — directly from a file path13print(model.describe_file("speaker.wav","What is the speaker's dialect?"))
⚠️ Audio should be mono, 16 kHz. The model will automatically resample if needed.
Example Prompts
CoLMbo accepts any natural language question about the speaker:
python
1prompts =[2"What is the speaker's gender?",3"What is the speaker's age?",4"What is the speaker's dialect?",5"What is the speaker's race?",6"What is the speaker's height?",7"What is the speaker's education level?",8"Please describe the speaker.",9]1011for prompt in prompts:12print(f"Q: {prompt}")13print(f"A: {model.describe_file('speaker.wav', prompt)}\n")
Example output:
Q: What is the speaker's gender?
A: The speaker's gender is male.
Q: What is the speaker's age?
A: The speaker is between 26 and 35 years old.
Q: What is the speaker's dialect?
A: The speaker's dialect is from the New England region.
Q: Please describe the speaker.
A: The speaker is a male. He is likely between 26 and 35 years old.
He speaks with a New England dialect. He has a Bachelor's Degree.
Dataset: TEARS
CoLMbo is trained and evaluated on TEARS — a large-scale speaker captioning corpus with rich per-speaker annotations.
Query any speaker attribute without task-specific heads
🕵️
Forensic Audio Analysis
Generate structured speaker descriptions for investigative use
Citation
If you find CoLMbo useful in your research, please cite:
bibtex
1@misc{CoLMbo,
2 title = {CoLMbo: Speaker Language Model for Descriptive Profiling},
3 author = {Massa Baali and Shuo Han and Syed Abdul Hannan and Purusottam Samal and
4 Karanveer Singh and Soham Deshmukh and Rita Singh and Bhiksha Raj},
5 year = {2025},
6 eprint = {2506.09375},
7 archivePrefix= {arXiv},
8 url = {https://arxiv.org/abs/2506.09375},
9 primaryClass = {cs.CL}
10}
Authors
Massa Baali · Shuo Han · Syed Abdul Hannan · Purusottam Samal · Karanveer Singh · Soham Deshmukh · Rita Singh · Bhiksha Raj
Carnegie Mellon University — Language Technologies InstituteMachine Learning for Signal Processing Group