惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
T
The Blog of Author Tim Ferriss
U
Unit 42
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
Y
Y Combinator Blog
F
Full Disclosure
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
S
SegmentFault 最新的问题
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
Recent Commits to openclaw:main
Recent Commits to openclaw:main
The Register - Security
The Register - Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
T
Threatpost
GbyAI
GbyAI
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
L
LangChain Blog
T
Tenable Blog
C
Cisco Blogs
T
Threat Research - Cisco Blogs
Google Online Security Blog
Google Online Security Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Можно ли заменить диктора open-source TTS-моделью: тестируем OmniVoice на русском языке
muzafarov (R · 2026-05-06 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение7 мин

Охват и читатели4

Обзор

Введение

Предыдущие статьи про TTS:

https://habr.com/ru/companies/raft/articles/991844/

https://habr.com/ru/companies/raft/articles/1023206/

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

Сейчас TTS модели стали заметно сильнее: они звучат естественнее, умеют клонировать голос, подбирать тембр по описанию и быстро генерировать речь (Ссылка на внешнее исследование. Поэтому бизнес все чаще смотрит на синтез речи не как на экспериментальную технологию, а как на практический инструмент для IVR(Interactive Voice Response), голосовых ботов, обучения, маркетинга и озвучки контента.

Привет, Хабр!  Меня зовут Музафаров Данил, я работаю DS инженером в компании Raft.  В этой статье я протестирую OmniVoice - Open Source TTS модель, вокруг которой сейчас много внимания, и проверю, насколько хорошо она справляется с русскоязычными бизнес-сценариями: числами, датами, ФИО, аббревиатурами, смешанным русско-английским текстом, а также длинной озвучкой.

Основная часть

OmniVoice появилась в open-source-сегменте TTS сравнительно недавно и быстро привлекла к себе внимание. Авторы заявляют поддержку более чем 600 языков, возможность клонирования голоса по короткому референсному аудио, генерацию голоса по текстовому описанию и автоматический выбор голоса без дополнительных настроек.

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

При этом для бизнеса важны не только красивые примеры из репозитория. В реальных текстах почти всегда встречаются даты, суммы, ФИО, сокращения, английские термины, названия продуктов и длинные абзацы. Поэтому я решил проверить OmniVoice не на абстрактных фразах, а на русскоязычных сценариях, которые ближе к реальным задачам компаний.

Возможности модели

У OmniVoice заявлены следующие возможности: клонирование голоса, создание собственного голоса, автоматический выбор голоса. Давайте рассмотрим эти возможности.

Voice Cloning

Клонирование голоса спикера по референсному аудио с расшифровкой. Озвучка текста клонированным голосом.

audio = model.generate(
    text="Привет! Это тест синтеза голоса на русском языке с помощью OmnyVoice.",
    ref_audio="refs/ref_danil.ogg",
    ref_text="Всем привет, меня зовут Музафаров Данил и сейчас я тестирую новый аудиоформат",
)
 
sf.write("output/voice_cloning.wav", audio[0], 24000)

Результат генерации

Voice Design

Описание тембра голоса спикера с помощью текстовых инструкций. Но здесь не получится из головы создать описание, здесь есть  ограниченный набор параметров, которые ожидаются в поле “instruct”, поэтому важно это учесть.

audio = model.generate(
    text="Тестирую voice design на русском языке с помощью OmniVoice. Хочу услышать низкий голос профессионального диктора мужчины среднего возраста",
    instruct="male, low pitch, russian accent",
)
 
sf.write("output/voice_design.wav", audio[0], 24000)

Результат генерации

AutoSpeech

Голос выбирается автоматически, указывается только текст, который нужно озвучить

audio = model.generate(text="Давайте узнаем, какой голос у нас получился, если не указать ни один параметр. До этого я не встречался с таким функционалом в синтезе голоса.")
 
sf.write("output/auto_voice.wav", audio[0], 24000)

Результат генерации

Генерация длинного текста

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

Традиционно попробуем озвучить отрывок из рассказа “Господин из Сан-Франциско”.

audio = model.generate(
    text=text,
    language="ru",             
    denoise=True,
    num_step=32,               
    guidance_scale=2.0,
 
    # long-form
    audio_chunk_duration=15.0,
    audio_chunk_threshold=1.0, 
    postprocess_output=True,
)
 
sf.write("output/long_text.wav", audio[0], 24000)

Всего символов: 4868
Всего слов: 728
Итоговая длина аудио: 5 мин 
Время генерации аудио: 44 сек

Результат генерации

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

Невербальные символы в тексте

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

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

import os
 
out_dir = "output_postprocess"
os.makedirs(out_dir, exist_ok=True)
 
sample_rate = getattr(model, "sample_rate", 24000)
 
examples = [
    (
        "06_nonverbal_tags",
        (
            "[laughter] Серьёзно, ты это сейчас весь отчёт прогоняешь одним батчем? "
            "[sigh] Ладно, давай спокойно: мы просто проверяем качество озвучки. "
            "[surprise-oh] Вот это рост — конверсия воронки подскочила после правок. "
            "[question-ah] Это реально эффект новой посадочной или мы что-то не так в метриках посчитали? "
            "[dissatisfaction-hnn] В конце всё равно проседает: в третьем квартале слишком много пауз и обрывов. "
            "Дальше обычный нейтральный текст без спецмаркеров, чтобы сравнить возврат "
            "к деловому тону после эмоциональных вставок."
        ),
        dict(instruct="male, young adult, moderate pitch", speed=1.0),
    )
]
 
for name, text, kwargs in examples:
    audio = model.generate(text=text, **kwargs)
    path = os.path.join(out_dir, f"{name}.wav")
    sf.write(path, audio[0], sample_rate)
    print("saved:", path)

Результат генерации

Сильные и слабые стороны OmniVoice

Мы увидели возможности модели, примеры того, как ее можно использовать и возможно на этом моменте вы уже сложили картину того как можно еще интересным способом использовать данную модель. Но я решил провести дополнительную аналитику модели и прогнать ее по популярным сценариям, а именно: как модель произносит ФИО, дату и время, числа и проценты, аббревиатуры, омографы и английские слова в русском тексте.

Для такого тестирования я подготовил собственный бенчмарк. Для каждого раздела я подготовил по 10 предложений и оценивал их от 0 до 5. Где “0”, это когда модель озвучила максимально плохо, неразборчиво или совсем не озвучила текст. А оценка “5” - модель качественно озвучила заданный текст, без ошибок в ударениях и интонации. Оценивал я субъективно, самостоятельно прослушивая каждую генерацию.

Бенчмарк

Оценка

Дата и время на русском

4.1

ФИО на русском

4.7

Аббревиатуры на русском

5

Смешанный русский и английский

4.5

Русские омографы

4.1

Числа, проценты и денежные суммы

4.8

Средняя оценка по всем бенчмаркам получилась - 4.53, что в целом неплохо для Open Source TTS. Пустых генераций не было, аббревиатуры на русском языке произносились идеально. Явные проблемы были с произношением точного времени, а также ошибки в ударениях при произношении омографов. Также модель неплохо справляется с произношением чисел и процентов, в произношении ФИО иногда ошибается в ударениях. В произношении английских слов в русском тексте иногда бывают проблемы с произношением, а именно произношение английских слов с русским акцентом.

Зная такие сильные и слабые стороны модели, в дальнейшем можно понимать под какую задачу ее можно будет использовать, а под какую лучше не стоит.

Выводы по результатам тестирования

По результатам тестирования OmniVoice показала себя как сильная Open Source TTS модель для русскоязычных сценариев, особенно если речь идет о коротких и средних фразах. Модель стабильно генерирует речь, не дает пустых результатов, хорошо справляется с базовой озвучкой и показывает высокий уровень разборчивости. 

Самыми сильными сторонами OmniVoice оказались аббревиатуры, числа и проценты. В этих категориях модель звучит достаточно уверенно и в большинстве случаев не требует дополнительной корректировки текста. Особенно хорошо модель справилась с русскими аббревиатурами в тестах они произносились без ошибок.

Также модель хорошо подходит для сценариев, где нужно быстро получить озвучку без сложной настройки: AutoSpeech позволяет генерировать голос только по тексту, Voice Design дает возможность управлять базовыми характеристиками голоса, а Voice Cloning позволяет быстро попробовать озвучку в похожем тембре на основе референсного аудио.

Но к сожалению, полностью заменить профессионального диктора OmniVoice пока не может. Основные ограничения проявляются на длинных текстах: встречаются обрывы окончаний, проглатывание отдельных слов, ошибки в ударениях и звуковые артефакты на стыках аудиочанков.

Итог

Подведем итоги и сравним модели по таблице

Для OmniVoice использовал

GPU - RTX 5070

Процессор - Ryzen 7500

Будем озвучивать как и прошлый раз следующий текст: “Коллеги, добрый день, меня зовут Музафаров Данил. Я пишу статью на Хабр и сейчас я считаю метрики аудиогенерации по скорости.” Это аудио длительностью примерно 10-15 секунд.

Модель

Latency (CPU), сек

Latency (GPU), сек

Естественность

Выразительность

Легкость интеграции

CosyVoice

313.3

1.2

5

5

4

OmniVoice можно рассматривать как рабочий инструмент для бизнеса, но не как универсальную замену диктору во всех сценариях. 

Модель подходит для:

  • озвучки коротких и средних фраз;

  • сценариев, где важны скорость и низкая стоимость, а не студийное качество.

  • внутренних обучающих материалов;

  • голосовых ассистентов 

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