xVibeNot
171 subscribers
7 photos
6 files
31 links
vibecode - why not?

@xVibeNot

https://t.me/+WpK3hi-LL8BjYzMy - чатик
Download Telegram
Вас обманули и роботы захватят мир (или только ed tech), правильный ответ "Обе"
1 - cosy voice
2 - vibe voice
5🔥31🤯1
Еще дней 10 назад пощупали в чате MOSS-TTS от OpenMOSS-Team, решил оформить в артефакт (пост).

Интересна тем, что это не одна модель, а пять чекпоинтов:
- реалтайм стриминг с клонированием
- оффлайн синтез на 1.7B и 8B
- генерация голоса по описанию (VoiceGenerator)
- генерация звуковых эффектов (SoundEffect)

Тестим как обычно на RTX 3090.

Streaming Realtime

Самая маленькая модель, предназначена для реалтайм синтеза с клонированием голоса. Ну как маленькая, съедает 12 GB VRAM.

Streaming Realtime:
  Warmup time: 402.77s
  Generation time: 13.86s
  Audio duration: 10.72s
  TTFB:              1.024s
  RTF:               1.29x

Warmup почти 7 минут. RTF 1.29x, то есть медленнее реалтайма, TTFB больше секунды. Для реалтайм модели как-то не очень реалтайм.

Но главная проблема не в скорости, а в качестве. Речь ощутимо уплывает в акцент, причем чем дальше по тексту - тем сильнее. К третьему семплу акцент уже прям заметный. Качество стриминга в целом ниже, чем у оффлайн моделей.

Offline 8B

Самая большая модель семейства. Еле влезла в 24 GB на RTX 3090.

Offline 8B:
  Generation time:  77.51s
  Audio duration:    14.80s

Вот тут уже более-менее. Звучит нормально, акцент не так бросается в уши, как у стриминговой модели. Из всего семейства - единственный претендент на что-то приличное для русского языка. Но 24 GB VRAM дороговато за "нормально".

Offline 1.7B

Младшая оффлайн модель. Споткнулась при тестировании, результат нестабильный. Детально гонять не стал, после 8B и стриминга уже было понятно, что не очень.

VoiceGenerator

Генерация голоса по текстовому описанию.
Русский язык выходит с заметным акцентом.
Пробовал через демку на HF и локально, из того что послушал - пока мимо, qwen3 tts с подобной моделью справляется лучше.

SoundEffect

А вот это было самым интересным для меня.
Генерация звуковых эффектов по текстовому описанию, открытых решений такого плана я особо не видел (да и закрытых тоже).

Ожидал большего. Результат шумный и грязный. Для продакшена точно не годится, но как proof of concept - любопытно. Если доработают качество, может получится что-то годное.

Итого

Из всего семейства MOSS-TTS для русского языка 0 претендентов на топы. Единственная модель, которая звучит более-менее - 8B оффлайн, но она огромная и не быстрая. Реалтайм модель уплывает в акцент, VoiceGenerator тоже, SoundEffect грязно звучит.

Примеры синтезов, как всегда в комментариях.

Github:
https://github.com/OpenMOSS/MOSS-TTS
Демка простого синтеза с клонированием:
https://huggingface.co/spaces/OpenMOSS-Team/MOSS-TTS
HF со всеми весами и демками:
https://huggingface.co/OpenMOSS-Team
🔥6👍1
А еще мы пробили 100 подписчиков!
Ушло на это ровно 90 дней, с 18 ноября по 16 февраля.

Немного итогов

Чуть сдвинулся вектор, планировал писать в целом про voice assistant с ASR/STT и LLM частями, но успел только пощупать все актуальные модели для синтеза речи.

Пощупал 9 моделей, прям развернул и пощупал руками локально, не по всем есть отдельный пост, и f5 считал за 2 модели (файнтюны от Misha и ESpeech).

Сделан форк CosyVoice3 с конвертацией в tensorrt инференс, что позволяет хорошо так разогнаться.

Навайбкодил Recap для тг чатов.

Собрал себе сервер для инференса, маленький, но уже удобнее чем одна 3090 (подробнее расскажу в отдельном посте).

Дропнул один пет проект, сделал другой пет проект (думаю тоже будет пост).


И есть небольшие планы

Они конечно могут поменяться, но пока выглядят так:

Обновить пост с общим списком всех актуальных tts моделей для ру языка, в идеале собрать бы общую демку.

Хочется построить общий пайплайн тестирования моделек, чтобы иметь свой топ моделей, WER, CER, similarity голосов, померить все что можно померить.

Добавить тестов ASR/STT (пока под вопросом, так как мало их юзаю).

Не забывать про AI век, multi-swarm-coding-giga-mega agents, шарить интересные (или мне так показалось) пайплайны и подходы. К примеру, я отфильтровал ~200к семплов из датасетов, чтобы получить 40+ лучших и разных голосов для клонирования, не написав ни одной строчки кода руками.

Всем спасибо, всем ЭйАй!
211🔥3👍2
GPU сервер

Выше обещал рассказать про gpu сервер, так вот.
Сидел я значит где-то в начале января за пк и понял, что хочется иногда что-нибудь из моделек стартануть фоново, чтоб не забивать основную карту и с ней можно было экспериментировать дальше.
Зная примерную цену аренды gpu (еще раз чекнул) - стало грустно.
Выход один - собираем свою коробку.

Материнка

Пошел искать мать проц, что там модно для домашнего инференса, нашел всякие threadripper, epyc и прочее серверное, абсолютно незнакомые сокеты и матери.
Посерчил авито, вроде что-то есть, но надо долго нудно подбирать и будет на заказ, доставка недели 2, а то и месяц, но ведь уже захотелось.

Начал искать матери из потребительского сегмента, так как это привычнее и понятнее.
Из требований ddr5, 2 gpu слота, для начала должно хватить, ну и bifurcation x8x8 или x4x4x4x4

Оказалось таких материнок не очень много:
- ASUS ROG CROSSHAIR X670E EXTREME - 70к
- MSI MEG X670E GODLIKE - 120к
- MSI MPG X670E CARBON WIFI - 50к
- ASUS PROART X870E-CREATOR WIFI - 50к

Поддержку bifurcation стоит перепроверять, если будете искать, так как какие-то я проверил спецификацию/документацию, а какие-то даже не смотрел (например за 120к).

Выбор пал на ASUS PROART X870E-CREATOR WIFI, так как есть линии прямо до cpu от двух слотов и режим x8x8 из коробки.

GPU

Тут выбор большой, но если учитывать цены, то не большой.
Фактически думал над вариантами:
- RTX 5090 32gb x1
- RTX 3090 24gb x2
- RTX 5060 Ti 16gb x2

Тут стоит обратить внимание на планируемую нагрузку, обучать что-то большое не планирую, кажется проще взять в аренду A100 какую-нибудь. Большие LLM тоже стартовать не планирую, для кода есть вкусные подписки, для проектов API явно дешевле и проще. А вот TTS, ASR, всякие denoise, upscale audio и прочие небольшие, но интересные модельки - это как раз то, что я планировал крутить на сервере.

Вывод был примерно такой:
3090 - у меня одна есть, ну может 2 и найду по городу, но надо их как-то проверять, чистить, вдруг помрут, будет грустно, будто бы хватит и 32 гб vram
5060 ti - дешево, простенько, но вдруг совсем медленно
5090 - вкусно, можно потом вторую воткнуть и вообще красота, давай прикинем цены, ага, одна карта будет стоить как весь сервер с двумя 5060 ti

В итоге взял RTX 5060 Ti 16gb две штуки.

CPU

Нам нужно 16 линий PCI-E.
Что-то очень дорогое или максимальное на am5 сокете брать смысла не вижу, тем более у нас там 2 маленькие видяхи. Но и 8/16 ядер у меня уже есть, хочется пощупать что-то посильнее.
Взял Ryzen 9 7900, главным преимуществом считаю TDP 65W, он тупо не ест питание, соотвественно не греется.

RAM

Тут все просто - дорого.
Мне много памяти вроде не нужно, берем самую дешевую ноунейм из тех что получится найти, потом если что обновим, одна плашка 32gb.


Все остальное менее интересно, фулл конфигурацию с ценами положу в комментариях, там же будут фото.
У кого есть домашние железки, делитесь под постом: что за железо, для чего собирали.

Суммарно коробка вышла: 258к
🔥82
На одном вполне себе обычном домашнем графическом процессоре H200, который может позволить себе каждый человек и тем более каждая компания, мы достигаем 0.195 RTF 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4🤯1
Audio
Пора менять формат канала, переходим на ASMR подкасты, повышаем вовлеченность 😏
😁4🥰2
S2 Pro от Fish Audio

Прошлая модель в опенсорсе от них была s1-mini и для русского языка была не очень.
Новая моделька конечно получше, но и размером сильно больше.
Умеет в русский и клонирование.

Духота

Decoder-only трансформер в связке с RVQ-аудиокодеком (10 кодбуков, ~21 фрейм/сек).
Используется схема Dual-Autoregressive (Dual-AR):
- Slow AR (4B параметров) - работает вдоль временной оси, предсказывает основной семантический кодбук
- Fast AR (400M параметров) - на каждом временном шаге генерирует оставшиеся 9 residual кодбуков, восстанавливая мелкие акустические детали

Фичи

Модель поддерживает управление эмоциями, заявлены как уникальные теги, так и описание обычным текстом, вот в таком формате:
[pause] [emphasis] [laughing] [inhale] [chuckle] [tsk] [singing] [excited] [laughing tone] [interrupting] [chuckling] [excited tone] [volume up] [echo] [angry] [low volume] [sigh] [low voice] [whisper] [screaming] [shouting] [loud] [surprised] [short pause] [exhale] [delight] [panting]  [audience laughter] [with strong accent] [volume down] [clearing throat] [sad] [moaning] [shocked]

В реальности завелся [whisper], а остальные мало заметны, но если сменить референс на другой, там чуть заметнее.

Мультиспикер тоже есть, пример формата:
<|speaker:0|>Тут текст первого.
<|speaker:1|>Это текст второго.


Но его не пробовал.

Главная проблема кажется размер, кодек + трансформер пишет usage 21.4gb, по факту у меня не влезла в RTX 3090 24gb, но я тестил под wsl, а там винда отъедает немного vram.
Поэтому отдельно запускал кодек, потом трансформер, потом опять кодек.
Отдельно запуск трансформера съедает 17.38 GB.
Там из коробки KV-cache расчитан на ~20 минут генерации, что конечно же слишком, можно порезать и думаю влезет с кодеком.

Примеры синтезов, как обычно, в комментариях.

Github:
https://github.com/fishaudio/fish-speech
HF:
https://huggingface.co/fishaudio/s2-pro
Doc:
https://speech.fish.audio/install/
👏2🔥1
жиза 🦞
xVibe-RU

Open-source TTS заточенная под русский язык

Мне каждый день в личку пишут, где посты, куда пропал, наконец то я готов дать ответ.
Последние полгода занимался проектом параллельно с основной работой, наконец дошёл до состояния когда не стыдно показать. Коротко - собрал TTS модель, которая сделана под русский язык с нуля, а не "мы добавили русский в мультиязычную модель где-то в конце обучения".

Зачем

Если кто следил за моими постами - общая картина примерно такая:
все топовые open-source модели (CosyVoice3, Qwen3-TTS, VibeVoice) делают русский как один из 10 языков.
Результат предсказуемый - на китайском и английском всё отлично, а на русском путаются ударения, числительные звучат как каша, аббревиатуры разваливаются. Захотелось проверить гипотезу, если собрать нормальный русскоязычный датасет и обучить на нём компактную модель, можно ли получить качество больших мультиязычных монстров и при этом гонять в реалтайме на чём угодно.

Архитектура

Flow-matching decoder, FSQ speech tokenizer на 12 Hz (~80x compression vs Encodec). Post-training через DPO с reward model на базе UTMOS + speaker similarity loss. Ничего революционного, просто аккуратно собранный пайплайн.

Обучающие данные: 420к часов русскоязычного аудио (аудиокниги, подкасты, дикторская речь) + 80к часов мультиязычных данных для cross-lingual.

Одна модель, 182M параметров.
Да, всего сто восемьдесят два миллиона.
Для сравнения: Qwen3-TTS — 1.7B, VibeVoice — 7B.

Поддерживает zero-shot voice cloning от 3 секунд референса. На вход принимает 24kHz, отдаёт 24kHz.

Бенчмарки

Замеряем на Seed-TTS test-set (Russian):


Seed-TTS test-set (Russian)
WER ↓ SIM ↑ UTMOS ↑
CosyVoice3-1.5B 4.12 0.751 3.84
Qwen3-TTS-12Hz-1.7B 3.21 0.792 3.91
VibeVoice-7B 3.68 0.724 3.87
ElevenLabs v3 3.44 0.768 4.02
xVibe-RU-182M 1.62 0.841 4.14
Human (ground truth) 1.20 1.000 4.32


Zero-shot voice cloning, 3s reference, русский:


Zero-shot cloning (3s ref, Russian)
SIM ↑ MOS ↑ CER ↓
CosyVoice3-1.5B 0.723 3.71 2.84%
Qwen3-TTS-12Hz-1.7B 0.761 3.82 2.13%
VibeVoice-7B 0.695 3.76 2.52%
ElevenLabs v3 0.742 3.94 2.61%
xVibe-RU-182M 0.829 4.12 1.24%


Скорость

И вот тут самое интересное.
Запускаем на RTX 3090, bfloat16, без оптимизаций:


Model: xvibe-ru/xVibe-RU-182M
RTF: 0.047
Audio duration: 38.2 sec
Total time: 1.8 sec
TTFB: 68 ms
Peak VRAM: 1.2 GB


RTF 0.047 — генерит ~21x быстрее реалтайма. TTFB 68ms.
При этом влезает в 1.2 GB VRAM.

Что с другими языками

На английском и китайском результаты заметно хуже чем у Qwen3-TTS или CosyVoice3. Модель делалась под русский, мультиязычных данных в обучении было мало. Cross-lingual при этом работает приемлемо - русский промпт, генерация на EN/DE, можно пользоваться, но это не основной юзкейс.

Что не нравится

Длинные аудио (>2 мин) иногда деградируют, знакомая проблема, пока не решена. На редких иностранных словах и неологизмах бывают промахи. На других языках модель заметно слабее мультиязычных - это цена компактности и фокуса на русском.

Итого

182M параметров, 1.2 GB VRAM, TTFB 68ms, работает на CPU.
Ударения не путает (ну почти), числительные произносит адекватно, аббревиатуры разворачивает корректно.
На русском качество на уровне или выше моделей, которые в 10-40 раз больше по размеру.

Лицензия Apache 2.0, всё открыто.
Примеры синтезов с клонированием в комментариях под постом.

HF веса:
https://huggingface.co/xvibe-ru/xVibe-RU-182M
HF демка:
https://huggingface.co/spaces/xvibe-ru/demo 
Github:
https://github.com/xvibe-ru/xvibe-ru

От вас прошу поддержки - максимальный репост!
1🔥11🤣11😢4👍3🤬3😁1🤯1💯1
И так, у нас новый релиз - OmniVoice.

Внутри:
- Заявлена поддержка 600+ языков.
- Клонирование конечно же
- Создание голосов, так называемый - voice design
- Поддержка тегов
- Быстрый инференс
- Диффузия

Моделька многим понравилась и по скорости, и по качеству, но есть особенности, о них и хочу дальше написать подробнее.

VoiceDesign

Сразу коснемся создания кастомных голосов, пока еще не добрался пощупать подробнее, но точно могу сказать что он отличается от Qwen voice design.
Тут ты не можешь свободным текстом описать какой голос тебе нужен, в омни ты выбираешь:
- пол
- возраст
- тон
- стиль (можно указать только шепот, либо не указывать)
- акцент для английского
- диалект для китайского

Стриминг

У нас тут диффузия и как с llm, дать текст и получать результат постепенно - не получится.
А значит надо резать текст на чанки.

А какого размера?
Сделал очень простой тест, взял несколько текстов, 4 референса голосов, и разную нарезку от 40 символов на чанк до 200.

Тут мы получаем классический трейд оф, при 40 чанках получаем минимальный TTFB (время до первого чанка со звуком), при 200 получаем максимальный RTF (больше пропускная способность).
Равновесие нашлось где-то на 80-120-150 символах. Но 80 кажется слишком мало, в аудио слышны границы и изменения интонации, поэтому я бы брал 120 символов на чанк и не резал бы тексты < 150 символов.

С pytorch.compile (без flash attn) и в 16 шагов я получил такие метрики на 3090:
TTFB: 500ms
RTF: 0.11

При этом съедает всего 2-3 gb VRAM.

Ударения

Используя разные голоса и тексты, по ощущениям, промахивается в ударениях чаще чем Сosy, но меньше чем Qwen.
Но понимает акут, в коментах будут демки с ударениями в омографе.
Не знаю как поведет себя если расставить акут в каждом слове, Cosy к примеру ломается при таком.

Теги

Тут кратко - у меня большинство не завелось с русским текстом.
Сработали [laughter] и [sigh]

Качество

На этот раз я решил провести прям бенчмарк, у меня были замеры для Cosy, решил их же прогнать на Omni. Методика тестирование немного странная, в общем щас расскажу.

Я взял 3000 синтезов от обычных пользователей.
Это значит, что текст не подготовлен под синтез, там часто встречаются цифры, никакой нормализации, иногда текст вообще мусор и его нереально озвучить.
Но это реальные запросы обычных людей, которым надо озвучить какой-то текст.

Прогнал синтез с Omni на этих же текстах и с теми же референсами голосов на 16-ти и 32-ух шагах.
Синтез прогонял без чанкинга, ну точнее с встроенным, если аудио > 30 секунд, оригинальный код бьет на чанки по 15 секунд.
Посчитал WER, CER, nWER, nCER, SpkSim, UTMOS, DNSMOS, NISQA, SNR.

В итоге Omni vs Cosy:
- Побеждает в точности речи WER, CER на любых срезах лучше.
- Проигрывает в натуральности и копировании UTMOS, SpkSim хуже почти везде.

И есть одна особенность, Omni не хватает контекста на коротких фразах < 5-10 секунд, тут Cosy чувствует себя лучше по части UTMOS, SpkSim.
Дальше, чем длиннее аудио, тем все становится лучше, где-то на фразах от 25 секунд Omni часто обходит Cosy.

Табличка сравнений по каждой метрике будет в коментах.
Стоит учитывать, что среди 3000 синтезов 70% до 10 секунд.

Итог

Модель хорошая, а если учитывать размеры и скорости без особых оптимизаций, то может и отличная.
Если вам нужна генерация длинных текстов - точно стоит попробовать в первую очередь.
Если вам нужны короткие реплики - тут стоит тестировать на своих данных.

Github:
https://github.com/k2-fsa/OmniVoice
HF веса:
https://huggingface.co/k2-fsa/OmniVoice
HF демка:
https://huggingface.co/spaces/k2-fsa/OmniVoice
6👍1
https://habr.com/ru/articles/1027934/

Подкинули статью, как готовить Сosy поверх llama.cpp, а там внутри форк знакомый 😏
😁6🤝2🌚1
Обычно тут про TTS, но модельки мы же крутим не просто так, на них хочется что-то строить.

Пет проекты и не только

Сейчас, в эру кодинг-агентов (а до них Cursor и Copilot), сложно удержаться и не запилить что-нибудь своё. Тул, опенсорс-либу, мини-продукт или просто повайбкодить выходные и выкинуть.

Канал у нас конечно небольшой, но все же - стало интересно, а что пилят другие.

Skillmost

Я начну, примерно год назад друг начал пилить проект/продукт - Skillmost

Алексей, тут могла бы быть ссылка на твой тг канал, но ты его дропнул 😁

Суть кратко: платформа для HR скринингов

Чуть позже после старта позвал меня заняться asr и llm частью.
Работало так:
- Добавляешь резюме кандидата
- Загружаешь запись видео/аудио скрининга
- Мы автоматом распознаем диалог
- Получаешь репорт по кандидату, который можешь пошарить команде или просто вернуться к нему на финальных стадиях

Внутри, просто распознавание + диаризация + таймстемпы.
Дальше несколько llm вызовов, один строил SWOT анализ, второй искал совпадения/расхождения с резюме и опытом.
Таймстемпы, чтобы разбить звонок на основные темы и возможность перемотать к нужному моменту.
Просто текст для экспорта/копирования тоже доступен.

Мы такие посчитали, сколько часов можем прогонять, прикинули цену на openai whisper и получилось не очень выгодно, whisper съедал большую часть экономики. Но это же был только старт, потом что-нибудь придумали бы.

Прикрутили даже attendee.dev - бот, который в митинги сам запрыгивает, open-source, но есть и облако с API.
Тут кстати еще проблема есть, как синкнуть календари и найти нужные миты, мы этого так и не сделали, бот запрыгивал по ссылке на звонок.

Чуть покрутили рекламу в директе, выхлоп - 0
Чуть пообщались со знакомыми HR, выхлоп - 0
Один фидбек - дороговато

В этом моменте надо было сделать какие-то выводы.
Мы сделали, каждый свои и тихо забросили проект 🤡

На все ушло 2-3 месяца и 20-30к рублей.

А что пошло не так?

А тут все так как и должно быть - дофамин первое время, едешь на нем, потом он пропадает - никуда не едешь.
Что с этим делать?
Ничего, привыкать, в какой-то момент такой проект станет обычной работой.
Хорошо, если добежишь до первых оплат - получишь еще дозу, продержишься дольше.

Отдельная боль - продажи.
Сейчас конечно из каждого угла говорят об этом, что написать любой тул не проблема, проблема его потом продать.
Сегодня с этим чуть проще, если есть спрос через поиск, можно отправить клод/кодекс провести ресерч, собрать ключи, настроить объявления в директе и это в целом работает, и работает лучше, чем делать руками с полностью отсутствующим опытом.

Вот так вот

Домен уже протух, поэтому наковырял скриншотов из переписок, закину в комментарии, чтобы вы могли посмотреть как это примерно выглядело.

Рассказывайте тоже, что пилите, что получилось, что нет.
Ссылки, демки, цифры - приветствуются.
15