ym88659208ym87991671
Аббревиатуры, даты и числительные | Документация для разработчиков

Аббревиатуры, даты и числительные

Обновлено 17 ноября 2023

Тег <say-as> включает в себя атрибут interpret-as. Значение этого атрибута определяет дальнейшее произнесение синтезируемого текста.

Значение атрибута interpret-as тега say-asПримерОписание
cardinal<speak><say-as interpret-as="cardinal" format="feminine_nominative">1</say-as> пачка</speak>Произнесение количественного числительного
ordinal<speak><say-as interpret-as="ordinal" format="feminine_nominative">1</say-as> пачка</speak>Произнесение порядкового числительного
spell-out<speak><say-as interpret-as="spell-out">МКС</say-as></speak>Произнесение аббревиатур более привычным способом
telephone<speak><say-as interpret-as="telephone" detail="VAL_VAL">+7 (909) 2282424</say-as></speak>Произнесение номера мобильного телефона
money<speak><say-as interpret-as="money" detail="USD">21</say-as></speak>Произнесение денежной суммы
date<speak><say-as interpret-as="date" detail="d.m.y">25.01.2000</say-as></speak>Произнесение даты

Cardinal и ordinal

Значения cardinal и ordinal атрибута interpret-as отвечают за произнесение количественного и порядкового числительных соответственно.

<say-as interpret-as="VALUE" format="GENDER_CASE"></say-as>

Строковый параметр VALUE принимает следующие значения:

  • cardinal — количественное числительное;
  • ordinal — порядковое числительное.

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

  • masculine — мужской род;
  • feminine — женский род;
  • neuter — средний род;
  • plural — множественное число.

Строковый параметр CASE принимает следующие значения:

  • nominative — именительный;
  • genitive — родительный;
  • dative — дательный;
  • accusative — винительный для одушевленных;
  • accusative_dead — винительный для неодушевленных;
  • ablative — творительный;
  • prepositional — предложный.

По умолчанию атрибут format принимает значения GENDER = masculine и CASE = nominative. Также атрибут format можно указывать в формате CASE_GENDER или GENDER_CASE.

В качестве значений тега <say-as> можно использовать отрицательные числа и начинать числа с нуля. Для обоих видов числительных поддерживаются числа не выше миллиардов. Если для cardinal указать число больше, в ответе будет количество миллиардов. Например: 1 000 000 000 000 — «тысяча миллиардов». Если для ordinal указать больше, то в ответ придет ошибка.

Пример произношения числа 1 в женском роде родительном падеже — «одной»:

    <speak><say-as interpret-as="cardinal" format="feminine_genitive">1</say-as></speak>

Spell-out

Значение spell-out атрибута interpret-as отвечает за правильное произнесение аббревиатур. Вместе с этим значением не используются дополнительные параметры. Аббревиатура пишется в теге say-as и указывается значение атрибута interpret-as="spell-out".

<speak><say-as interpret-as="spell-out">МКС</say-as></speak>

Telephone

Значение telephone атрибута interpret-as отвечает за произнесение номеров телефонов.

    <speak><say-as interpret-as="telephone" detail="VAL_VAL">+7 (909) 2282424</say-as></speak>

Группировка цифр

Если есть код страны, его можно указать в формате +7, 7 или 8.

Вы можете указать номер телефона без разделителей, система сгруппирует цифры самостоятельно, например:

  • +79651873118 — XX-XXX-XXX-XX-XX;
  • 89651873118 — X-XXX-XXX-XX-XX;
  • 9651873118 — XXX-XXX-XX-XX.

Для указания кода оператора или кода города можно, но необязательно, использовать скобки. Код будет сгруппирован в следующем формате:

  • (123) — XXX;
  • (1234) — XX-XX;
  • (12345) — XXX-XX;
  • (123456) — XX-XX-XX;
  • (1234567) — XXX-XX-XX.

Если код города не указан, будет обработан только номер.

В примерах произнесения номера телефона дефис играет роль паузы, а X - роль цифры.

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


Настройка пауз

С помощью атрибута detail="phone_pause:VALUEms" можно настроить паузу между группами цифр, где VALUE — число в формате integer, указывающее паузу в миллисекундах.

Пример:

    <speak><say-as interpret-as="telephone" detail="phone_pause:400ms">+7 (999) 123-45-67</say-as></speak>

В этом примере пауза в 400ms расставлена следующим образом:

+7 pause 999 pause 123 pause 45 pause 67.


Произношение слова «ровно» для круглого числа

С помощью атрибута detail="use-round-word" можно произносить слово «ровно», если в номере есть круглое трехзначное число в шаблоне XXX-XX-XX.

Пример:

    <speak><say-as interpret-as="telephone" detail="use-round-word">+7 (800) 500-45-60</say-as></speak>

Результат: плюс семь восемьсот пятьсот ровно сорок пять шестьдесят.

Также в атрибуте detail можно одновременно указывать паузу и использование слова «ровно» через знак _.

Пример:

    <speak><say-as interpret-as="telephone" detail="use-round-word_phone_pause:400ms">+7 (800) 500-45-60</say-as></speak>

Money

Значение money атрибута interpret-as отвечает за произнесение денежных сумм в заданной валюте.

<say-as interpret-as="money" format="CASE" detail="CURRENCY_short-form_say-null-cents">VALUE</say-as>

Атрибут format имеет строковый параметр CASE с указанием падежа:

  • nominative — именительный;
  • genitive — родительный;
  • dative — дательный;
  • accusative — винительный;
  • ablative — творительный;
  • prepositional — предложный.

Параметры в атрибуте detail необходимо указывать через знак _.

Строковый параметр CURRENCY указывает валюту (по умолчанию используется рубль). Доступные варианты:

  • RUB — рубль;
  • USD — доллар США;
  • EUR — евро;
  • GBP — фунт стерлинг;
  • CAD — канадский доллар;
  • CHF — швейцарский франк;
  • SEK — шведская крона;
  • DKK — датская крона;
  • NOK — норвежская крона;
  • JPY — японская йена;
  • CNY — китайский юань;
  • PLN — польский злотый.

Можно дополнить произнесение денежных сумм следующими вариантами:

  • full-form — полные формы названий валют. Например, «японская йена».
  • short-form — короткие формы названий валют. Например, «доллар» вместо «доллар США».
  • say-null-cents — «центы» будут произнесены в любом случае, даже если их ноль. Например, «десять долларов, ноль центов».

Примеры:

    <speak><say-as interpret-as="money" format="genitive" detail="say-null-cents">10</say-as></speak>

Результат: десяти рублей, ноля копеек.

    <speak><say-as interpret-as="money" detail="USD">21</say-as></speak>

Результат: Двадцать один доллар США.

    <speak><say-as interpret-as="money" detail="USD_short-form">21,15</say-as></speak>

Результат: Двадцать один доллар, пятнадцать центов.

Date

Значение date атрибута interpret-as отвечает за произнесение дат.

<say-as interpret-as="date" format="CASE" detail="TEMPLATE">VALUE</say-as>

Атрибут format имеет строковый параметр CASE с указанием падежа:

  • nominative — именительный;
  • genitive — родительный;
  • dative — дательный;
  • accusative — винительный для одушевленных;
  • accusative_dead — винительный для неодушевленных;
  • ablative — творительный;
  • prepositional — предложный.

Параметр TEMPLATE атрибута detail задает порядок, в котором указаны число, месяц и год. Можно указать только два или только одну часть, например, число и месяц без года или только год. Допускаются только символы, указанные ниже, которые должны иметь любой из разделителей: ., - или /.

  • d — шаблон для числа месяца;
  • m — шаблон для месяца;
  • y — шаблон для года;
  • yw (вместо y) — в этом случае будет опущено слово год («двухтысячный» вместо «двух тысячный год»).

Дата VALUE представляет собой числа с одним из разделителей: ., - или /. Порядок и наличие числа, месяца и года должен соответствовать TEMPLATE. Если TEMPLATE не указан, используется по умолчанию формат даты d.m.y. День и месяц даты можно указывать одной или двумя цифрами. Год можно указывать от одной до четырех цифр.

Примеры:

    <speak><say-as interpret-as="date" detail="d.m.y">25.01.2000</say-as></speak>

Результат: Двадцать пятое января двухтысячного года.

    <speak><say-as interpret-as="date" detail="m.yw">01.2000</say-as></speak>

Результат: Январь двухтысячного.

    <speak><say-as interpret-as="date" format="accusative" detail="y">2000</say-as></speak>

Результат: Двухтысячный год.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.