Gradium hat open-sourced Phonon, eine Familie kleiner Text-to-Speech-Modelle, die darauf ausgelegt sind, auf dem Gerät zu laufen. Das Gradium Phonon On-Device-TTS-Modell gibt es in den Größen 31M und 40M. Das englische Phonon 31m erscheint unter Apache 2.0 und passt in eine 64.5-MB-Datei. Entwickler erhalten natürliche Sprache ohne Cloud-Aufruf, ohne GPU und ohne Rechnung pro Zeichen.
TL;DR
- Größe: 31M Parameter (ohne den Audio-Tokenizer), 64.5 MB q8 GGUF, 24 kHz Mono-Ausgabe. Phonon 40m: 40M, 74.6 MB.
- Läuft auf: CPUs, Smartphones, Raspberry Pi 5, Browsern (WASM, WebGPU) und NVIDIA-GPUs. Keine GPU erforderlich.
- Leistung: bestes englisches Elo unter den von Gradium getesteten offenen Modellen; etwa 7 ms bis zum ersten Audio auf der CPU.
- Beste: 1.70% WER auf einem schweren Satz von 500 Sätzen, gegenüber 3.50% für Kokoro (Gradiums Evaluierung).
- Schlechteste: 0.51% Seed-TTS LLM WER, hinter Kokoro (0.45%) und Magpie (0.46%).
Was ist Gradium Phonon?
Phonon ist eine Open-Weight-TTS-Familie von Gradium, einem Pariser Voice-AI-Unternehmen, das aus Kyutai ausgegründet wurde. Es erzeugt Sprache lokal auf Smartphones, Laptops, Boards und in Browsern.
Die Familie umfasst drei Modelle:
- Phonon 31m: nur Englisch, 37 integrierte Stimmen, Apache 2.0.
- Phonon 40m: 1 Modell pro Sprache (Englisch, Französisch, Deutsch, Spanisch, Portugiesisch), CC BY-NC 4.0.
- Phonon 40m multilingual: alle 5 Sprachen in 1 Modell, 102 Stimmen, CC BY-NC 4.0.
Wie funktioniert Phonon?
Phonon verwendet eine kausale Transformer-Architektur als Backbone. Sein Präfix kombiniert Text- und Speaker-Embeddings. Ein SentencePiece-Tokenizer mit einem Vokabular von 4,000 Token liest Rohtext, ohne Phonemkonvertierung.
Das Backbone erzeugt 1 latenten Vektor pro 80-ms-Frame. Ein Flow-Matching-Head verwandelt diesen Vektor plus Rauschen in einem einzigen Schritt in ein Audio-Embedding. Eine kleinere Variante von Kyutais Mimi Der Decoder gibt anschließend 24 kHz PCM-Audio aus. Ein separater End-of-Speech-Kopf entscheidet, wann gestoppt wird.
Phonon 31m verwendet 6 Transformer-Schichten, eine Breite von 512 und 8 Attention-Heads. Phonon 40m verwendet 9 Schichten bei derselben Breite. Beide wurden von einem größeren Phonon-Lehrmodell destilliert. Das Training lief auf einem NVIDIA-H100-Cluster mit NCCL und CUDA Graphs.
Die Arbeit baut auf Kyutais Kontinuierliche Audio-Sprachmodelle research and Pocket TTS.
</span> <div class="st"><span class="n">SCHRITT 2</span><b>SentencePiece</b></div><span class="arr"></span> <div class="st"><span class="n">SCHRITT 3</span><b>Causal transformer</b></div><span class="arr"></span> <div class="st"><span class="n">SCHRITT 4</span><b>Flow-matching head</b></div><span class="arr"></span> <div class="st"><span class="n">SCHRITT 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"> Zurück</button> <button class="btn" id="next">Nächster Schritt </button> <button class="btn ghost" id="play">Frames streamen</button> <span class="cap">Jeder Balken ist 1 Latent-Frame = 80 ms 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 (niedriger ist besser)</button> <button data-b="elo">Englisch-Elo (höher ist besser)</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">Zeit bis zum ersten Audio</div><div class="val" id="g1">6.9 ms</div><div class="src" id="g1s"></div></div> <div class="gc"><div class="k">Geschwindigkeit im Vergleich zur Echtzeit</div><div class="val" id="g2">29.9x</div><div class="src" id="g2s"></div></div> </div> <div class="note">Gradium-Blogzeilen sind Phonon 31m; Partner- und Pressemitteilungszeilen nennen die Variante nicht. Ein höherer "x real time"-Wert bedeutet mehr Sekunden Audio pro Sekunde Rechenzeit. Gemessen von Gradium und Launch-Partnern.</div> </div> <div class="panel" id="p-trade"> <div class="to"> <div class="tc p"><h4>Wo Phonon 31m führt</h4><ul> <li>1.70% hart gesetzte WER gegenüber 3.50% bei Kokoro</li> <li>6.9 ms bis zum ersten Audio auf einer MacBook Air M5 CPU</li> <li>3.7x Echtzeit auf einem Raspberry Pi 5</li> <li>Apache 2.0 Gewichte, Tokenizer und Stimmen</li></ul></div> <div class="tc c"><h4>Wo es Schwächen hat</h4><ul> <li>0.51% Seed-TTS WER, hinter Kokoro mit 0.45%</li> <li>Nur Englisch bei 31M; 40m-Modelle sind CC BY-NC</li> <li>Prosodie setzt bei langem Text zwischen Sätzen zurück</li> <li>Alle Benchmarks werden von Gradium durchgeführt</li></ul></div> </div> </div> <div class="ft"><span>Quellen: gradium.ai/blog, huggingface.co/gradium · selbst angegebene Zahlen</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=['Eingabetext plus ein Sprecher-Embedding. Die Stimme kann eingebaut, geklont oder in Gradium Studio entworfen werden, dann lokal ausgeführt werden.', 'Roher Text wird zu Tokens aus einem 4,000-Token-SentencePiece-Vokabular. Keine Phonem-Konvertierung, daher lassen sich neue Sprachen leichter hinzufügen.', 'Ein kausaler Transformer (6 Layer, Breite 512, 8 Köpfe bei 31m) erzeugt autoregressiv 1 latenten Vektor pro 80-ms-Frame.', 'Ein Flow-Matching-Head verwandelt jeden latenten Vektor plus Rauschen in einem einzigen Schritt in ein kontinuierliches Audio-Embedding. Ein End-of-Speech-Head entscheidet, wann gestoppt wird.', 'Eine kleinere Variante von Kyutai\'s Mimi-Decoder wandelt Embeddings in 24 kHz PCM-Audio um, gestreamt, während die Generierung weiterläuft.']; 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 harte englische Sätze (Telefonnummern, E-Mails, Postleitzahlen). Magpie erzielte 27.51%, außerhalb dieser Skala. Die Hugging-Face-Karte nennt 1.5% für Phonon 31m; der Blog nennt 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:'Blinde paarweise Hörtests, US-Englisch: 468 Bewerter, 8,290 Stimmen. Balken beginnen bei 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 englische Evaluierungssätze, LLM-unterstützte WER. Hier liegt Phonon 31m hinter Kokoro und 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, kein 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 mit Qualcomm'], ['Arm CPU + KleidiAI','von Arm gemessen','28 ms','15x','Gemessen von Arm'], ['NVIDIA L40S','CUDA-Backend','5 ms','Nicht offengelegt','Gradium-Presse 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">Wie schneidet Phonon bei Benchmarks ab?
Gradium führte blinde paarweise Hörtests mit 1,189 Bewertern und 17,270 Stimmen durch. In US-Englisch erreichte Phonon 40m einen Wert von 2117 Elo und Phonon 31m einen Wert von 2098. Kokoro erreichte 2043, NeuTTS 2034 und Magpie 1939.
Die Genauigkeit wurde an einem öffentlichen Satz-Set mit schwierigen Sätzengetestet. Es enthält 500 Sätze pro Sprache, voller Telefonnummern, E-Mail-Adressen und Postleitzahlen. Phonon 31m erreichte 1.70 % WER gegenüber 3.50 % für Kokoro und 8.71 % für NeuTTS Nano.
Die eingebaute Textnormalisierung trägt viel zu diesem Abstand bei.
Beim einfacheren Seed-TTS-Set schließt sich der Abstand. Phonon 31m erreichte 0.51 % LLM WER, während Kokoro 0.45 % erreichte.
Wie schnell ist Phonon auf einer CPU?
Auf einer MacBook Air M5 CPU mit 4 Threads erreicht Phonon 31m das erste Audio in 6.9 ms. Es läuft 29.9x schneller als in Echtzeit. Kokoro benötigt 517 ms, da es nicht streamt. Mit Arm KleidiAI und Apple Accelerate erreicht Phonon 31m 46.7x Echtzeit.
Auf einem Raspberry Pi 5 startet Phonon 31m in 38 ms und läuft 3.7x schneller als in Echtzeit. Gradium sagt, dass Kokoro dort 7 Sekunden zum Starten benötigt.
Auf einem Snapdragon 8 Elite Gen 5 startet Phonon in 7.5 ms bei 24x Echtzeit. Auf einem NVIDIA L40S erreicht CUDA die erste Sprache in 5 ms. Eine AMD EPYC 7413 CPU benötigt 43 ms, laut der Pressemitteilung.
Vergleich: Phonon vs. Kokoro, NeuTTS Nano und Kitten TTS
| Funktion | Phonon 31m | Phonon 40m mehrsprachig | Kokoro-82M | NeuTTS Nano | Kitten TTS v0.8 |
|---|---|---|---|---|---|
| Entwickler | Gradium | Gradium | hexgrad | Neuphonic | KittenML |
| Parameter | 31M (ohne Tokenizer) | 40M | 82M | ~228.7M gesamt, ~116.8M aktiv | 15M / 40M / 80M |
| Gewichte | 64.5 MB (q8) | 74.6 MB (q8) | Nicht offengelegt | Nicht offengelegt | 25 bis 80 MB |
| Sprachen | Englisch | EN, FR, DE, ES, PT | 8 (v1.0) | Englisch (Sammlung umfasst ES, FR, DE) | Englisch |
| Lizenz | Apache 2.0 | CC BY-NC 4.0 | Apache 2.0 | NeuTTS Open License 1.0 | Apache 2.0 |
| Festgesetzte WER, EN (Gradium eval) | 1.70% | 2.11% | 3.50% | 8.71% | 7.40% (Variante nicht offengelegt) |
| Englisch Elo (Gradium eval) | 2098 | 2097 | 2043 | 2034 | Nicht getestet |
| Seed-TTS LLM WER, EN (Gradium eval) | 0.51% | 0.48% | 0.45% | 0.62% | Nicht getestet |
| Erstes Audio, M5 CPU, 4 Threads | 6.9 ms | 8.8 ms (40m arch) | 517 ms | Nicht offengelegt | Nicht offengelegt |
Benchmark-Zeilen stammen aus Gradiums Blog und Modellkarte. Zeilen zu Größe, Sprache und Lizenz stammen aus der jeweiligen Modellkarte.
Wie können Entwickler Phonon einsetzen?
Die Laufzeit ist MIT- oder Apache-2.0-lizenziert. Es deckt Rust, Python (pip install ptts), Swift, C, C++ und den Browser über phonon-ttsab. Es enthält außerdem einen OpenAI-kompatiblen Server und einen WebSocket-Server.
Phonon lädt in Transformers, MLX-Audio, Ollama und LM Studio. Voice Cloning und Voice Design laufen in Gradium Studio, anschließend läuft die Stimme lokal.
Wichtigste Erkenntnisse
- Phonon 31m ist ein 31M, 64.5 MB großes englisches TTS-Modell unter Apache 2.0.
- Es weist eine WER von 1.70 % auf schwerem Text auf, gegenüber 3.50 % bei Kokoro.
- Das erste Audio kommt in 6.9 ms auf einer MacBook Air M5 CPU an.
- Es läuft 3.7x schneller als Echtzeit auf einem Raspberry Pi 5.
- Multilinguale 40m-Modelle existieren, jedoch unter einer nicht-kommerziellen Lizenz.
Schauen Sie sich den technischen Blog, die Modellkarte, die GitHub-Runtime und den Hard-Sentence-Datensatzan. Aller Dank geht an die Forscherin bzw. den Forscher dieses Projekts. Außerdem können Sie uns gerne auf Twitter folgen und vergessen Sie nicht, unserem 150k+ML SubReddit beizutreten und unseren Newsletterzu abonnieren. Moment! Sind Sie auf Telegram? jetzt können Sie uns auch auf Telegram beitreten.
Müssen Sie mit uns zusammenarbeiten, um Ihr GitHub-Repo ODER Ihre Hugging Face-Seite ODER Ihr Produktrelease ODER ein Webinar usw. zu bewerben? Verbinden Sie sich mit uns
Der Beitrag Gradium Open-Sources Phonon, ein TTS-Modell mit 31M-Parametern für On-Device-Nutzung unter Apache 2.0 erschien zuerst auf MarkTechPost.