Перейти к содержанию
Yappy Скачать
Язык: ru

часть, которую больше никто не показывает

От написанного к сказанному.

Читать вслух — не значит выговаривать по буквам: это интерпретация. «1492» читается как «тысяча четыреста девяносто два»; «Генрих VIII» — «Генрих Восьмой», а «Louis XIV» по-французски — «Louis quatorze»; «EL CID» — не римская цифра; FBI произносится по буквам, NASA — нет. Прежде чем синтезировать хоть один слог, Yappy превращает текст в сценарий чтения: партитуру того, что голос скажет на самом деле.

Сценарист

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

Здесь появится сценарий, преобразованное подчёркнуто.

Двенадцать ремёсел в один заход.

Даты

«24/5/1533» произносится целиком — с порядком и родом, принятыми в каждом языке.

Время

«14:05» говорится так, как сказал бы человек, а не как прочли бы часы.

Деньги

«3,50 €» произносится как «три евро пятьдесят» — во множественном числе, как положено.

Проценты

«7 %» читается как «семь процентов», а «0,5 %» не превращается в «ноль запятая пять».

Единицы

«230 °C» читается как «двести тридцать градусов Цельсия».

Порядковые

«3-я» читается как «третья» — с правильным родом и склонением, где они есть.

Римские с умом

«Пётр I» — порядковое, «XX век» — тоже порядковое, а «EL CID» — вовсе не число.

Аббревиатуры по фонотактике

ФБР читают по буквам, НАСА — как слово. Решает звучание, а не список.

Сокращения

«и т. д.», «стр.», «XIX в.»: у каждого языка своя таблица.

Большие числа

Грамматики RBNF из Unicode CLDR, род и склонение в комплекте.

31 язык

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

Ритм

Заголовки дышат после того, как прозвучали; списки отбивают такт. Паузы — часть текста, а не случайность.

Частые вопросы

Что такое грамматики RBNF?
RBNF расшифровывается как Rule-Based Number Format: правила, по которым Unicode CLDR описывает, как число произносится на каждом языке. Это не таблица на тысячу слов, а грамматика: поэтому она знает, что по-испански будет «doscientas páginas», а не «doscientos páginas», что русский склоняет числительные, а французский считает до девяноста двадцатками. Yappy интерпретирует их на чистом Rust, без списков, написанных вручную.
Зачем нужен нормализатор? Разве голос не справится сам?
Нет, и это сделано нарочно. Голосовая модель Yappy работает на уровне символов: она произносит ровно то, что получает на входе. Это делает её быстрой и лёгкой, но если ей попадается «1492», она попытается прочесть именно это — цифру за цифрой. В такой модели нормализация и есть произношение. Нормализатор — та деталь, что превращает каждую цифру, каждую аббревиатуру и каждый символ в слова, которые сказал бы человек.
На скольких языках это работает?
Голос говорит на 31 языке, и у каждого свои правила: порядок дат, связка в денежных суммах, порядковые, сокращения и римские. XV век по-испански — «siglo quince», по-английски — «fifteenth century», по-русски — «пятнадцатый век»; «Louis XIV» — это «Louis quatorze», а не «Louis fourteenth». Одни и те же двенадцать задач, тридцать одна грамматика.
Почему подсветка караоке всегда попадает на точное слово?
Потому что сценарий — это не просто преобразованный текст: он хранит карту соответствий между написанным и произнесённым. Когда голос произносит «тысяча четыреста девяносто два», сценарий знает, что эти четыре слова происходят от четырёх цифр числа «1492», и подчёркивание ложится точно на место, никуда не съезжая. Это разница между подсветить текст и угадать его.
Слово произносится неправильно. Можно это исправить?
Пользовательского словаря произношения на сегодня нет. Раз модель читает по буквам, быстрый путь такой: написать слово в редакторе так, как оно звучит, и прослушать ещё раз. Если же сбой не разовый, а общий (сокращение, аббревиатура, единица измерения), расскажите об этом в задачах GitHub: таблицы генератора сценария пополняются такими случаями.
Генератор сценария на этой странице — тот же, что в приложении?
Код тот же, скомпилирован в WebAssembly, чтобы работать прямо в вашем браузере. Всё, что вы здесь пишете, не покидает вкладку. А поскольку проект открыт целиком, правила можно читать по одному в репозитории.

Текст — половина истории; вторую половину слышат.

Послушать образец