• bitcoinBitcoin(BTC)$81,394.00-3.66%
  • ethereumEthereum(ETH)$2,386.95-4.35%
  • tetherTether(USDT)$1.00-0.05%
  • binancecoinBNB(BNB)$731.94-2.24%
  • rippleXRP(XRP)$1.31-5.57%
  • usd-coinUSDC(USDC)$1.00-0.02%
  • solanaSolana(SOL)$103.68-4.17%
  • tronTRON(TRX)$0.327849-1.21%
  • Figure HelocFigure Heloc(FIGR_HELOC)$1.042.60%
  • zcashZcash(ZEC)$1,219.36-9.72%
  • HyperliquidHyperliquid(HYPE)$77.78-4.90%
  • dogecoinDogecoin(DOGE)$0.078777-5.12%
  • moneroMonero(XMR)$608.90-0.22%
  • USDSUSDS(USDS)$1.00-0.03%
  • whitebitWhiteBIT Coin(WBT)$79.00-4.28%
  • chainlinkChainlink(LINK)$11.98-5.53%
  • leo-tokenLEO Token(LEO)$8.98-0.68%
  • cardanoCardano(ADA)$0.213004-6.70%
  • nearNEAR Protocol(NEAR)$4.94-7.02%
  • stellarStellar(XLM)$0.176629-4.87%
  • RainRain(RAIN)$0.008611-6.05%
  • bitcoin-cashBitcoin Cash(BCH)$274.43-4.41%
  • Ethena USDeEthena USDe(USDE)$1.00-0.03%
  • litecoinLitecoin(LTC)$58.58-5.33%
  • daiDai(DAI)$1.000.00%
  • uniswapUniswap(UNI)$7.05-7.27%
  • CantonCanton(CC)$0.102184-8.98%
  • avalanche-2Avalanche(AVAX)$9.15-7.41%
  • suiSui(SUI)$0.98-6.14%
  • USD1USD1(USD1)$1.00-0.03%
  • the-open-networkGram (prev. Toncoin)(GRAM)$1.32-2.70%
  • hedera-hashgraphHedera(HBAR)$0.079277-7.46%
  • tether-goldTether Gold(XAUT)$4,025.55-2.47%
  • Global DollarGlobal Dollar(USDG)$1.00-0.02%
  • paypal-usdPayPal USD(PYUSD)$1.00-0.04%
  • BittensorBittensor(TAO)$257.20-6.64%
  • shiba-inuShiba Inu(SHIB)$0.000005-4.94%
  • crypto-com-chainCronos(CRO)$0.056305-4.46%
  • quant-networkQuant(QNT)$188.51-10.36%
  • EthenaEthena(ENA)$0.200448-8.24%
  • BitwayBitway(BTW)$1.757.26%
  • Circle USYCCircle USYC(USYC)$1.140.01%
  • Ripple USDRipple USD(RLUSD)$1.00-0.01%
  • Ondo US Dollar YieldOndo US Dollar Yield(USDY)$1.150.03%
  • okbOKB(OKB)$110.60-5.30%
  • aaveAave(AAVE)$146.74-7.12%
  • BlackRock USD Institutional Digital Liquidity FundBlackRock USD Institutional Digital Liquidity Fund(BUIDL)$1.000.00%
  • Pump.funPump.fun(PUMP)$0.004655-7.16%
  • worldcoin-wldWorldcoin(WLD)$0.56-2.01%
  • OndoOndo(ONDO)$0.430247-7.94%
TradePoint.io
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop
No Result
View All Result
TradePoint.io
No Result
View All Result

Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0

October 22, 2026
in AI & Technology
Reading Time: 16 mins read
A A
Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0
ShareShareShareShareShare

Gradium has open-sourced Phonon, a family of small text-to-speech models built to run on the device. The Gradium Phonon on-device TTS model comes in 31M and 40M sizes. The English Phonon 31m ships under Apache 2.0 and fits in a 64.5 MB file. Developers get natural speech with no cloud call, no GPU and no per-character bill.

TL;DR

  • Size: 31M parameters (excluding the audio tokenizer), 64.5 MB q8 GGUF, 24 kHz mono output. Phonon 40m: 40M, 74.6 MB.
  • Runs on: CPUs, phones, Raspberry Pi 5, browsers (WASM, WebGPU) and NVIDIA GPUs. No GPU required.
  • Performance: top English Elo among open models Gradium tested; about 7 ms to first audio on CPU.
  • Best: 1.70% WER on a 500-sentence hard set, versus 3.50% for Kokoro (Gradium’s eval).
  • Worst: 0.51% Seed-TTS LLM WER, behind Kokoro (0.45%) and Magpie (0.46%).

What is Gradium Phonon?

Phonon is an open-weight TTS family from Gradium, a Paris voice AI company spun out of Kyutai. It generates speech locally on phones, laptops, boards and browsers.

The family has three models:

  • Phonon 31m: English only, 37 built-in voices, Apache 2.0.
  • Phonon 40m: 1 model per language (English, French, German, Spanish, Portuguese), CC BY-NC 4.0.
  • Phonon 40m multilingual: all 5 languages in 1 model, 102 voices, CC BY-NC 4.0.

How does Phonon work?

Phonon uses a causal transformer backbone. Its prefix combines text and speaker embeddings. A SentencePiece tokenizer with a 4,000-token vocabulary reads raw text, with no phoneme conversion.

The backbone generates 1 latent vector per 80 ms frame. A flow-matching head turns that vector plus noise into an audio embedding in a single step. A smaller variant of Kyutai’s Mimi decoder then outputs 24 kHz PCM audio. A separate end-of-speech head decides when to stop.

Phonon 31m uses 6 transformer layers, width 512 and 8 attention heads. Phonon 40m uses 9 layers at the same width. Both are distilled from a larger Phonon teacher. Training ran on an NVIDIA H100 cluster with NCCL and CUDA Graphs.

The work builds on Kyutai’s Continuous Audio Language Models research and Pocket TTS.

<iframe id="mtp-phonon-frame" title="Gradium Phonon interactive explainer" srcdoc="<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Phonon Explainer</title>
<style>
#mtp-phonon{–bg:#0d0d0b;–card:#17160f;–line:#2c2a22;–cream:#f2ede3;–mute:#a39e90;–acc:#ff7a3d;–acc2:#ffd2b8;–mtp:#76B900;
font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif!important;background:var(–bg)!important;color:var(–cream)!important;
max-width:880px;margin:0 auto;border:1px solid var(–line)!important;border-radius:16px;overflow:hidden;position:relative;box-sizing:border-box}
#mtp-phonon *{box-sizing:border-box}
#mtp-phonon hr,#mtp-phonon p:empty,#mtp-phonon del,#mtp-phonon s{display:none!important}
#mtp-phonon .dots{position:absolute;inset:0;background-image:radial-gradient(rgba(242,237,227,.07) 1px,transparent 1.4px);background-size:14px 14px;pointer-events:none}
#mtp-phonon .hd{position:relative;padding:22px 24px 14px;border-bottom:1px solid var(–line)!important}
#mtp-phonon .kick{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(–acc)!important;font-weight:700}
#mtp-phonon h3{margin:6px 0 4px!important;font-size:24px!important;line-height:1.2!important;color:var(–cream)!important;font-weight:800}
#mtp-phonon .sub{color:var(–mute)!important;font-size:14px;margin:0}
#mtp-phonon .tabs{position:relative;display:flex;gap:6px;padding:12px 24px 0;flex-wrap:wrap}
#mtp-phonon .tab{background:transparent!important;border:1px solid var(–line)!important;color:var(–mute)!important;padding:8px 14px;border-radius:999px;font:600 13px Inter,system-ui,sans-serif;cursor:pointer;transition:all .25s}
#mtp-phonon .tab:hover{color:var(–cream)!important;border-color:var(–mute)!important}
#mtp-phonon .tab.on{background:var(–cream)!important;color:#111!important;border-color:var(–cream)!important}
#mtp-phonon .panel{display:none;position:relative;padding:20px 24px 22px;animation:mtpfade .45s ease}
#mtp-phonon .panel.on{display:block}
@keyframes mtpfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#mtp-phonon .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
#mtp-phonon .mc{background:var(–card)!important;border:1px solid var(–line)!important;border-radius:12px;padding:14px;cursor:pointer;transition:transform .25s,border-color .25s}
#mtp-phonon .mc:hover,#mtp-phonon .mc.on{transform:translateY(-3px);border-color:var(–acc)!important}
#mtp-phonon .mc b{display:block;font-size:16px;color:var(–cream)!important}
#mtp-phonon .mc .big{font-size:30px;font-weight:800;color:var(–acc)!important;margin:6px 0 2px}
#mtp-phonon .mc small{color:var(–mute)!important;font-size:12px}
#mtp-phonon .lic{display:inline-block;margin-top:8px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;border:1px solid var(–line)!important}
#mtp-phonon .lic.ok{color:var(–mtp)!important;border-color:var(–mtp)!important}
#mtp-phonon .lic.nc{color:var(–acc2)!important}
#mtp-phonon .detail{margin-top:12px;background:var(–card)!important;border:1px dashed var(–line)!important;border-radius:12px;padding:12px 14px;font-size:14px;color:var(–cream)!important;min-height:48px}
#mtp-phonon .pipe{display:flex;align-items:stretch;gap:6px;margin:4px 0 14px}
#mtp-phonon .st{flex:1;background:var(–card)!important;border:1px solid var(–line)!important;border-radius:10px;padding:10px 8px;text-align:center;font-size:12px;color:var(–mute)!important;transition:all .35s;position:relative}
#mtp-phonon .st .n{display:block;font-size:10px;letter-spacing:.1em;color:var(–mute)!important}
#mtp-phonon .st b{display:block;font-size:13px;color:var(–cream)!important;margin-top:2px}
#mtp-phonon .st.on{border-color:var(–acc)!important;background:#231a12!important;transform:translateY(-3px);box-shadow:0 0 0 3px rgba(255,122,61,.15)}
#mtp-phonon .arr{align-self:center;color:var(–line)!important;font-size:14px}
#mtp-phonon .frames{display:flex;gap:4px;height:46px;align-items:flex-end;margin:6px 0 12px;padding:6px;background:var(–card)!important;border:1px solid var(–line)!important;border-radius:10px;overflow:hidden}
#mtp-phonon .fr{flex:1;background:var(–acc)!important;border-radius:2px;opacity:.25;height:20%;transition:height .3s,opacity .3s}
#mtp-phonon .fr.live{opacity:1}
#mtp-phonon .ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#mtp-phonon .btn{background:var(–acc)!important;color:#111!important;border:0!important;padding:8px 14px;border-radius:8px;font:700 13px Inter,system-ui,sans-serif;cursor:pointer}
#mtp-phonon .btn.ghost{background:transparent!important;color:var(–cream)!important;border:1px solid var(–line)!important}
#mtp-phonon .cap{color:var(–mute)!important;font-size:12px}
#mtp-phonon .seg{display:inline-flex;border:1px solid var(–line)!important;border-radius:8px;overflow:hidden;margin-bottom:12px}
#mtp-phonon .seg button{background:transparent!important;border:0!important;color:var(–mute)!important;padding:7px 12px;font:600 12px Inter,system-ui,sans-serif;cursor:pointer}
#mtp-phonon .seg button.on{background:var(–cream)!important;color:#111!important}
#mtp-phonon .bar{display:grid;grid-template-columns:150px 1fr 64px;align-items:center;gap:10px;margin:7px 0;font-size:13px}
#mtp-phonon .bar .lb{color:var(–cream)!important}
#mtp-phonon .bar .tr{height:14px;background:var(–card)!important;border-radius:4px;overflow:hidden;border:1px solid var(–line)!important}
#mtp-phonon .bar .fl{height:100%;width:0;background:#5b574c!important;transition:width 1s cubic-bezier(.2,.8,.2,1)}
#mtp-phonon .bar.me .fl{background:var(–acc)!important}
#mtp-phonon .bar .v{text-align:right;font-weight:700;color:var(–cream)!important;font-variant-numeric:tabular-nums}
#mtp-phonon .note{font-size:12px;color:var(–mute)!important;margin-top:10px;line-height:1.5}
#mtp-phonon .hw{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
#mtp-phonon .hwc{background:var(–card)!important;border:1px solid var(–line)!important;border-radius:12px;padding:12px;cursor:pointer;transition:border-color .25s}
#mtp-phonon .hwc.on{border-color:var(–acc)!important}
#mtp-phonon .hwc b{font-size:13px;color:var(–cream)!important;display:block}
#mtp-phonon .hwc small{color:var(–mute)!important;font-size:11px}
#mtp-phonon .gauge{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
#mtp-phonon .gc{background:var(–card)!important;border:1px solid var(–line)!important;border-radius:12px;padding:14px}
#mtp-phonon .gc .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(–mute)!important}
#mtp-phonon .gc .val{font-size:34px;font-weight:800;color:var(–acc)!important;font-variant-numeric:tabular-nums}
#mtp-phonon .gc .src{font-size:11px;color:var(–mute)!important}
#mtp-phonon .to{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#mtp-phonon .tc{background:var(–card)!important;border:1px solid var(–line)!important;border-radius:12px;padding:14px}
#mtp-phonon .tc h4{margin:0 0 8px!important;font-size:14px!important;color:var(–cream)!important}
#mtp-phonon .tc ul{margin:0;padding-left:18px}
#mtp-phonon .tc li{font-size:13px;color:var(–cream)!important;margin:5px 0;line-height:1.45}
#mtp-phonon .tc.p h4{color:var(–mtp)!important}
#mtp-phonon .tc.c h4{color:var(–acc2)!important}
#mtp-phonon .ft{position:relative;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 24px;border-top:1px solid var(–line)!important;font-size:11px;color:var(–mute)!important}
#mtp-phonon .ft .brand{color:var(–mtp)!important;font-weight:700}
@media (max-width:640px){
#mtp-phonon h3{font-size:20px!important}
#mtp-phonon .grid3{grid-template-columns:1fr}
#mtp-phonon .hw{grid-template-columns:1fr 1fr}
#mtp-phonon .gauge,#mtp-phonon .to{grid-template-columns:1fr}
#mtp-phonon .pipe{flex-direction:column}
#mtp-phonon .arr{transform:rotate(90deg)}
#mtp-phonon .bar{grid-template-columns:110px 1fr 56px;font-size:12px}
#mtp-phonon .hd,#mtp-phonon .panel,#mtp-phonon .ft{padding-left:16px;padding-right:16px}
#mtp-phonon .tabs{padding-left:16px;padding-right:16px}
}
</style>
</head>
<body style="margin:0;background:transparent">
<div id="mtp-phonon">
<div class="dots"></div>
<div class="hd">
<div class="kick">Gradium · Open-weight TTS</div>
<h3>Phonon: speech on the device, in 64.5 MB</h3>
<p class="sub">31M and 40M parameter text-to-speech models. No cloud call, no GPU required.</p>
</div>
<div class="tabs" role="tablist">
<button class="tab on" data-t="fam">Model family</button>
<button class="tab" data-t="how">How it works</button>
<button class="tab" data-t="bench">Benchmarks</button>
<button class="tab" data-t="speed">Speed by device</button>
<button class="tab" data-t="trade">Trade-offs</button>
</div>

<div class="panel on" id="p-fam">
<div class="grid3">
<div class="mc on" data-d="English only, 37 built-in voices (25 + 12 character voices). Weights file model.q8.gguf, 64.5 MB. Apache 2.0, so commercial use is allowed.">
<b>Phonon 31m</b><div class="big">31M</div><small>English · 64.5 MB q8</small><br><span class="lic ok">Apache 2.0</span></div>
<div class="mc" data-d="1 model per language: English, French, German, Spanish, Portuguese. 9 transformer layers. Best expressivity and accuracy in the family. Commercial use needs a deal with Gradium.">
<b>Phonon 40m</b><div class="big">40M</div><small>1 model per language · 74.6 MB</small><br><span class="lic nc">CC BY-NC 4.0</span></div>
<div class="mc" data-d="All 5 languages in a single set of weights, with 102 built-in voices. Shares the 40m architecture. Commercial use needs a deal with Gradium.">
<b>40m multilingual</b><div class="big">5</div><small>languages in 1 model · 74.6 MB</small><br><span class="lic nc">CC BY-NC 4.0</span></div>
</div>
<div class="detail" id="fam-d">English only, 37 built-in voices (25 + 12 character voices). Weights file model.q8.gguf, 64.5 MB. Apache 2.0, so commercial use is allowed.</div>
</div>

<div class="panel" id="p-how">
<div class="pipe">
<div class="st on"><span class="n">STEP 1</span><b>Text + voice</b></div><span class="arr"></span>
<div class="st"><span class="n">STEP 2</span><b>SentencePiece</b></div><span class="arr">Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0</span>
<div class="st"><span class="n">STEP 3</span><b>Causal transformer</b></div><span class="arr">Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0</span>
<div class="st"><span class="n">STEP 4</span><b>Flow-matching head</b></div><span class="arr">Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0</span>
<div class="st"><span class="n">STEP 5</span><b>Mimi decoder</b></div>
</div>
<div class="detail" id="how-d"></div>
<div class="frames" id="frames"></div>
<div class="ctl">
<button class="btn ghost" id="prev">◀ Back</button>
<button class="btn" id="next">Next step Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0</button>
<button class="btn ghost" id="play">Stream frames</button>
<span class="cap">Each bar is 1 latent frame = 80 ms of 24 kHz audio</span>
</div>
</div>

<div class="panel" id="p-bench">
<div class="seg" id="bseg">
<button class="on" data-b="wer">Hard-set WER (lower is better)</button>
<button data-b="elo">English Elo (higher is better)</button>
<button data-b="seed">Seed-TTS WER</button>
</div>
<div id="bars"></div>
<div class="note" id="bnote"></div>
</div>

<div class="panel" id="p-speed">
<div class="hw" id="hw"></div>
<div class="gauge">
<div class="gc"><div class="k">Time to first audio</div><div class="val" id="g1">6.9 ms</div><div class="src" id="g1s"></div></div>
<div class="gc"><div class="k">Speed vs real time</div><div class="val" id="g2">29.9x</div><div class="src" id="g2s"></div></div>
</div>
<div class="note">Gradium blog rows are Phonon 31m; partner and press-release rows do not name the variant. Higher "x real time" means more seconds of audio per second of compute. Measured by Gradium and launch partners.</div>
</div>

<div class="panel" id="p-trade">
<div class="to">
<div class="tc p"><h4>Where Phonon 31m leads</h4><ul>
<li>1.70% hard-set WER vs 3.50% for Kokoro</li>
<li>6.9 ms to first audio on a MacBook Air M5 CPU</li>
<li>3.7x real time on a Raspberry Pi 5</li>
<li>Apache 2.0 weights, tokenizer and voices</li></ul></div>
<div class="tc c"><h4>Where it falls short</h4><ul>
<li>0.51% Seed-TTS WER, behind Kokoro at 0.45%</li>
<li>English only at 31M; 40m models are CC BY-NC</li>
<li>Prosody resets between sentences on long text</li>
<li>All benchmarks are run by Gradium</li></ul></div>
</div>
</div>

<div class="ft"><span>Sources: gradium.ai/blog, huggingface.co/gradium · self-reported numbers</span><span class="brand">Built by Marktechpost</span></div>
</div>
<script>
(function(){
var R=document.getElementById(‘mtp-phonon’);
function send(){try{parent.postMessage({mtpFrameHeight:R.offsetHeight+40,id:’mtp-phonon’},’*’)}catch(e){}}
R.querySelectorAll(‘.tab’).forEach(function(t){t.addEventListener(‘click’,function(){
R.querySelectorAll(‘.tab’).forEach(function(x){x.classList.remove(‘on’)});t.classList.add(‘on’);
R.querySelectorAll(‘.panel’).forEach(function(p){p.classList.remove(‘on’)});
R.querySelector(‘#p-‘+t.dataset.t).classList.add(‘on’);
if(t.dataset.t===’bench’)drawBars(cur);
setTimeout(send,60);});});
R.querySelectorAll(‘.mc’).forEach(function(c){c.addEventListener(‘click’,function(){
R.querySelectorAll(‘.mc’).forEach(function(x){x.classList.remove(‘on’)});c.classList.add(‘on’);
document.getElementById(‘fam-d’).textContent=c.dataset.d;setTimeout(send,30);});});
var steps=[‘Input text plus a speaker embedding. The voice can be built-in, cloned or designed in Gradium Studio, then run locally.’,
‘Raw text becomes tokens from a 4,000-token SentencePiece vocabulary. No phoneme conversion, so new languages are easier to add.’,
‘A causal transformer (6 layers, width 512, 8 heads in 31m) generates 1 latent vector per 80 ms frame, autoregressively.’,
‘A flow-matching head turns each latent plus noise into a continuous audio embedding in a single step. An end-of-speech head decides when to stop.’,
‘A smaller variant of Kyutai\’s Mimi decoder converts embeddings into 24 kHz PCM audio, streamed while generation continues.’];
var si=0,sts=R.querySelectorAll(‘.st’);
function setStep(i){si=(i+5)%5;sts.forEach(function(s,k){s.classList.toggle(‘on’,k===si)});document.getElementById(‘how-d’).textContent=steps[si];}
setStep(0);
document.getElementById(‘next’).onclick=function(){setStep(si+1)};
document.getElementById(‘prev’).onclick=function(){setStep(si-1)};
var F=document.getElementById(‘frames’);for(var i=0;i<24;i++){var d=document.createElement(‘div’);d.className=”fr”;F.appendChild(d);}
var tm=null;document.getElementById(‘play’).onclick=function(){
var fr=F.children,k=0;clearInterval(tm);setStep(2);
for(var j=0;j<fr.length;j++){fr[j].classList.remove(‘live’);fr[j].style.height=”20%”;}
tm=setInterval(function(){if(k>=fr.length){clearInterval(tm);setStep(4);return;}
fr[k].classList.add(‘live’);fr[k].style.height=(30+Math.round(Math.abs(Math.sin(k*1.3))*65))+’%’;
if(k===8)setStep(3);k++;},110);};
var B={wer:{max:9,u:’%’,rows:[[‘Phonon 31m’,1.70,1],[‘Phonon 40m multi’,2.11,1],[‘Phonon 40m’,2.22,1],[‘Kokoro’,3.50],[‘Kitten TTS’,7.40],[‘NeuTTS Nano’,8.71]],
n:’500 hard English sentences (phone numbers, emails, postal codes). Magpie scored 27.51%, off this scale. The Hugging Face card lists 1.5% for Phonon 31m; the blog lists 1.70%.’},
elo:{max:2150,min:1900,u:”,rows:[[‘Phonon 40m’,2117,1],[‘Phonon 31m’,2098,1],[‘Phonon 40m multi’,2097,1],[‘Pocket TTS 100m’,2056],[‘Kokoro’,2043],[‘NeuTTS’,2034],[‘Magpie’,1939]],
n:’Blind pairwise listening tests, US English: 468 raters, 8,290 votes. Bars start at 1900 Elo.’},
seed:{max:0.7,u:’%’,rows:[[‘Phonon 40m’,0.45,1],[‘Kokoro’,0.45],[‘Magpie’,0.46],[‘Phonon 40m multi’,0.48,1],[‘Phonon 31m’,0.51,1],[‘NeuTTS’,0.62]],
n:’Seed-TTS English evaluation sentences, LLM-assisted WER. Here Phonon 31m trails Kokoro and Magpie.’}};
var cur=”wer”;
function drawBars(k){cur=k;var b=B[k],h=””;b.rows.forEach(function(r){h+='<div class="bar’+(r[2]?’ me’:”)+’"><span class="lb">’+r[0]+'</span><div class="tr"><div class="fl" data-w="’+(((r[1]-(b.min||0))/(b.max-(b.min||0)))*100).toFixed(1)+’"></div></div><span class="v">’+(k===’elo’?r[1]:r[1].toFixed(2)+b.u)+'</span></div>’});
document.getElementById(‘bars’).innerHTML=h;document.getElementById(‘bnote’).textContent=b.n;
setTimeout(function(){R.querySelectorAll(‘#bars .fl’).forEach(function(f){f.style.width=f.dataset.w+’%’})},40);setTimeout(send,80);}
R.querySelectorAll(‘#bseg button’).forEach(function(x){x.onclick=function(){R.querySelectorAll(‘#bseg button’).forEach(function(y){y.classList.remove(‘on’)});x.classList.add(‘on’);drawBars(x.dataset.b);}});
drawBars(‘wer’);
var H=[[‘MacBook Air M5 CPU’,’4 threads, no KleidiAI’,’6.9 ms’,’29.9x’,’Gradium blog’],
[‘M5 + KleidiAI + Accelerate’,’4 threads’,’5.4 ms’,’46.7x’,’Gradium blog’],
[‘Raspberry Pi 5′,’CPU’,’38 ms’,’3.7x’,’Gradium blog’],
[‘Snapdragon 8 Elite Gen 5′,’Oryon CPU’,’7.5 ms’,’24x’,’Gradium with Qualcomm’],
[‘Arm CPU + KleidiAI’,’Arm-measured’,’28 ms’,’15x’,’Measured by Arm’],
[‘NVIDIA L40S’,’CUDA backend’,’5 ms’,’Not disclosed’,’Gradium press release’]];
var hw=document.getElementById(‘hw’),hh=””;H.forEach(function(r,i){hh+='<div class="hwc’+(i?”:’ on’)+’" data-i="’+i+’"><b>’+r[0]+'</b><small>’+r[1]+'</small></div>’});hw.innerHTML=hh;
function count(el,txt){var m=txt.match(/[\d.]+/);if(!m){el.textContent=txt;return;}var end=parseFloat(m[0]),dec=(m[0].split(‘.’)[1]||”).length,suf=txt.slice(m.index+m[0].length),t0=null;
function f(ts){if(!t0)t0=ts;var p=Math.min((ts-t0)/600,1);el.textContent=(end*p).toFixed(dec)+suf;if(p<1)requestAnimationFrame(f);}requestAnimationFrame(f);}
function pick(i){var r=H[i];R.querySelectorAll(‘.hwc’).forEach(function(c){c.classList.toggle(‘on’,+c.dataset.i===i)});
count(document.getElementById(‘g1’),r[2]);count(document.getElementById(‘g2’),r[3]);
document.getElementById(‘g1s’).textContent=r[4];document.getElementById(‘g2s’).textContent=r[4];}
R.querySelectorAll(‘.hwc’).forEach(function(c){c.onclick=function(){pick(+c.dataset.i)}});
pick(0);
window.addEventListener(‘load’,send);window.addEventListener(‘resize’,send);setTimeout(send,300);
})();
</script>
</body>
</html>
” style=”width:100%;height:600px;border:0;display:block;background:transparent;” loading=”lazy” scrolling=”no”>

window.addEventListener(‘message’,function(e){if(e.data&&e.data.id===’mtp-phonon’&&e.data.mtpFrameHeight){var f=document.getElementById(‘mtp-phonon-frame’);if(f)f.style.height=e.data.mtpFrameHeight+’px’;}});

How does Phonon perform on benchmarks?

Gradium ran blind pairwise listening tests with 1,189 raters and 17,270 votes. In US English, Phonon 40m scored 2117 Elo and Phonon 31m scored 2098. Kokoro scored 2043, NeuTTS 2034 and Magpie 1939.

Accuracy was tested on a public hard-sentence set. It holds 500 sentences per language, full of phone numbers, emails and postal codes. Phonon 31m scored 1.70% WER against 3.50% for Kokoro and 8.71% for NeuTTS Nano.

Built-in text normalization drives much of that gap.

On the easier Seed-TTS set, the gap closes. Phonon 31m scored 0.51% LLM WER, while Kokoro scored 0.45%.

How fast is Phonon on a CPU?

On a MacBook Air M5 CPU with 4 threads, Phonon 31m reaches first audio in 6.9 ms. It runs 29.9x faster than real time. Kokoro takes 517 ms, because it does not stream. With Arm KleidiAI and Apple Accelerate, Phonon 31m reaches 46.7x real time.

On a Raspberry Pi 5, Phonon 31m starts in 38 ms and runs 3.7x faster than real time. Gradium says Kokoro needs 7 seconds to start there.

On Snapdragon 8 Elite Gen 5, Phonon starts in 7.5 ms at 24x real time. On an NVIDIA L40S, CUDA reaches first speech in 5 ms. An AMD EPYC 7413 CPU takes 43 ms, per the press release.

Comparison: Phonon vs Kokoro, NeuTTS Nano and Kitten TTS

Feature Phonon 31m Phonon 40m multilingual Kokoro-82M NeuTTS Nano Kitten TTS v0.8
Developer Gradium Gradium hexgrad Neuphonic KittenML
Parameters 31M (excl. tokenizer) 40M 82M ~228.7M total, ~116.8M active 15M / 40M / 80M
Weights 64.5 MB (q8) 74.6 MB (q8) Not disclosed Not disclosed 25 to 80 MB
Languages English EN, FR, DE, ES, PT 8 (v1.0) English (collection adds ES, FR, DE) English
License Apache 2.0 CC BY-NC 4.0 Apache 2.0 NeuTTS Open License 1.0 Apache 2.0
Hard-set WER, EN (Gradium eval) 1.70% 2.11% 3.50% 8.71% 7.40% (variant not disclosed)
English Elo (Gradium eval) 2098 2097 2043 2034 Not tested
Seed-TTS LLM WER, EN (Gradium eval) 0.51% 0.48% 0.45% 0.62% Not tested
First audio, M5 CPU, 4 threads 6.9 ms 8.8 ms (40m arch) 517 ms Not disclosed Not disclosed

Benchmark rows come from Gradium’s blog and model card. Size, language and license rows come from each model’s own card.

How can developers deploy Phonon?

The runtime is MIT or Apache-2.0 licensed. It covers Rust, Python (pip install ptts), Swift, C, C++ and the browser via phonon-tts. It also ships an OpenAI-compatible server and a WebSocket server.

Phonon loads in Transformers, MLX-Audio, Ollama and LM Studio. Voice cloning and voice design run in Gradium Studio, then the voice runs locally.

Key Takeaways

  • Phonon 31m is a 31M, 64.5 MB English TTS model under Apache 2.0.
  • It reports 1.70% WER on hard text, against 3.50% for Kokoro.
  • First audio arrives in 6.9 ms on a MacBook Air M5 CPU.
  • It runs 3.7x faster than real time on a Raspberry Pi 5.
  • Multilingual 40m models exist, but under a non-commercial license.


Check out the technical blog, model card, GitHub runtime and hard-sentence dataset. All credit goes to the researcher of this project. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.

Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us

YOU MAY ALSO LIKE

Bluesky Adds iPad Support In Latest Feature Update

Sundar Pichai (Allegedly) Draws The Line At Oceans

The post Gradium Open-Sources Phonon, a 31M-Parameter On-Device TTS Model Under Apache 2.0 appeared first on MarkTechPost.

Credit: Source link

ShareTweetSendSharePin

Related Posts

Bluesky Adds iPad Support In Latest Feature Update
AI & Technology

Bluesky Adds iPad Support In Latest Feature Update

October 22, 2026
Sundar Pichai (Allegedly) Draws The Line At Oceans
AI & Technology

Sundar Pichai (Allegedly) Draws The Line At Oceans

October 22, 2026
Ayush Sharma, Founder and CEO of Warp – Interview Series – Unite.AI
AI & Technology

Ayush Sharma, Founder and CEO of Warp – Interview Series – Unite.AI

October 22, 2026
iPhone Duo’s Next-Gen Prototypes Are Trying To Cram In Face ID
AI & Technology

iPhone Duo’s Next-Gen Prototypes Are Trying To Cram In Face ID

October 22, 2026
Next Post
Kansas officials step up security, conduct assessment after deadly soccer field crash

Kansas officials step up security, conduct assessment after deadly soccer field crash

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

No Result
View All Result
About 130 missing after ferry overturns off Indonesia

About 130 missing after ferry overturns off Indonesia

October 16, 2026
Power On: Is Apple’s HomeView Ecosystem Worth Buying Into?

Power On: Is Apple’s HomeView Ecosystem Worth Buying Into?

October 16, 2026
Tesla ahead of earnings: Opportunity or trap? James Demmert gives his rapid-fire picks

Tesla ahead of earnings: Opportunity or trap? James Demmert gives his rapid-fire picks

October 21, 2026

About

Learn more

Our Services

Legal

Privacy Policy

Terms of Use

Bloggers

Learn more

Article Links

Contact

Advertise

Ask us anything

©2020- TradePoint.io - All rights reserved!

Tradepoint.io, being just a publishing and technology platform, is not a registered broker-dealer or investment adviser. So we do not provide investment advice. Rather, brokerage services are provided to clients of Tradepoint.io by independent SEC-registered broker-dealers and members of FINRA/SIPC. Every form of investing carries some risk and past performance is not a guarantee of future results. “Tradepoint.io“, “Instant Investing” and “My Trading Tools” are registered trademarks of Apperbuild, LLC.

This website is operated by Apperbuild, LLC. We have no link to any brokerage firm and we do not provide investment advice. Every information and resource we provide is solely for the education of our readers. © 2020 Apperbuild, LLC. All rights reserved.

No Result
View All Result
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop

© 2023 - TradePoint.io - All Rights Reserved!