ULUNAS Speech Enhancement
ULUNAS is an ultra-lightweight U-Net for real-time speech enhancement. This package provides an FP32 LiteRT model for removing background noise from 16 kHz mono audio samples.
✨ Key Highlights
- Real-time performance — RTFx 23.14 (over 23× faster than real time) on an Android™ Vivo X300 using one Arm® CPU thread.
- Compact model — 5.71 MB.
📦 Model Details
Model Description
ULUNAS uses an ultra-lightweight U-Net selected through neural architecture search. Its upstream architecture combines efficient convolutional blocks with affine PReLU activations and causal time-frequency attention for speech enhancement on low-footprint devices.
- Developed by: Xiaobin Rong, Leyan Yang, Dahan Wang, Yuxiang Hu, Changbao Zhu, Kai Chen, and Jing Lu
- Model type: Streaming U-Net speech-enhancement model
- License: MIT
- Base model: ULUNAS trained on DNS3
- Packaged variant: FP32 LiteRT model
- Package form: LiteRT model, runtime manifest, representative input and output, and checksums
Model Sources
- Base model: ULUNAS DNS3 checkpoint at revision
631d2c8 - Upstream repository: Xiaobin-Rong/ul-unas
- Paper: UL-UNAS: Ultra-Lightweight U-Nets for Real-Time Speech Enhancement via Network Architecture Search
🚀 Get Started with the Model
🔓 Compute Flow — Early Access
The inference engine for this model package is available through the Compute Flow Early Access Program.
Want to try it?
📩 Contact us at ai-early-access@arm.com to request access.
📊 Quality evaluation
Accuracy has not been evaluated. The model uses the FP32 data type, so its accuracy is expected to match the original implementation.
🎯 Performance evaluation
Performance was measured under the following conditions:
- Target: Android™ Vivo X300 smartphone.
- CPU: One Arm® CPU thread.
- Runs: 5 warmups followed by 30 measured fresh-process runs, with one second between runs.
The following methodology and definitions were used:
- Runtime: LiteRT 2.1.6 with the XNNPACK CPU backend.
- Input: The distributed 10-second, 16 kHz mono
samples/noisy.wavsample. - Latency is the profiled audio-enhancement
run()scope, including 626 streaming LiteRT frame invocations and caller overhead. Model setup, warmup, WAV decoding, and output file I/O are excluded. - Real-time factor (RTF) is latency divided by the 10-second input duration. Values below 1 are faster than real time, and lower values are faster. Percentiles are calculated from the 30 measured runs.
| Metric | p50 | p90 | p99 |
|---|---|---|---|
| Latency | 432.215 ms | 438.115 ms | 441.055 ms |
| RTF | 0.0432 | 0.0438 | 0.0441 |
⚠️ Known Limitations
- The packaged contract supports 16 kHz mono audio only.
🛠️ Technical Specifications
Objective
Enhance noisy speech as a stream while keeping model execution state in the runtime and exposing a fixed-shape FP32 frame contract to the caller.
Runtime Architecture
| Component role | Framework / format |
|---|---|
| Frame transforms and speech enhancement | FP32 LiteRT FlatBuffer (.tflite) |
| Streaming state | LiteRT state tensors |
| Frame scheduling and audio assembly | Caller-managed overlap-add pipeline |
Precision and Quantization
The model artifact, inputs, outputs, and streaming states use FP32. No quantization is applied.
Input Specification
| Input | Description |
|---|---|
frame | FP32 tensor with shape [1, 512] containing one 512-sample audio frame. |
The input is a 16 kHz mono audio sample. Frames advance by the manifest's 256-sample hop length.
Output Specification
enhanced_frame is an FP32 tensor with shape [1, 512]. The caller overlap-adds and normalizes the
enhanced frames to produce the output audio sample.
Repository Contents
benchmarks/ulunas-speech-enhancement-vivo-x300-baseline.yaml— Android™ Vivo X300 performance report.manifest.json— runtime model, tensor, state, and audio-configuration contract.metadata.yaml— model identity, origin, format, precision, and publication metadata.samples/enhanced.wav— 16 kHz mono FP32 output generated fromsamples/noisy.wavwith the packaged artifact.samples/noisy.wav— representative 10-second, 16 kHz mono PCM input from the upstream project.ulunas_fused_frame_fp32_litert.tflite— FP32 LiteRT streaming speech-enhancement model.SHA256SUMS— model-package checksums for reproducibility.
🗂️ Model and Asset Origin
ulunas_fused_frame_fp32_litert.tflitewas re-exported from the upstreammodel_trained_on_dns3.tarPyTorch checkpoint. The conversion applies an exact current-frame rewrite for decoder transposed convolutions and includes the fixed frame transforms in the graph.samples/noisy.wavis byte-identical to upstreamaudio/noisy/0119.wav.samples/enhanced.wavwas generated fromsamples/noisy.wavwith the packaged LiteRT artifact.manifest.jsonwas authored for this package from the validated LiteRT tensor and state contract.metadata.yamlrecords the packaged model identity and publication fields.benchmarks/ulunas-speech-enhancement-vivo-x300-baseline.yamlrecords the performance results presented in this model card.
🔐 Checksums
SHA256SUMS was generated by recursively hashing every regular file in the model bundle, including
files in subdirectories, except the generated root SHA256SUMS and paths with a dotfile component.
From the model bundle root, verify the checked-out files with:
shasum -a 256 -c SHA256SUMS
Citation
@ARTICLE{ulunas,
author={Rong, Xiaobin and Yang, Leyan and Wang, Dahan and Hu, Yuxiang and
Zhu, Changbao and Chen, Kai and Lu, Jing},
journal={IEEE Transactions on Audio, Speech and Language Processing},
title={UL-UNAS: Ultra-Lightweight U-Nets for Real-Time Speech Enhancement via
Network Architecture Search},
year={2026},
volume={34},
number={},
pages={1085-1096},
keywords={Computational modeling;Computer architecture;Convolution;Speech enhancement;
Computational efficiency;Performance evaluation;Computational complexity;Artificial
intelligence;Time-frequency analysis;Time-domain analysis;Speech enhancement;
ultra-lightweight;neural architecture search;computational complexity},
doi={10.1109/TASLPRO.2026.3661271}}