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

推荐订阅源

S
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
A
Arctic Wolf
Security Latest
Security Latest
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Troy Hunt's Blog
Latest news
Latest news
Help Net Security
Help Net Security
S
Security Affairs
Webroot Blog
Webroot Blog
The Hacker News
The Hacker News
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tor Project blog
Forbes - Security
Forbes - Security
Google DeepMind News
Google DeepMind News
AWS News Blog
AWS News Blog
Attack and Defense Labs
Attack and Defense Labs
P
Proofpoint News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
H
Help Net Security
L
Lohrmann on Cybersecurity
S
SegmentFault 最新的问题
Google Online Security Blog
Google Online Security Blog
MongoDB | Blog
MongoDB | Blog
Cyberwarzone
Cyberwarzone
The Last Watchdog
The Last Watchdog
S
Securelist
N
News and Events Feed by Topic
S
Secure Thoughts
F
Fortinet All Blogs
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
量子位
M
MIT News - Artificial intelligence
F
Full Disclosure
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Microsoft Security Blog
Microsoft Security Blog
I
InfoQ
P
Privacy International News Feed
L
LangChain Blog
Know Your Adversary
Know Your Adversary
C
CERT Recently Published Vulnerability Notes

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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 миллионов точек без потерь
Как мы разрабатывали TTS для Ил-2 Штурмовик
Alexander Veysov · 2026-06-24 · via Все публикации подряд на Хабре
Все же помнят легенду?

Все же помнят легенду?

Так получилось, что нам посчастливилось принять участие в разработке синтеза для новой версии игры игры Ил-2 Штурмовик — Ил-2: Корея. Это был длинный путь, но в итоге у нас получилось:

  • Сделать синтез на 8 языках: русском, английском (американский и британский), китайском, корейском, японском, немецком, французском и итальянском;

  • В итоге пришлось работать на основе записей "профессиональных программистов" (как в старые добрые, но в этот раз это были C++ программисты-разработчики игры);

  • Синтез работает только на CPU практически без задержек;

  • Голоса умеют не только говорить, но и "кричать".

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

Оглавление под спойлером

Послушать аудио и как это выглядит в игре

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

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

Послушать аудио
Посмотреть видео

Легенда ИЛ-2 и текущее состояние игровой индустрии в России

Ностальгии спойлер
Перепись олдов объявляется открытой

Перепись олдов объявляется открытой

Из этого я тогда (условно конец 90х, совсем начало нулевых) играл в Max Payne, Крутого Сэма, Корсаров. Пару раз заходил в Стронгхолд. У нас была чуть своеобразная российская игровая сцена тогда, особенно много было всяких квестов, тактических игр и стратегий. Но я скорее помню все части Quake и Doom, Red Alert и Starcraft. Ну и, конечно, Героев. Ещё был миллион квестов про братьев Пилотов и Чапаева.

А во что из этого играли вы? Если честно, я в силу возраста, в то время в основном играл в шутеры. Всякие симуляторы, стратегии, пошаговые игры и подобное "сложное" тогда прошло немного мимо меня (кроме Героев и Starcraft, но я скорее тыкался там и гонял коняшек туда-сюда).

Хотя, я отчётливо помню, что у чуть более взрослого товарища на столе в стойке для CD-дисков были: Ил-2, Дальнобойщики, Герои, Rayman, Stronghold, Civilization и всякие другие более трешовые игры, включая всякие квесты.

Тут не ставлю задачу подробно всё пересказывать (на YouTube есть 100500 видосов про историю нашей игровой индустрии), но надо пару слов сказать для правильного контекста.

Оригинальный Ил-2 Штурмовик входит в "пантеон" великих игр позапрошлой итерации нашей игровой индустрии, которая немного закончилась примерно к концу нулевых. Ну то есть было и мировое признание, и миллионные тиражи (если знаете точнее — напишите) и народная любовь. В те времена Ил-2 прямо называли лучшим авиасимулятором (ключевое слово тут симулятор) и он прямо конкурировал с Microsoft Flight Simulator по уровню популярности и фанатской любви.

Сам я не фанат симуляторов (я играл в шутеры и RTS, в основном) и пошаговых игр / аркад / квестов. Но мои более взрослые товарищи тогда имели диски с этой игрой на столе и я наблюдал как они играют. Но я не понимал, мне казалось, что игра душновата и слишком сложная. В середине десятых я довольно много играл в "картошку", но примерно году к 2016-2018 играть в неё совсем стало невыносимо. Я пробовал тыкать "самолётики" у картошки и улиток, но ни разу не смог туда войти. Что было в 2022-2025, думаю вы и без меня помните. Если у вас есть опыт игры в хардкорные авиасимуляторы — думаю ваш взгляд тоже не будет лишним.

Если перенестись в настоящий момент, у нас наблюдается системный кризис игровой индустрии. Все более менее успешные команды в лучшем случае "сменили прописку" (почитайте фамилии в титрах таких успешных игр как Space Marine 2 или Rogue Trader). По этой причине для нас представляет особенную радость и гордость "прикоснуться" к легенде и в идеале оставить в вечности маленький кусочек своей работы в таком легендарном продукте, который сделан в нашей стране.

Пара слов про AI-slop и не только

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

Это имеет очевидные последствия в виде отмирания части полезных бизнес моделей, приближения "мёртвого интернета", обесценивания знаний и слома процесса передачи знаний. Грубо говоря упрощается "видимость" компетентности. Но тут важно сделать привязку к играм. Очевидно, что есть и позитивные кейсы.

Многих разработчиков западных AAA-игр принципиально пытались "отменить" за присутствие низкокачественных нейросетевых ассетов в играх. Тут ситуация по сути обратная, т.к. мы не пытаемся подменять творчество нейрослопом (или агрессивно резать косты, выставляя нереалистичные задачи команде разработки на фоне общего навязывания "круток" и "подписок").

По сути мы создаём контент, который бы иначе не мог бы в принципе быть создан. А именно сам контент игры по факту создаётся людьми (синтез только озвучивает то, что ему дал разработчик). Сами разработчики на эту тему пишут вот это со своей колокольни.

Постановка задачи

В современном мире задача сделать "yet another" синтез же простая, правда? Берёшь самый модный публичный репозиторий с 100500 звёзд и самой большой LLM, берёшь, что записал диктор, и "GPUs Go Brrr", правда? Но, к сожалению, нет.

Разработка синтеза в 1 картинке
Синтез же просто сделать, просто записываешь аудио и GPU go brrrr

Синтез же просто сделать, просто записываешь аудио и GPU go brrrr

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

  • Работа сильно быстрее реального времени без задержек (ну тут очевидно);

  • Работа внутри клиента игры (синтез не может зависеть от внешних серверов, да и задержка будет портить впечатление, плюс сложно масштабироваться при успехе игры);

  • Покрытие как минимум 8 популярных языков (тут по сути неизбежно, так как это список воюющих сторон);

  • Возможность гибкой озвучки имён собственных и топонимов (без этого теряется гибкость разработки нового контента);

  • Возможность генерировать как обычную пунктирную речь, так и "крик" (речь должна быть похожа на то, как говорят реальные лётчики).

С продуктовой точки зрения у синтеза есть две конечные цели использования:

  • Программа минимум — оживить общение с игровыми ботами, диспетчерами и игровым окружением. Сделать добавление нового контента не зависящим от дикторов и разработки синтеза (все же знают приколы про "билдоту" и кривые и лишние фразы озвучки в старых играх);

  • Программа максимум — дать игрокам из разных стран возможность в мультиплеере говорить друг с другом через текстовый интерфейс.

"Оживление" диспетчеров и ботов подразумевает, что нужно произносить всякие разные топонимы и числа в разных комбинациях, что раньше решалось конкатенацией слов, что несколько делало игру более "роботизированной" и шаблонной. То есть заранее предзаписать всё и поддерживать это потом на N языках просто технически невозможно с современными требованиями к качеству контента.

Шумность обстановки, радиопомехи, звучание речи на фоне — несколько упрощает задачу, но не решает основной проблемы. Речь должна быть чёткой и не должна нарушать погружение игрока в игру.

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

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

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

  • Санкции плюс мало кто хочет работать с компанией из России;

  • Иррациональный страх актёров перед AI (небезосновательный, если послушать безумную риторику ряда заинтересованных корпораций, в части синтеза — пока преждевременный);

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

Также в какой-то момент при планировании ресурсов стало понятно, что нельзя использовать GPU. Ну вот совсем. То есть нужна кастомная, особенная, просодия ("спокойный крик"), дикторов нет, синтез должен работать на 1 потоке процессора на "калькуляторах". Отличное начало!

Ведь у игроков же есть GPU, правда?

Озвучено профессиональными программистами

В сухом остатке, получается, на старте мы имеем следующее:

  • Отсутствует возможность привлечь профессиональных актёров в нужном количестве;

  • Довольно сильные требования к кастомизации, портативности, поддерживаемости;

  • Длинный список языков.

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

Для начала стоит взглянуть на список языков и их фонетику:

Язык

Алфавит

Фонетика

Русский

Кириллица, фонетический

Простая, если знать ударение. Есть палатализация (мягкие согласные)

Английский

Латиница, фонетический, но письмо не соответствует произношению

Как ни странно, самая сложная фонетика из всех этих языков (!)

Китайский

Иероглифы

Всего около 1500 слогов, фонетика относительно простая (!). Сложность только в наличии тона, тон заменяет ударение

Корейский

Слоговый алфавит, чёткие правила чтения

Простая фонетика, почти отсутствует ударение (в нашем понимании)

Японский

Смесь из 2 слоговых алфавитов и китайских иероглифов условно 16 века

Простая фонетика, почти отсутствует ударение (в нашем понимании)

Немецкий

Латиница, чёткие правила чтения

Довольно простая фонетика, много длинных слов с двумя ударениями, практически всегда очевидно куда ставить ударение

Итальянский

Латиница, чёткие правила чтения

Наверное самая простая фонетика из всех языков

Французский

Латиница, довольно чёткие правила чтения

Довольно простая фонетика (для синтеза), звуки необычные на наш слух, почти нет проблем с ударением, на письме оно ставится в нестандартных случаях

Если, для начала для простоты, сфокусироваться на первых четырёх языках, то видно, что все языки используют совсем разные системы письма, которые ну вообще никак не связаны (разве что исторически). Отсюда получается, что надо или пытаться приводить их к некой единой схеме "правописания" или использовать фонемы.

Но даже так, слоном в комнате является английский язык, где произношение (особенно топонимов) может вообще никак не быть связано с написанием. Отсюда нужно или придумывать свою общую схема романизации / кириллизации или просто использовать фонемы.

Про топонимы в английском

Всё, как обычно, упирается в наличие адекватных инструментов и простоту их поддержки на дистанции:

  1. Для русского нет адекватных готовых общепринятых инструментов по фонемизации или латинизации, увы. Но тут всё "просто". У нас они есть. Берём наши обширные словари ударений и фонем, нейросетки для ударений и фонем (фонемы разрешаются с точностью 99% на русском, если знать ударение), передаём это всё разработчику игры, и переводим все корпуса в фонемы. Ах да, ещё у нас есть активная морфология, падежи, спряжения, согласование в роде числе и падеже — но думаю вы про это всё знаете. Дальше при появлении нового слова (допустим название населённого пункта) разработчик просто ставит ударение и прогоняет слово через фонемизатор, слушает, добавляет в игру. Все эти инструменты быстрые, но на данном моменте их наличие в клиенте пока не требуется;

  2. Для английского ввиду отсутствия падежей в современном языке — всё по сути сводится к поиску правильного словаря. Но вот незадача, если мы идём в использование фонем, то нужно выбирать словари и фонемы так, чтобы один и тот же звук в разных языках обозначал реально один и тот же звук. По сути это, конечно, проблема, так как в английском существуют десятки диалектов и люди реально говорят по-разному. И, зачастую, словари фонем существуют все в разных форматах. Это всё, естественно приходится править руками и массово отслушивать. По сути сложность задачи тут состоит в том, чтобы найти точку, где дальше различие между звуками уже не является важным. Точность фонемных моделей тут составляет примерно 95%, то есть при добавлении нового слова часто приходится переписывать, но это лучше, чем писать фонемами руками с нуля. Ещё мозг часто взрывает то, что при внимательном отслеживании материала носители языка сами очень часто не говорят знаменитый звук θ и часто жуют все гласные и превращают их в "шва";

  3. С китайским как ни странно всё просто. Есть по сути официальный государственный фонетический стандарт пиньинь. Есть готовые библиотеки, которые переводят китайские иероглифы (汉字) в него с расстановкой тонов. Дальше, по сути у китайцев всего около 1500 слогов (слог состоит из инициали и финали). Каждый слог можно однозначно записать фонемами, то есть существует прямой словарь соответствия (плюс символы для тонов) между слогами и фонемами (естественно не все слоги встречаются во всех тонах). Особняком стоит вопрос расстановки пробелов между словами (сами китайцы их зачастую не пишут). Пробелы помогают синтезу (как минимум в индо-европейских языках) с ритмикой и ударениями. Тут это нивелируется тонами, но мы ради интереса всё-таки решили расставить пробелы между словами (но разницы особо нет, чуть докидывает буквально). Есть незакрытый вопрос с "омографами" (иногда биграммы "знаков", 字, читаются по-разному в зависимости от смысла) и тем, что некоторые тоны не могут соседствовать друг с другом (попробуйте быстро прочитать два слога подряд третьим тоном, то есть nǐ hǎo) — но это мы уже отдали на откуп самой нейросети и носителям языка. По сути использование такого процесса упрощает поддержку, так как все носители языка априори знают тоны и пиньинь (пусть писать тоны циферками и чуть менее удобно);

  4. С корейским языком всё одновременно и очень просто, но есть свои подводные камни. Для начала, все материалы в интернете ... это, естественно, южнокорейский язык. Но тут мы ничего не можем поделать. Письмо у корейцев фонетическое, но знаки "странные", потому что глядя на китайцев (видимо они бумагу так экономили), они решили объединять свои буквы в слоги и писать их тоже "квадратиками". То есть, по сути, надо разложить "квадратики" в обычные буквы и дальше перевести в фонемы. У корейцев есть строгие правила чтения, но там ряд звуков меняется в зависимости от контекста. По идее это можно записать в виде правил ... но мы решили этот вопрос тоже через нейросети на минимальном корпусе и сформировали словарь на все слова языка. Точность перевода получается очень высокой. Из плюсов тут нет тонов, почти нет ударения и почти нет пробелов между словами;

  5. В сухом остатке — каждый язык мы преобразуем в набор фонем. При этом мы тщательно перебрали руками все эти фонемы, чтобы они друг другу не противоречили. Это невозможно сделать абсолютно идеально, но основные проблемы классических фонемных словарей мы победили (например палатализацию). Всегда есть тонкости и маленькие детали, от которых приходится отказываться.

Иллюстрация фонем на примере гласных для русского-английского-корейского

Приведём пример гласных звуков для 3 языков (без дифтонгов):

Фонема

EN

RU

KO

a

✔️

e

✔️

✔️

i

✔️

✔️

✔️

o

✔️

✔️

u

✔️

✔️

æ

✔️

✔️

ɐ

✔️

✔️

✔️

ɑ

✔️

ɒ

✔️

ə

✔️

✔️

ɛ

✔️

✔️

✔️

ɨ

✔️

✔️

ɪ

✔️

✔️

ɵ

✔️

ʉ

✔️

✔️

ʊ

✔️

✔️

ʌ

✔️

А вот как эти звуки встречаются в русском языке:

Фонема

Слово

Транскрипция

a

пало

a ɫ ə

e

легенда

ʎ ɪ ɟ e n̪ d̪ ə

i

завидная

z̪ ɐ vʲ i d̪ n̪ ə j ə

o

похожа

p ɐ x o ʐ ə

u

вернут

vʲ ɪ r n̪ u t̪

æ

нянчить

ɲ æ ɲ tɕ ɪ tʲ

ɐ

подожду

p ə d̪ ɐ ʐ d̪ u

ə

независимо

ɲ ɪ z̪ ɐ vʲ i sʲ ɪ m ə

ɛ

концерты

k ɐ n̪ t̪s̪ ɛ r t̪ ɨ

ɨ

заслуживают

z̪ ɐ s̪ ɫ u ʐ ɨ v ə j ʊ t̪

ɪ

душник

d̪ ʊ ʂ ɲ ɪ k

ɵ

доберётся

d̪ ə bʲ ɪ rʲ ɵ t̪ s̪ ː ə

ʉ

выключилась

v ɨ c ʎ ʉ tɕ ɪ ɫ ə sʲ

ʊ

спокойную

s̪ p ɐ k o j n̪ ʊ j ʊ

Итак, со "знаками" мы разобрались. Теперь нужно что-то сделать с голосами и криком. С криком проще — нужный в игре крик можно просто записать. То есть можно записать "спокойную" и "кричащую" (возбуждённую) версию голосов. Из этого, в принципе, даже можно сделать синтез на русском языке. Но как сделать синтез на всех языках?

Тут, глобально мы перепробовали очень много всего, но можно глобально выделить три работающих подхода:

Подход

Плюсы и минусы

Итог

Генерация крика на основе формант

Плюс — прямой параметрический контроль за интенсивностью крика.

Минус — работает только для очень чистых и многочисленных данных профессионального диктора.

В нужной нам постановке задачи не работает

Генерализация на иностранные языки через transfer learning

Плюс — генерализация происходит прямо внутри итоговой модели.

Минус — не хватает capacity модели. Или надо тренировать много биязычных моделей и добавлять больше данных, или увеличивать capacity модели. Всё это нежелательно для продукта (клиент нерезиновый).

Слишком сильный акцент в единой модели

Генерализация на иностранные языки через генерацию данных

Плюс — в продукт идёт компактная маленькая модель. Можно грамотно сбалансировать данные.

Минус — нужна модель-донор для генерации данных.

Выбранный нами подход

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

Первую более-менее рабочую версию мы сделали на основе transfer learning, то есть когда мы обучали модели на публичных данных, и потом дообучали на наших голосах. Но тут проблема основная в том, что с учётом требования по крику, допустим два языка у нас получалось поселить в модели с нужным качеством. А дальше — уже модель начинала плыть, то есть данные шумноваты, их слишком мало. Оно говорит чётко, произносит все тоны и фонемы, но акцент слишком сильный. Носители языка совсем не одобряют, даже с учетом того, что ты управляешь самолётом.

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

Вместо вывода

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

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

Проголосовал 1 пользователь. Воздержавшихся нет.