Есть существенные отличия от текстовой реализации в подготовке информации о погоде для дальнейшего ее вывода голосовым ассистентом. Рассмотрим подробнее:
Как видно из скриншота, к переменным применяются математические функции.
Математическое округление (Math.round()) до целого делается для более комфортного восприятия на слух значений погоды, да и точность до десятых градуса обычному пользователю не нужна. Однако из-за округления значений, может сложиться ситуация, когда значения скорости ветра и его порывов могут совпасть. Для более комфортного восприятия на слух в этом случае скорость порывов увеличивается на 1 м/с.
При подготовке данных для вывода значений погоды (на экран или на колонку) используется функция $nlp.conform, которая согласует слова с числительными (три градуса (метра), пять градусов (метров)).
Было замечено, что с отрицательными числами согласование по падежам идет не всегда корректно, но отлично с положительными. Для этого и берется абсолютное значение температуры (Math.abs()),
именно оно подставляется в функцию.
Want to print your doc? This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (