Sakhanda Wire
NVDA — MSFT — GOOGL — META — AMZN —
← К новостям

Gradium открыла исходный код Phonon — TTS-модели для устройств с 31 млн параметров под Apache 2.0

Gradium открыла исходный код Phonon — семейства небольших моделей преобразования текста в речь, созданных для работы на устройстве. Модель Gradium Phonon для локального синтеза речи выпускается в версиях на 31 и 40 млн параметров. Англоязычная Phonon 31m распространяется по лицензии Apache 2.0 и помещается в файл размером 64,5 МБ. Разработчики получают естественную речь без обращения к облаку, графического процессора и оплаты за каждый символ.

Кратко

  • Размер: 31 млн параметров (без учёта аудиотокенизатора), 64,5 МБ в формате q8 GGUF, монофонический вывод 24 кГц. Phonon 40m: 40 млн параметров, 74,6 МБ.
  • Работает на: процессорах, телефонах, Raspberry Pi 5, в браузерах (WASM, WebGPU) и на графических процессорах NVIDIA. GPU не требуется.
  • Производительность: максимальный показатель Elo среди протестированных Gradium открытых моделей для английского языка; около 7 мс до появления первого аудио на CPU.
  • Лучший результат: 1,70% WER на сложном наборе из 500 предложений против 3,50% у Kokoro (оценка Gradium).
  • Худший результат: WER 0,51% на наборе Seed-TTS LLM — ниже, чем у Kokoro (0,45%) и Magpie (0,46%).

Что такое Gradium Phonon?

Phonon — семейство моделей синтеза речи с открытыми весами от компании Gradium, занимающейся голосовым ИИ в Париже и выделившейся из Kyutai. Оно генерирует речь локально на телефонах, ноутбуках, одноплатных компьютерах и в браузерах.

В семейство входят три модели:

  • Phonon 31m: только английский язык, 37 встроенных голосов, Apache 2.0.
  • Phonon 40m: отдельная модель для каждого языка (английского, французского, немецкого, испанского и португальского), CC BY-NC 4.0.
  • Phonon 40m multilingual: все 5 языков в одной модели, 102 голоса, CC BY-NC 4.0.

Как работает Phonon?

Phonon использует каузальный трансформер в качестве базовой архитектуры. Его префикс объединяет текстовые эмбеддинги и эмбеддинги говорящего. Токенизатор SentencePiece со словарём из 4000 токенов обрабатывает исходный текст без преобразования в фонемы.

Базовая модель генерирует один латентный вектор на каждый кадр длительностью 80 мс. Голова flow matching за один шаг превращает этот вектор вместе с шумом в аудиоэмбеддинг. Затем уменьшенная версия декодера Mimi от Kyutai выдаёт PCM-аудио с частотой 24 кГц. Отдельная голова определения конца речи решает, когда остановиться.

Phonon 31m использует 6 слоёв трансформера, ширину 512 и 8 голов внимания. Phonon 40m использует 9 слоёв при той же ширине. Обе модели дистиллированы из более крупной модели-учителя Phonon. Обучение выполнялось на кластере NVIDIA H100 с использованием NCCL и CUDA Graphs.

Работа основана на исследованиях Kyutai Continuous Audio Language Models и Pocket TTS.

</span> <div class="st"><span class="n">ШАГ 2</span><b>SentencePiece</b></div><span class="arr"></span> <div class="st"><span class="n">ШАГ 3</span><b>Каузальный трансформер</b></div><span class="arr"></span> <div class="st"><span class="n">ШАГ 4</span><b>Голова flow matching</b></div><span class="arr"></span> <div class="st"><span class="n">ШАГ 5</span><b>Декодер Mimi</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">◀ Назад</button> <button class="btn" id="next">Следующий шаг </button> <button class="btn ghost" id="play">Поток кадров</button> <span class="cap">Каждая полоска — 1 латентный кадр = 80 мс аудио с частотой 24 кГц</span> </div> </div> <div class="panel" id="p-bench"> <div class="seg" id="bseg"> <button class="on" data-b="wer">WER на сложном наборе (меньше — лучше)</button> <button data-b="elo">Elo для английского (больше — лучше)</button> <button data-b="seed">WER Seed-TTS</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">Время до первого аудио</div><div class="val" id="g1">6.9 мс</div><div class="src" id="g1s"></div></div> <div class="gc"><div class="k">Скорость относительно реального времени</div><div class="val" id="g2">29.9x</div><div class="src" id="g2s"></div></div> </div> <div class="note">Строки из блога Gradium относятся к Phonon 31m; в строках партнёров и пресс-релиза вариант модели не указан. Чем выше показатель «x относительно реального времени», тем больше секунд аудио обрабатывается за одну секунду вычислений. Измерения выполнены Gradium и партнёрами при запуске.</div> </div> <div class="panel" id="p-trade"> <div class="to"> <div class="tc p"><h4>В чём Phonon 31m превосходит другие модели</h4><ul> <li>WER 1,70% на сложном наборе против 3,50% у Kokoro</li> <li>6,9 мс до первого аудио на CPU MacBook Air M5</li> <li>3,7x относительно реального времени на Raspberry Pi 5</li> <li>Веса, токенизатор и голоса по лицензии Apache 2.0</li></ul></div> <div class="tc c"><h4>В чём она уступает</h4><ul> <li>WER 0,51% на Seed-TTS против 0,45% у Kokoro</li> <li>Только английский язык в версии 31M; модели 40m распространяются по CC BY-NC</li> <li>На длинном тексте просодия сбрасывается между предложениями</li> <li>Все тесты проведены Gradium</li></ul></div> </div> </div> <div class="ft"><span>Источники: gradium.ai/blog, huggingface.co/gradium · данные предоставлены самими разработчиками</span><span class="brand">Создано 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=['Введите текст и эмбеддинг говорящего. Голос может быть встроенным, клонированным или созданным в Gradium Studio, после чего он запускается локально.', 'Исходный текст преобразуется в токены с помощью словаря SentencePiece из 4000 токенов. Преобразование в фонемы не используется, поэтому добавлять новые языки проще.', 'Каузальный трансформер (6 слоёв, ширина 512, 8 голов в версии 31m) авторегрессионно генерирует 1 латентный вектор на каждый кадр длительностью 80 мс.', 'Голова flow matching за один шаг превращает каждый латентный вектор вместе с шумом в непрерывный аудиоэмбеддинг. Голова определения конца речи решает, когда остановиться.', 'Уменьшенная версия декодера Mimi от Kyutai преобразует эмбеддинги в PCM-аудио с частотой 24 кГц, которое передаётся в поток во время продолжения генерации.']; 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 сложных английских предложений (номера телефонов, электронные адреса, почтовые индексы). Magpie набрала 27,51%, что выходит за пределы этой шкалы. В карточке Hugging Face указано 1,5% для Phonon 31m; в блоге указано 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:'Слепые попарные тесты прослушивания, американский английский: 468 оценщиков, 8290 голосов. Полосы начинаются со значения 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, WER с помощью LLM. Здесь Phonon 31m уступает Kokoro и 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 потока, без KleidiAI','6,9 мс','29,9x','Блог Gradium'], ['M5 + KleidiAI + Accelerate','4 потока','5,4 мс','46,7x','Блог Gradium'], ['Raspberry Pi 5','CPU','38 мс','3,7x','Блог Gradium'], ['Snapdragon 8 Elite Gen 5','CPU Oryon','7,5 мс','24x','Gradium совместно с Qualcomm'], ['Arm CPU + KleidiAI','Измерено Arm','28 мс','15x','Измерено Arm'], ['NVIDIA L40S','Бэкенд CUDA','5 мс','Не раскрыто','Пресс-релиз Gradium']]; 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">

Как Phonon показывает себя в тестах?

Gradium провела слепые попарные тесты прослушивания с участием 1189 оценщиков и 17 270 голосами. В американском английском Phonon 40m получила 2117 Elo, а Phonon 31m — 2098. Kokoro получила 2043, NeuTTS — 2034, а Magpie — 1939.

Точность проверялась на общедоступном наборе сложных предложений. Он содержит по 500 предложений на каждый язык, насыщенных номерами телефонов, электронными адресами и почтовыми индексами. Phonon 31m показала WER 1,70% против 3,50% у Kokoro и 8,71% у NeuTTS Nano.

Встроенная нормализация текста во многом объясняет эту разницу.

На более простом наборе Seed-TTS разрыв сокращается. Phonon 31m показала WER LLM 0,51%, тогда как Kokoro — 0,45%.

Насколько быстро Phonon работает на CPU?

На CPU MacBook Air M5 с 4 потоками Phonon 31m выдаёт первое аудио за 6,9 мс. Скорость работы в 29,9 раза выше реального времени. Kokoro требуется 517 мс, поскольку она не поддерживает потоковую передачу. С Arm KleidiAI и Apple Accelerate Phonon 31m достигает скорости 46,7x относительно реального времени.

На Raspberry Pi 5 Phonon 31m запускается за 38 мс и работает в 3,7 раза быстрее реального времени. По словам Gradium, Kokoro требуется 7 секунд только для запуска на этом устройстве.

На Snapdragon 8 Elite Gen 5 Phonon начинает работу за 7,5 мс при скорости 24x относительно реального времени. На NVIDIA L40S CUDA выдаёт первую речь за 5 мс. Процессору AMD EPYC 7413 требуется 43 мс, согласно пресс-релизу.

Сравнение: Phonon против Kokoro, NeuTTS Nano и Kitten TTS

ХарактеристикаPhonon 31mPhonon 40m multilingualKokoro-82MNeuTTS NanoKitten TTS v0.8
РазработчикGradiumGradiumhexgradNeuphonicKittenML
Параметры31M (без токенизатора)40M82M~228,7M всего, ~116,8M активных15M / 40M / 80M
Веса64,5 МБ (q8)74,6 МБ (q8)Не раскрытоНе раскрытоот 25 до 80 МБ
ЯзыкиАнглийскийEN, FR, DE, ES, PT8 (v1.0)Английский (коллекция также включает ES, FR, DE)Английский
ЛицензияApache 2.0CC BY-NC 4.0Apache 2.0NeuTTS Open License 1.0Apache 2.0
WER на сложном наборе, EN (оценка Gradium)1,70%2,11%3,50%8,71%7,40% (вариант не указан)
Elo для английского (оценка Gradium)2098209720432034Не тестировалась
WER LLM Seed-TTS, EN (оценка Gradium)0,51%0,48%0,45%0,62%Не тестировалась
Первое аудио, CPU M5, 4 потока6,9 мс8,8 мс (архитектура 40m)517 мсНе раскрытоНе раскрыто

Данные для строк с результатами тестов взяты из блога Gradium и карточки модели. Данные о размере, языках и лицензии взяты из карточек соответствующих моделей.

Как разработчики могут развернуть Phonon?

Среда выполнения распространяется по лицензии MIT или Apache-2.0. Она поддерживает Rust, Python (pip install ptts), Swift, C, C++ и браузер через phonon-tts. Также поставляются сервер, совместимый с OpenAI, и сервер WebSocket.

Phonon загружается в Transformers, MLX-Audio, Ollama и LM Studio. Клонирование и создание голоса выполняются в Gradium Studio, после чего голос работает локально.

Основные выводы

  • Phonon 31m — англоязычная модель синтеза речи на 31 млн параметров и размером 64,5 МБ, распространяемая по лицензии Apache 2.0.
  • Заявленный WER на сложном тексте составляет 1,70% против 3,50% у Kokoro.
  • Первое аудио появляется за 6,9 мс на CPU MacBook Air M5.
  • На Raspberry Pi 5 модель работает в 3,7 раза быстрее реального времени.
  • Мультиязычные модели 40m существуют, но распространяются по некоммерческой лицензии.

Ознакомьтесь с техническим блогом, карточкой модели, средой выполнения на GitHub и набором сложных предложений. Все заслуги принадлежат исследователю этого проекта. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту по машинному обучению с более чем 150 тыс. участников и подписаться на нашу рассылку. Стоп! Вы есть в Telegram? Теперь к нам можно присоединиться и в Telegram.

Хотите сотрудничать с нами для продвижения своего репозитория GitHub, страницы на Hugging Face, выпуска продукта, вебинара и т. д.? Свяжитесь с нами

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости