19 августа 2023 , Обновлено 27 августа 2023
Ordinal в SSML относится к атрибуту interpret-as тега say-as и указывает на произношение числа как порядкового числительного.
Порядковое числительное - это числительное, которое обозначает порядок предмета в некотором ряду. В русском языке примерами являются "первый", "второй", "третий" и так далее. Они отличаются от количественных числительных, которые просто обозначают количество. Порядковые числительные обычно отвечают на вопросы "какой по счету?".
Если вы хотите произнести число "3" как "третий":
<say-as interpret-as="ordinal">3</say-as>
Если просто написать 3 без ordinal, то нейросеть воспримет числа как количественное и произнесет "три".
Например, вам нужно произнести следующий текст
Возьми 3 ящик слева
Произносит "возьми три ящик слева". Нам такое не подходит. Задаем ordinal:
Возьми <say-as interpret-as="ordinal">3</say-as> ящик слева
Произносит корректно.
Допустим, вам нужно озвучить фразу:
Нет 3 монеты
Вы хотите, чтобы нейросеть озвучила "нет третьей монеты". Посмотрим, как с этим справится Сергей:
Не справился. Прописываем параметр ordinal:
Теперь отлично.
Эти голоса Наталья, Борислав, Марфа, Тарас, Александра, Сергей обладают продвинутым способом работы с тегом порядковыми числительными. У них есть очень точные настройки пола и падежа. Запись тега выглядит несколько иначе:
<say-as interpret-as="VALUE" format="GENDER_CASE"></say-as>
Вместо GENDER можно указать пол:
В атрибут CASE указывается падеж:
По умолчанию атрибут format принимает значения GENDER = masculine и CASE = nominative. Также атрибут format можно указывать в формате CASE_GENDER или GENDER_CASE.
Максимально большие произносимые числа - миллиарды. Триллионы уже не будет произносить.
Мужской род, родительный падеж:
<say-as interpret-as="ordinal" format="masculine_genitive">70</say-as>
Женский род, винительный падеж:
<say-as interpret-as="ordinal" format="feminine_accusative">70</say-as>
Средний род, именительный падеж:
<say-as interpret-as="ordinal" format="neuter_nominative">70</say-as>
Множественное число, предложный падеж:
<say-as interpret-as="ordinal" format="plural_prepositional">70</say-as>
Без использования тега ordinal в таких контекстах нейросеть может произносить числа как количественные, что приведет к семантической ошибке в предложении.