Блог Һомай

О синтезе речи замолвите слово

Поднимите руку, кто пробовал озвучивать тексты автоматически сервисами типа text-to-speech? Монотонный голос без интонаций, ударения где попало, неправильная трактовка сокращений, отсутствие интонационных пауз и смысловых акцентов — и эти огрехи встречаются даже в хорошо оцифрованных языках: в английском и русском!

Почему механический голос так сложно научить говорить нормально?

Любой второклассник понимает, как правильно прочитать “км/ч”, “15.10.2023” и “21:45”? Однако, для машины все эти очевидные значки выглядят одинаково и считываются как бездушные последовательности ничего не значащих цифр.
Ученые подходили к этой проблеме двумя путями:
  • инженерно: забивали все сокращения, обозначения и прочие исключения по словарю рутинными методами (это долго, муторно и не всегда гарантирует результат);
  • с помощью нейросетей (это дорого: нужны огромные вычислительные мощности).
Оба подхода показывают результат, но как бы не старались алгоритмы, люди все еще могут отличить, когда текст читает человек, а когда — голосовой помощник.
Ну хорошо. Пока большие компании и государственные корпорации обучают машину говорить по-человечески, команда разработчиков умной колонки Хомай не прекращает работу по синтезу башкирской речи. Вы не поверите, сколько там неожиданных подводных камней!

Ударения

Спросите любого иностранца, который пытался учить русский, что вызывает больше всего вопросов. Уверены: каждый второй начнет проклинать ударения, которые ставятся непонятно куда, и запомнить это совершенно невозможно.
Как программисты, работавшие над русским text-to-speech, решили эту проблему? А никак. Они просто завели словарь ударений. Как в том анекдоте “запомни это, потому что понять это невозможно”.
Что насчет башкирского? Казалось бы: в тюркских языках ударение часто падает на последний слог. То есть проблем с этим не возникнет? Не совсем так! В башкирском у слов почти всегда нет ударения. Это значит, что буква А что в начале, что в конце звучит одинаково.
НО! Бывают ситуации, когда ударения появляются. Как правило, это два случая:
  • при окончании -МЕ, это вопросительное слово, например “киләМЕ” тут всегда ударение на слоге до окончания -МЕ, то есть “килӘме”;
  • когда используются окончания типа -ЛӘ которые могут служить либо окончанием, либо вспомогательной частицей, например: “Диләлә — у Дили”, “Дилә лә — Диля тоже”.
В случае если -ЛӘ работает как вспомогательная частица, нужно делать некую паузу, чтоб показать, что это отдельное слово. И в этот момент на последний слог предыдущего слова делается акцент, который звучит как ударение.
Как мы собираемся решить эту проблему? Думаю, что это гораздо легче, чем вбивать в алгоритм словарь ударений, так что у нас уже есть несколько мыслей, как решить задачу изящно и красиво.

Звучание согласных

В русском есть гласные буквы (яёюие), которые смягчают согласную, которая идет перед ним: в фонетическом разборе слова мы обозначали это запятой сверху — например, слово пряник произносится как “пр’ан’ик” (а читается как “прь_ань_ик”).
В башкирском из этого набора данное правило относится только к букве И. Причина проста: все остальные буквы в виде звуков вообще отсутствуют в башкирском языке:
  • Я превращается в ЙА,
  • Ю в ЙУ,
  • Ё в ЙО.
А звук Й или стоит после гласного или в начале слога. В этих случаях смягчения согласных особо не заметно. Звука Е вообще нет в башкирском. Мы используем эту букву, но при этом в начале эту буква звучит как ЙЭ, а в середине или в конце, как Э.

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

Что это значит для нас?

Это хорошие новости. Башкирский очень удобен с точки зрения программиста как при синтезе, так при распознавании речи. Тут действует самое любимое правило: “Как слышишь, так и пишешь”. Говорят, в этом башкирский похож на белорусский.
К сожалению, при синтезе не все получается автоматизировать. Например, слушая синтезированную речь, мы заметили, что букву Р в конце слова иногда плохо слышно. Что делать? Можно поступить просто: вместо одной буквы писать две, и алгоритм сразу начинает ее хорошо произносить, правда, слово при этом выглядит так, будто его мурлыкает кот: вместо “тамыр” придется писать “тамырр”.

Пока нам нравится то, как звучит башкирский text-to-speech. И это дополнительный стимул продолжать работу.

Был мәҡәләне башҡортса уҡырға: Телмәр синтезы тураһында һөйләгеҙ
Хотите узнавать о выходе новых статей сразу же? Подпишитесь на наш канал в Телеграме:

Хомай/Homai/Һомай - на русском языке
Һомай - на башкирском языке