From Voiceprints to User Entities: Online Speaker-Memory Construction for Multi-User Spoken Agents
Organizations: School of Computer Science, Wuhan University · School of Artificial Intelligence, The Chinese University of Hong Kong, Shenzhen · Meituan
Abstract
Personalized spoken agents must identify speakers before accessing user-specific memory, yet memory benchmarks typically assume correctly attributed histories. We argue that voiceprints are observations of identity, not identities themselves, and formulate online speaker-memory construction to maintain persistent user entities as acoustic evidence evolves. We introduce EvoSpeakerMem, a training-free layer for causal speaker routing, selective acoustic-state updates, and identity-partitioned memory writes and retrieval through a replaceable text-memory backend. We also construct LoCoMo-ID, a spoken-memory benchmark with hidden speaker identities, speaker-sensitive queries, simulated recording-condition shifts, and four-speaker identity-confusion tests. On longitudinal SMIIP-TV, genuine-probe rejection under a frozen near-enrollment threshold rises from 29.8% to 55.6% over approximately one year. On LoCoMo-ID speaker-sensitive queries, gated updating improves identity-gated QA over fixed representations by 3.86 and 11.62 percentage points under clean and shifted conditions, respectively, with no wrong-user authorizations. The advantage persists in the four-speaker test. Yet reducing fragmentation and improving QA can coexist with incorrect cross-user links, revealing a fragmentation--contamination trade-off that QA alone cannot capture.
Figures & tables
| Condition | Acoustic evidence | Metric | Fixed | Update | Gated update | All-exemplar KNN |
|---|---|---|---|---|---|---|
| Clean | ECAPA-only | 97.04 | 98.41 | 99.54 | 98.51 | |
| FNUR | 0.77 | 0.27 | 0.31 | 0.21 | ||
| Clusters/Gold | 3.217 | 1.767 | 1.883 | 1.583 | ||
| ECAPA + diarization | 76.96 | 77.06 | 77.06 | 77.09 | ||
| FNUR | 0.08 | 0.07 | 0.07 | 0.07 | ||
| Clusters/Gold | 1.150 | 1.117 | 1.117 | 1.117 |
| Gap (days) | EER | Below- | Imp. accept | Gen. sim. |
|---|---|---|---|---|
| 0–1 days | 9.7 | 29.8 | 2.0 | 0.538 |
| 60–100 days | 11.2 | 40.7 | 1.8 | 0.495 |
| 365–450 days | 14.0 | 55.6 | 1.4 | 0.446 |
| Acoustic evidence / policy | Clean | Condition-shifted |
|---|---|---|
| ECAPA / Fixed | 72.31 | 69.27 |
| ECAPA / Update | 73.30 | 72.55 |
| ECAPA / Gated update | 73.38 | 72.04 |
| ECAPA / All-exemplar KNN | 73.38 | 72.79 |
| Parakeet+ECAPA / Fixed | 73.43 | 72.96 |
| Parakeet+ECAPA / Update | 73.50 | 73.16 |
| Condition | ECAPA policy | C/W/D | QA | QA Correct |
|---|---|---|---|---|
| Clean | Fixed | 4084/0/29 | 71.41 | 71.91 |
| Update | 3993/115/5 | 73.43 | 75.63 | |
| Gated update | 4110/0/3 | 75.27 | 75.33 | |
| KNN | 3993/116/4 | 73.64 | 75.86 | |
| Condition-shifted | Fixed | 4079/1/33 | 60.15 | 60.65 |
| Update | 3993/115/5 | 70.24 | 72.35 |
| Acoustic evidence / policy | Online ID | C / W / D | Targeted QA ( ) | Full QA ( ) | |
|---|---|---|---|---|---|
| ECAPA / Fixed | 98.84 | 96.54 | 1342 / 18 / 11 | 78.95 | 67.83 |
| ECAPA / Update | 93.35 | 95.45 | 1335 / 32 / 4 | 78.95 | 72.06 |
| ECAPA / Gated update | 96.25 | 97.77 | 1368 / 0 / 3 | 78.95 | 73.60 |
| ECAPA / All-exemplar KNN | 94.85 | 97.20 | 1335 / 33 / 3 | 78.95 | 71.99 |
| Parakeet+ECAPA / Fixed | 74.03 | 72.86 | 1335 / 32 / 4 | 68.42 | 71.48 |
| Parakeet+ECAPA / Update | 71.96 | 72.57 | 1333 / 32 / 6 | 73.68 | 72.28 |
Appendix figures & tables23 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | SR | SV |
|---|---|---|
| Qwen2.5-Omni Xu et al. (2025a) | 19.00 | 24.00 |
| AudioFlamingo-3 Goel et al. (2025) | 23.00 | 29.00 |
| Qwen3-Omni Xu et al. (2025b) | 49.00 | 40.00 |
| Kimi-Audio KimiTeam et al. (2025) | 46.00 | 24.00 |
| StepAudio2 Wu et al. (2025a) | 34.00 | 43.00 |
| MiMoAudio Xiaomi LLM-Core Team et al. (2025) | 38.00 | 48.00 |
| 0–1 days | 60–100 days | 365–450 days | ||||
|---|---|---|---|---|---|---|
| Encoder | EER | Below- | EER | Below- | EER | Below- |
| ECAPA-TDNN | 9.71 | 29.82 | 11.18 | 40.70 | 14.09 | 55.54 |
| ReDimNet2-B6 | 3.34 | 5.19 | 4.82 | 8.78 | 6.35 | 12.96 |
| ECAPA-TDNN | ReDimNet2-B6 | |||||
|---|---|---|---|---|---|---|
| Large-span condition | FNUR | Frag. | FNUR | Frag. | ||
| Intra-day TOD | 63.08 | 18.09 | 25.52 | 62.91 | 6.75 | 12.33 |
| Inter-day | 66.58 | 1.21 | 12.20 | 70.56 | 0.22 | 3.08 |
| Long-term cross-batch | 67.60 | 3.60 | 20.79 | 81.49 | 0.91 | 4.51 |
| Environment | 67.05 | 5.00 | 23.53 | 73.43 | 1.16 | 7.84 |
| Speaker state | 58.88 | 6.78 | 27.63 | 66.90 | 1.14 | 11.45 |
| Dimension | Small span (control) | Large span (higher drift) | Purpose |
|---|---|---|---|
| Intra-day TOD | Same day and same time-of-day bucket as enrollment | Same day, at least two time-of-day buckets from enrollment | Isolate within-day change |
| Inter-day | 0–3 days after enrollment | 30–100 days after enrollment | Short-term temporal drift |
| Long-term cross-batch | Same-release SMIIP-TV probe | Follow-up probe approximately one year later | Long-term return |
| Environment | Within 14 days, same environment as enrollment | Within 14 days, different environment | Approximate environment contrast |
| Speaker state | Within 14 days, normal state | Within 14 days, non-normal state (e.g., sleepy, eating, hoarse, or exercise) | Approximate state contrast |
| Long-term hist.-env. | Follow-up probes from speakers with low historical environment entropy | Follow-up probes from speakers with high historical environment entropy | Long-term return by prior variability |
| Policy | |||||
|---|---|---|---|---|---|
| First exemplar | 21.77 | 52.90 | 66.25 | 62.90 | 46.82 |
| Enrollment mean | 27.23 | 42.83 | 57.18 | 56.51 | 53.58 |
| Latest exemplar | 23.95 | 54.14 | 34.60 | 33.10 | 32.20 |
| Online mean | 31.24 | 38.48 | 46.54 | 46.65 | 55.99 |
| EMA | 31.07 | 42.01 | 41.36 | 41.35 | 52.03 |
| All-exemplar KNN | 31.06 | 56.24 | 52.56 | 51.30 | 65.31 |
| Acoustic evidence / policy | Clean | Condition-shifted |
|---|---|---|
| ECAPA / Fixed | 65.53 | 61.09 |
| ECAPA / Update | 66.63 | 65.54 |
| ECAPA / Gated update | 66.87 | 64.99 |
| ECAPA / All-exemplar KNN | 66.65 | 66.25 |
| Parakeet+ECAPA / Fixed | 66.30 | 65.36 |
| Parakeet+ECAPA / Update | 65.93 | 65.74 |
| Condition | Acoustic evidence / policy | Turns | Entities | FNUR | ||||
|---|---|---|---|---|---|---|---|---|
| Clean | ECAPA / Fixed | 17643 | 193 | 30.05 | 96.67 | 99.98 | 99.22 | 0.77 |
| ECAPA / Update | 17643 | 106 | 54.72 | 96.67 | 97.49 | 97.23 | 0.27 | |
| ECAPA / Gated update | 17643 | 113 | 51.33 | 96.67 | 99.95 | 99.65 | 0.31 | |
| ECAPA / All-exemplar KNN | 17643 | 95 | 61.05 | 96.67 | 97.48 | 97.29 | 0.21 | |
| Parakeet+ECAPA / Fixed | 17644 | 69 | 79.71 | 91.67 | 81.41 | 81.36 | 0.08 | |
| Parakeet+ECAPA / Update | 17644 | 67 | 82.09 | 91.67 | 81.40 | 81.37 | 0.07 |
| Condition | Acoustic evidence / policy | C | W | D | Safe auth. | QA | QA Correct |
|---|---|---|---|---|---|---|---|
| Clean | ECAPA / Fixed | 4084 | 0 | 29 | 99.29 | 71.41 | 71.91 |
| ECAPA / Update | 3993 | 115 | 5 | 97.08 | 73.43 | 75.63 | |
| ECAPA / Gated update | 4110 | 0 | 3 | 99.93 | 75.27 | 75.33 | |
| ECAPA / All-exemplar KNN | 3993 | 116 | 4 | 97.08 | 73.64 | 75.86 | |
| Parakeet+ECAPA / Fixed | 3833 | 273 | 7 | 93.19 | 68.08 | 73.05 | |
| Parakeet+ECAPA / Update | 3833 | 272 | 8 | 93.19 | 68.25 | 73.23 |
| Policy | Online ID | C / W / D | Targeted strict (19) | Targeted raw (20) | Full strict (1,371) | QA Correct | |
|---|---|---|---|---|---|---|---|
| ECAPA | |||||||
| Fixed | 98.84 | 96.54 | 1342/18/11 | 15/19 (78.95) | 15/20 (75.00) | 930/1371 (67.83) | 69.30 |
| Update | 93.35 | 95.45 | 1335/32/4 | 15/19 (78.95) | 16/20 (80.00) | 988/1371 (72.06) | 74.01 |
| Gated update | 96.25 | 97.77 | 1368/0/3 | 15/19 (78.95) | 15/20 (75.00) | 1009/1371 (73.60) | 73.76 |
| KNN | 94.85 | 97.20 | 1335/33/3 | 15/19 (78.95) | 16/20 (80.00) | 987/1371 (71.99) | 73.93 |
| Parakeet+ECAPA | |||||||
| Entities | Online (%) | B 3 F1 (%) | Query assigned / 5958 | W / 4113 | QA (%) | |
|---|---|---|---|---|---|---|
| 0.50 | 106 | 97.23 | 98.41 | 5953 | 115 | 73.33 |
| 0.54 | 110 | 98.65 | 99.11 | 5954 | 32 | 74.81 |
| 0.58 | 113 | 99.64 | 99.54 | 5955 | 0 | 75.27 |
| 0.62 | 114 | 99.64 | 99.54 | 5955 | 0 | 75.27 |
| 0.66 | 114 | 99.64 | 99.55 | 5955 | 0 | 75.47 |
| 0.70 | 118 | 99.61 | 99.45 | 5955 | 0 | 75.44 |
| Condition | ECAPA policy | s: correct / | – s: correct / | s: correct / |
|---|---|---|---|---|
| Clean | Gated update | 48 / 59 (81.36%) | 375 / 382 (98.17%) | 17157 / 17202 (99.74%) |
| All-exemplar KNN | 50 / 59 (84.75%) | 372 / 382 (97.38%) | 16742 / 17202 (97.33%) | |
| Condition-shifted | Gated update | 2 / 13 (15.38%) | 195 / 252 (77.38%) | 17223 / 17379 (99.10%) |
| All-exemplar KNN | 3 / 13 (23.08%) | 210 / 252 (83.33%) | 16894 / 17379 (97.21%) |
| Stage | Model | Decoding configuration |
|---|---|---|
| History and query transcription | Qwen3-Omni-30B-A3B-Instruct | Sampling: temperature 0.7, top- 0.8, top- 20; maximum 512 new tokens. |
| LightMem factual extraction | Qwen3-Omni-30B-A3B-Instruct | Sampling: temperature 0.1, top- 0.1; maximum 16,000 new tokens. The configured top- is not forwarded to the decoder. |
| Answer generation | Qwen3-Omni-30B-A3B-Instruct | Greedy decoding ( do_sample=False ); maximum 300 new tokens. |
| LLM-as-a-judge | Qwen3-Omni-30B-A3B-Instruct | Greedy decoding ( do_sample=False ); maximum 200 new tokens. |
| Text embedding | bge-small-en-v1.5 | 384-dimensional embedding; no generative decoding. |
Conversational Memory
Conversational memory equips AI assistants to retain, update, and retrieve useful information from past interactions for coherent, personalized dialogue.
See all 71 papers