Бесит, когда робот озвучивает фразы, составленные из кусочков. В такси:

К вам подъезжает – Ауди – черный – номер – ноль – три – четыре.

В Сбербанке:

Талон с номером – сто – двадцать – один – Б.

Провалы между словами режут слух. Люди говорят связно. А. Не. По. Одному. Слову.

Беда с произношением текста в том, что фразу нельзя собрать по кусочкам, как цепочку байт. Наивный программист уверен, что если список строк легко соединяется в одну:

strings = ["Талон номер", "сто", "двадцать", "один"]
" ".join(strings)
>>> Талон номер сто двадцать один

то и аудио-файлы достаточно склеить, чтобы получить результат.

Конечно, нет. Странно, что об этом забывают в процессе развертывания системы.

Правильно сделать так – начитать как можно больше фраз, чтобы не было пауз. Например, для чисел записать варианты от 0 до 999. Да, потребуется время, ну и что? Займет два лишних часа, зато будет классно звучать. Если в системе десять окон, то записать десять фраз:

  • Пройдите в первое окно
  • Пройдите во второе окно

и так далее. Намного человечней, чем “Пройдите в окно. Три.”

Так вот, в воронежском ГАИ фразы звучат именно таким образом. На каждое окно отдельная фраза. Каждой цифре – своя дорожка. Удивительно!

Клиент с номером. Сто двадцать три. Пройдите в пятое окно.

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

Напомню, что это не Сбербанк, который лопается от денег, а госбюджет. Видимо, за систему отвечал тот, которому было не похер на свою работу. Не знаю, был ли это программист, или тестировщик, директор или главный гаишник. Но человек золотой, респект и уважение.