Skip to page content
SAVRN
Search Plan a project

Open-weight model · Audio to audio

gtcrn-coreai

by Max Farrell maxffarrell/gtcrn-coreai

gtcrn-coreai is an open-weight model for audio to audio from Max Farrell, released under MIT License. Its published files total 4.9 MB.

This release mirrors maxffarrell/gtcrn-coreai at source commit 5a5b0529f89c7146fc196f602ed2635adc681374. Choose DNS3 for general speech enhancement; VCTK-DEMAND is provided for matching that training corpus and reproducing related experiments.

Parameters—
Context—
Weights4.9 MB
Licensemit
AccessOpen weights
Monthly Downloads—

Model Card

By Max Farrell, published under mit, revision 6826a451b20a.

This release mirrors maxffarrell/gtcrn-coreai at source commit 5a5b0529f89c7146fc196f602ed2635adc681374. Choose DNS3 for general speech enhancement; VCTK-DEMAND is provided for matching that training corpus and reproducing related experiments. Download the complete repository, preserving the.aimodel bundle directories: For deployment you can download only exports/, LICENSE, and THIRDPARTYNOTICES.md using hf download --include. The numerical and latency results below were measured in August 2026 on the specified beta software stack; they have not been remeasured for newer releases. A reproducible, streaming Core AI conversion of GTCRN, the 48.2K-parameter speech-enhancement network…

Read Max Farrell's full model card

GTCRN for Apple Core AI

This release mirrors maxffarrell/gtcrn-coreai at source commit 5a5b0529f89c7146fc196f602ed2635adc681374. Choose DNS3 for general speech enhancement; VCTK-DEMAND is provided for matching that training corpus and reproducing related experiments.

Download the complete repository, preserving the .aimodel bundle directories:

hf download maxffarrell/gtcrn-coreai --local-dir gtcrn-coreai
cd gtcrn-coreai
uv sync
uv run gtcrn-coreai-validate --variant dns3 --frames 8

For deployment you can download only exports/*, LICENSE, and THIRD_PARTY_NOTICES.md using hf download --include.

The numerical and latency results below were measured in August 2026 on the specified beta software stack; they have not been remeasured for newer releases.

A reproducible, streaming Core AI conversion of GTCRN, the 48.2K-parameter speech-enhancement network introduced in GTCRN: A Speech Enhancement Model Requiring Ultralow Computational Resources.

This repository contains the conversion source, both MIT-licensed upstream checkpoints, and ready-to-load float16 .aimodel assets. It targets Apple's new Core AI framework—not the older Core ML .mlmodel/.mlpackage format.

[!IMPORTANT] This is an independent conversion, not an official release from the GTCRN authors or Apple. The model graph and bundled weights are attributed to Rong Xiaobin and contributors; see Attribution and license.

What is included

Artifact Purpose
exports/gtcrn_dns3_float16_streaming.aimodel Ready-to-use DNS3 checkpoint
exports/gtcrn_vctk_float16_streaming.aimodel Ready-to-use VCTK-DEMAND checkpoint
weights/*.tar Unmodified upstream PyTorch checkpoints
src/gtcrn_coreai/export.py Reproducible PyTorch → Core AI conversion
src/gtcrn_coreai/validate.py Consecutive-frame PyTorch/Core AI parity check
src/gtcrn_coreai/benchmark.py Stateful per-frame specialization benchmark

GTCRN expects a complex short-time Fourier transform (STFT), not raw audio. The export processes one frame every 256 samples: 16 ms at 16 kHz. Its recurrent and causal-convolution state is explicit, which makes cross-call behavior deterministic and avoids relying on runtime state that may reset between calls.

Quick start

You need an Apple-silicon Mac and Python 3.11–3.13. uv is recommended because the lockfile pins the working toolchain.

brew install uv
uv sync

Export either pretrained variant:

uv run gtcrn-coreai-export --variant dns3 --overwrite
uv run gtcrn-coreai-export --variant vctk --overwrite

This runs the same high-level path used by Apple's coreai-models recipes:

  1. Load the upstream PyTorch checkpoint and convert it to the causal streaming architecture.
  2. Export a static-shape torch.export.ExportedProgram.
  3. Apply Core AI's decomposition table.
  4. Convert with TorchConverter, optimize, attach provenance metadata, and save a self-contained .aimodel asset.

The default is float16, Apple's recommended baseline for efficient on-device inference. This network is only about 48K parameters, so aggressive weight compression offers little absolute size benefit and is intentionally not applied without an audio-quality study.

Model interface

All tensors are float16 in the bundled assets.

Name Direction Static shape Meaning
spectrogram input [1, 257, 1, 2] One complex STFT frame as real/imaginary pairs
convolution_state input [2, 1, 16, 16, 33] Encoder/decoder causal convolution state
attention_state input [2, 3, 1, 1, 16] Encoder/decoder temporal-attention GRU state
inter_frame_state input [2, 1, 33, 16] Dual-path inter-frame GRU state
enhanced_spectrogram output [1, 257, 1, 2] Enhanced complex STFT frame
convolution_state_out output [2, 1, 16, 16, 33] State for the next frame
attention_state_out output [2, 3, 1, 1, 16] State for the next frame
inter_frame_state_out output [2, 1, 33, 16] State for the next frame

Initialize all three state inputs to zero at the start of a stream. After each inference call, feed each *_out value into its corresponding state input. Use the original settings for reconstruction:

  • mono audio at 16 kHz
  • 512-point FFT and 512-sample window
  • 256-sample hop
  • square root of a Hann window

The model asset intentionally keeps STFT/iSTFT and overlap-add outside the neural graph. In an app, those operations belong in the real-time audio pipeline.

Python runtime validation

On a Core AI-capable macOS installation, compare consecutive real audio frames against PyTorch:

uv run gtcrn-coreai-validate \
  exports/gtcrn_dns3_float16_streaming.aimodel \
  --variant dns3 \
  --frames 8

The command verifies function names and shapes, carries state across calls, and requires at least 40 dB PSNR for every enhanced spectral frame. It defaults to CPU-only specialization to isolate numerical correctness from accelerator placement; pass --compute-unit gpu to validate GPU specialization too. This is a graph parity check; perceptual quality should also be evaluated on a representative speech/noise corpus before shipping a product.

Run the source checks with:

uv run ruff check .
uv run pytest

Benchmark a specialization over consecutive frames with recurrent state feedback (timing excludes STFT and model load):

uv run gtcrn-coreai-benchmark --compute-unit cpu
uv run gtcrn-coreai-benchmark --compute-unit gpu

See Neural Engine evaluation for the ANE experiment, failure evidence, and the decision to ship the current graph with CPU/GPU specialization rather than claim partial or unstable ANE acceleration.

Validation results

Measured on an Apple M4 Max running macOS 27.0 with coreai-core 1.0.0b2 and coreai-torch 0.4.1. Each Core AI result carries all three state tensors across eight consecutive frames from the included real test recording.

Asset Specialization Minimum PSNR Mean PSNR
DNS3 float16 CPU 56.16 dB 72.23 dB
DNS3 float16 GPU 60.44 dB 71.33 dB
VCTK float16 CPU 62.36 dB 71.37 dB
VCTK float16 GPU 64.93 dB 72.57 dB

The streaming PyTorch graph was also compared with the original full-context causal graph across all 611 frames of test_wavs/mix.wav: maximum absolute spectral error was 1.05e-5 and mean absolute error was 1.74e-8.

[!NOTE] Neural Engine residency is not claimed. Explicit/default ANE specialization cannot load the current decomposed PReLU/GRU graph on the validation machine, so there is no valid ANE latency result to compare. CPU and GPU specialization both execute and pass parity. The measured decision and reproduction details are in docs/ane-evaluation.md.

Ahead-of-time compilation

The .aimodel assets can be loaded directly. For ahead-of-time compilation and deployment diagnostics, install the full current Xcode release and use Apple's coreai-build tool:

xcrun coreai-build compile \
  exports/gtcrn_dns3_float16_streaming.aimodel \
  --platform iOS

Compiler availability, flags, and supported deployment versions follow the installed Xcode release. See Apple's ahead-of-time compilation documentation for the current platform options. A successful Python conversion does not by itself prove Neural Engine residency or real-time performance on every device; profile the compiled asset on the devices you intend to support. Ahead-of-time coreai-build compilation was not run for this release because the validation machine had Command Line Tools rather than full Xcode installed.

Design notes

  • Faithful weights and math. The architecture and checkpoint mapping come from the official GTCRN implementation. No retraining or unmeasured quantization is performed.
  • Functional state boundary. The upstream streaming model updates cache slices in place. The export wrapper clones state tensors at its boundary so torch.export retains them as live inputs and produces explicit state outputs.
  • Static one-frame input. A fixed shape is appropriate for low-latency audio and gives Core AI the best opportunity to specialize the graph.
  • Float16 baseline. It balances size, precision, and Apple-silicon execution. Float32 remains available with --dtype float32 for debugging.

Attribution and license

The original GTCRN repository, architecture, streaming implementation, test audio, and checkpoints are Copyright © 2024 Rong Xiaobin and are distributed under the MIT License. This repository preserves that license and source attribution. The Core AI conversion code is Copyright © 2026 Max Farrell and is also MIT licensed.

Please cite the original paper when using the model:

Xiaobin Rong et al., “GTCRN: A Speech Enhancement Model Requiring Ultralow Computational Resources,” ICASSP 2024, DOI 10.1109/ICASSP48485.2024.10448310.

Full provenance and third-party details are in THIRD_PARTY_NOTICES.md; machine-readable citation metadata is in CITATION.cff.

Identity and Version

Repository
maxffarrell/gtcrn-coreai
Publisher
Max Farrell
Task
Audio to audio
Modality
Audio
Library
Not stated by the source
Parameters
Not stated by the source
Languages
on-device
Revision
6826a451b20ad00df907a1cfeaf19ca53f0d0ee1
First published
2026-10-05
Last updated
2026-10-05

Files and Weights

36 files, 4.9 MB in total.

Configuration16 files · 61.0 KB
Documentation7 files · 19.3 KB
Other10 files · 4.8 MB
Repository3 files · 983 B
Every file
FileTypeSizeSHA-256
.github/workflows/ci.ymlConfiguration519 B —
exports/gtcrn_dns3_float16_streaming.aimodel/metadata.jsonConfiguration412 B —
exports/gtcrn_vctk_float16_streaming.aimodel/metadata.jsonConfiguration412 B —
src/gtcrn_coreai/__init__.pyConfiguration430 B —
src/gtcrn_coreai/audio.pyConfiguration867 B —
src/gtcrn_coreai/benchmark.pyConfiguration4.8 KB —
src/gtcrn_coreai/convert.pyConfiguration1.6 KB —
src/gtcrn_coreai/convolution.pyConfiguration10.4 KB —
src/gtcrn_coreai/export.pyConfiguration4.2 KB —
src/gtcrn_coreai/interface.pyConfiguration306 B —
src/gtcrn_coreai/loader.pyConfiguration2.3 KB —
src/gtcrn_coreai/model.pyConfiguration12.7 KB —
src/gtcrn_coreai/stream.pyConfiguration14.7 KB —
src/gtcrn_coreai/validate.pyConfiguration4.7 KB —
tests/test_benchmark.pyConfiguration424 B —
tests/test_loader.pyConfiguration2.2 KB —
LICENSEDocumentation1.1 KB —
README.mdDocumentation9.8 KB —
SECURITY.mdDocumentation1.3 KB —
THIRD_PARTY_NOTICES.mdDocumentation1.1 KB —
docs/ane-evaluation.mdDocumentation4.3 KB —
exports/README.mdDocumentation905 B —
weights/README.mdDocumentation772 B —
CITATION.cffOther586 B —
exports/gtcrn_dns3_float16_streaming.aimodel/main.hashOther32 B —
exports/gtcrn_dns3_float16_streaming.aimodel/main.mlirbOther1.5 MB 3c8c21435d1f
exports/gtcrn_vctk_float16_streaming.aimodel/main.hashOther32 B —
exports/gtcrn_vctk_float16_streaming.aimodel/main.mlirbOther1.5 MB 2882ee304686
pyproject.tomlOther1.2 KB —
test_wavs/mix.wavOther312.6 KB 8d47e1d03eeb
uv.lockOther139.7 KB —
weights/model_trained_on_dns3.tarOther579.8 KB a630d992cf79
weights/model_trained_on_vctk.tarOther737.3 KB a0f0e04421d9
.gitattributesRepository548 B —
.gitignoreRepository430 B —
.python-versionRepository5 B —

License and Download

License
mit
Access
Open weights, no gate
Download from Max Farrell

Released by Max Farrell through its official repository on Hugging Face. Read the license.

Questions About gtcrn-coreai

Can I use gtcrn-coreai commercially?

Yes. gtcrn-coreai is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.

Similar Models

Model · Audio to audio

bigvgan_v2_22khz_80band_256x

NVIDIA

[[Paper]](https://arxiv.org/abs/2206.04658) - [[Code]](https://github.com/NVIDIA/BigVGAN) - [[Showcase]](https://bigvgan-demo.github.io/) - [[Project Page]](https://research.nvidia.com/labs/adlr/projects/bigvgan/) - [[Weights]](https://huggingface.co/collections/nvidia/bigvgan-66959df3d97fd7d98d97dc9a) - [[Demo]](https://huggingface.co/spaces/nvidia/BigVGAN) - General refactor and code improvements for improved readability. - Fully fused CUDA kernel of anti-alised activation (upsampling + activation + downsampling) with inference speed benchmark. - We provide pretrained checkpoints of BigVGAN-v2 using diverse audio configurations, supporting up to 44 kHz sampling rate and 512x upsampling…

Open weights mit PyTorch

Model · Audio to audio

bigvgan_v2_44khz_128band_512x

NVIDIA

[[Paper]](https://arxiv.org/abs/2206.04658) - [[Code]](https://github.com/NVIDIA/BigVGAN) - [[Showcase]](https://bigvgan-demo.github.io/) - [[Project Page]](https://research.nvidia.com/labs/adlr/projects/bigvgan/) - [[Weights]](https://huggingface.co/collections/nvidia/bigvgan-66959df3d97fd7d98d97dc9a) - [[Demo]](https://huggingface.co/spaces/nvidia/BigVGAN) - General refactor and code improvements for improved readability. - Fully fused CUDA kernel of anti-alised activation (upsampling + activation + downsampling) with inference speed benchmark. - We provide pretrained checkpoints of BigVGAN-v2 using diverse audio configurations, supporting up to 44 kHz sampling rate and 512x upsampling…

Open weights mit PyTorch

Descript Audio Codec running on-device on the LiteRT CompiledModel GPU (ML Drift). The convolutional encoder/decoder run on the GPU; the RVQ runs on CPU. 43:1 compression (1 s → 12×50 codes), RTF ≈ 0.82 (faster than real-time) on Pixel 8a. - dac16khzencoderfp16.tflite (43 MB) — audio[1,1,16000] → latent[1,1024,50], GPU. - dac16khzdeconlyzsfp16.tflite (105 MB) — latent[1,1024,50] → audio, GPU. - dacrvq.bin (1.2 MB) — RVQ weights (12 codebooks) for the CPU quantizer (float32 LE). encoder 367/367 + decoder 398/398 nodes on the LiteRT GPU delegate (LITERTCL, 1 partition, no CPU fallback); warm RTF ~0.82; reconstruction corr 1.0 vs PyTorch DAC. The decoder's ConvTranspose1d are rewritten to a…

Open weights mit litert

Model · Audio to audio

ArkEcho-RVC-M3-C-F

Ethernos

本仓库(Repository)所包含的所有人工神经网络(Artificial Neural Network)权重文件(.pth/.index)、训练日志及相关代码,均为计算声学(Computational Acoustics)与深度学习(Deep Learning)领域的技术研究实验产物。 这些文件本质上是高维张量(High-dimensional Tensors)的数值序列,通过随机梯度下降(SGD)与反向传播算法(Backpropagation)对公开可获取的音频数据进行统计建模(Statistical Modeling)得到。其技术形态与数字图像处理中的卷积核(Convolution Kernels)、自然语言处理中的词向量(Word Embeddings)并无本质差异。 本仓库不构成对任何第三方知识产权的故意侵犯,所有代码遵循 MIT License 开源协议,模型权重文件仅作为技术实现的副产品(By-products)存在。 本技术实验所使用的训练数据集(Training Dataset)包含以下角色的语音样本: - Mon3tr(モンスター)、Mon3tr 中文语音 等 - 声源版权归属:上海鹰角网络科技有限公司(Hypergryph Network Technology Co., Ltd.)及其关联公司 - 原始作品:《明日方舟》(Arknights) 上述角色的声音版权、肖像权、姓名权及相关知识产权均完全归属于鹰角网络及其合法授权方。本实验仅基于已公开发布的游戏内语音资源进行技术层面的信号处理(Signal Processing)与特征提取(Feature…

Open weights cc-by-nc-4.0

Model · Audio to audio

MOSS-v2-12to32-Enhancer-60M

LAION eV

A small causal Qwen3 model that predicts 32 MOSS v2 audio-codebook indices from the 12 indices of the current frame and up to ten previously generated HQ frames. It is trained from scratch on German, English, Spanish and French speech. This is an experimental enhancement model. Validation cross entropy measures token prediction under teacher forcing. It does not establish an improvement in perceived audio quality. Use the generated-history listening evaluation to judge speech content, speaker identity, artifacts and long-utterance stability. Root inference weights: step 64,699, selected by held-out extra-20-codebook cross entropy 5.818123. - Step 12,940: 100 originals / 200 input cases…

Open weights cc-by-nc-4.0 pytorch

Model · Audio to audio

ghana-vc-Avatime_avn

Ghana Open AI

Voice conversion for Avatime (avn). An audio-to-audio model that converts speech into the Zephyr voice while preserving the language. This checkpoint is dedicated to Avatime: it was fine-tuned only on Avatime (avn) clips from starting from the zero-shot seed-uvit-whisper-small-wavenet base. Use it to convert audio in Avatime. For other languages — or as a cross-lingual fallback — use ghanaopenai/ghana-vc. The library auto-selects this model when the dataset/config name matches.

Open weights cc-by-nc-4.0