17 сентября 2025 , Обновлено 12 февраля 2026
Date в SSML относится к атрибуту interpret-as тега say-as и используется для корректного произношения дат. Это позволяет контролировать, как система синтеза речи интерпретирует и произносит различные форматы дат.
Date работает в соответствии с международной SSML спецификацией https://www.w3.org/TR/ssml-sayas/#S3.1.
В качестве разделителя можно ставить знаки дефис "-", слеш "/", точку "."
Атрибут format задает формат даты, в котором d = день, m = месяц, y = год.
| Поле | Диапазон | Пример |
|---|---|---|
| Day (одна или 2 цифры) |
0?[1...9] [10...31] |
03, 15 |
| Month (одна или 2 цифры) |
0?[1...9] [10...12] |
7, 11 |
| Year (одна или 4 цифры) |
0?0?0?[0...9] 0?0?[10...99] 0?[100..999] [1000..9999] |
45, 998, 2023 |
* Запись 0? означает, что 0 может быть использован или нет, в зависимости от того, как вам нужно.
Для дней и месяцев одна или две цифры, не обязательно ставить нули перед цифрой. Для года не обязательно указывать век или начальные нули.
У тега выставлено значение detail="1" по умолчанию. Оставляйте его как есть.
Возможны следующие варианты записи дат:
dmy, mdy, ymd, ym, my, md, dm, d, m, y. Приведем пример для каждого формата.
<say-as interpret-as="date" format="dmy" detail="1">10-10-2016</say-as> Можно сократить год до двух чисел, записать месяц и день без нулей:
<say-as interpret-as="date" format="dmy" detail="1">5/7/24</say-as><say-as interpret-as="date" format="mdy" detail="1">11.09.23</say-as><say-as interpret-as="date" format="ymd" detail="1">1945.05.09</say-as><say-as interpret-as="date" format="ym" detail="1">1917/10</say-as><say-as interpret-as="date" format="my" detail="1">7.98</say-as><say-as interpret-as="date" format="md" detail="1">03/08</say-as><say-as interpret-as="date" format="dm" detail="1">31/12</say-as><say-as interpret-as="date" format="d" detail="1">12</say-as><say-as interpret-as="date" format="m" detail="1">01</say-as><say-as interpret-as="date" format="y" detail="1">998</say-as>Содержимое date произносится в соответствии с принятыми в языке правилами. Например, дата 05/07/07 с форматом "dmy" (день-месяц-год), в контексте en-US может быть произнесена как "июль, пятое, ноль седьмое", причем ноль будет читать не "зиро", а "оу", как принято заменять нули в на буквы в штатах.
<say-as interpret-as="date" format="dmy" detail="1">05/07/07</say-as>К сожалению, голоса Алена, Филипп, Оксана, Джейн, Омаж, Захар, Эрмил, Мартын не поддерживают данную технологию.
А голоса Наталья, Борислав, Марфа, Тарас, Александра, Сергей обрабатывают этот тег иначе — у них более продвинутые настройки, описанные ниже.
Голоса Наталья, Борислав, Марфа, Тарас, Александра, Сергей обладают расширенным способом работы с тегом date. Они поддерживают точные настройки падежей, что позволяет контролировать, в какой грамматической форме будет произнесена дата.
Запись тега для продвинутых голосов:
<say-as interpret-as="date" format="CASE" detail="TEMPLATE">VALUE</say-as>
| Атрибут | Значение | Описание |
|---|---|---|
| format | CASE (падеж) | Определяет, в каком падеже будет произнесена дата. По умолчанию — nominative. |
| detail | TEMPLATE (шаблон) | Задаёт последовательность: какие части даты присутствуют и в каком порядке. Используйте дефис "-" как разделитель между частями шаблона. |
| VALUE (содержимое тега) | Числовое значение даты с разделителем "-". Порядок и наличие частей должны соответствовать шаблону в detail. | |
Атрибут detail определяет, какие части даты присутствуют. Всегда должна соблюдаться последовательность: день → месяц → год. Нельзя менять порядок (например, месяц-день-год недопустимо).
Можно указать только две или одну часть. Например:
| detail | Что произносится | Пример VALUE |
|---|---|---|
| d-m-y | день, месяц и год | 25-1-2000 |
| d-m-yw | день, месяц и год (без слова «год») | 25-1-2000 |
| d-m | день и месяц | 1-1 |
| m-y | месяц и год | 02-2000 |
| m-yw | месяц и год (без слова «год») | 02-2000 |
| d | только день | 25 |
| m | только месяц | 1 |
| y | только год | 2000 |
В качестве разделителя в VALUE используйте дефис "-".
Дата в винительном падеже с полным шаблоном день-месяц-год:
<say-as interpret-as="date" format="accusative" detail="d-m-y">25-1-2000</say-as>Марфа произнесла дату в винительном падеже и добавила в конце слово «года».
Тот же пример, но с шаблоном m-yw (месяц и год без слова «год»):
<say-as interpret-as="date" format="accusative" detail="m-yw">02-2000</say-as>Марфа озвучила месяц и год в винительном падеже, но за счёт yw вместо y опустила слово «года».
Приведём примеры, как произносится дата «1 января» во всех падежах. Используем шаблон d-m (день-месяц) и значение 1-1.
<say-as interpret-as="date" format="nominative" detail="d-m">1-1</say-as><say-as interpret-as="date" format="genitive" detail="d-m">1-1</say-as><say-as interpret-as="date" format="dative" detail="d-m">1-1</say-as><say-as interpret-as="date" format="accusative" detail="d-m">1-1</say-as><say-as interpret-as="date" format="ablative" detail="d-m">1-1</say-as><say-as interpret-as="date" format="prepositional" detail="d-m">1-1</say-as>Продвинутые голоса также поддерживают управление падежом и родом для числительных через теги cardinal и ordinal. В этом случае атрибут format принимает комбинацию рода и падежа:
<say-as interpret-as="ordinal" format="GENDER_CASE">VALUE</say-as>
Доступные значения рода: masculine (мужской, по умолчанию), feminine (женский), neuter (средний), plural (множественное число). Формат можно указывать как GENDER_CASE, так и CASE_GENDER.
* Значение accusative_dead (винительный для неодушевлённых) доступно только для числительных (cardinal/ordinal). Для дат используйте accusative — даты всегда неодушевлённые, поэтому отдельное значение не требуется.
Подробнее — в статье Ordinal (порядковое числительное).
Атрибут date полезен, когда вы хотите контролировать, как именно дата будет произнесена. Для базовых голосов достаточно указать формат (dmy, dm и т.д.) и detail="1". Продвинутые голоса (Наталья, Борислав, Марфа, Тарас, Александра, Сергей) дают гораздо больше контроля: можно задать падеж через format и точный шаблон через detail, включая параметр yw для подавления слова «год».