Nexia — это не «Нехийа»: как мы научили нейросеть говорить на узбекском языке

Узбекский — сложный язык для обучения нейронной модели. В нём используется латиница, но не все буквы звучат так, как в английском, а ещё язык постоянно меняется. Елена Белоброва, руководитель направления по развитию бизнеса ML-сервисов Yandex Cloud, рассказывает, как удалось научить нейросеть распознавать и синтезировать речь на узбекском языке.

Елена Белоброва
Руководитель направления по развитию бизнеса ML-сервисов Yandex Cloud

Узбекистан — одна из самых быстрорастущих стран в Центральной Азии. Правительство активно вкладывается в развитие IT-сектора и к 2030 году планирует войти в число 50 ведущих стран Глобального инновационного индекса. Например, в 2019 году в Ташкенте открылся крупнейший IT-кластер региона IT Park. Сейчас там зарегистрировано более 1300 резидентов.

На этом фоне растёт спрос на автоматизацию процессов в компаниях, в частности — на речевые технологии. Например, «Трастбанк» планирует выпустить виртуального ассистента, который будет общаться с клиентами на русском и узбекском языках. Также на рынок Узбекистана устремились компании из России. В 2022 году российский бизнес открыл в стране 967 предприятий — рекордное количество среди организаций с иностранным капиталом.

То, что компании интересуются речевыми технологиями на узбекском, мы заметили и по количеству запросов, которые приходят в Yandex Cloud. За последний год более половины ключевых партнёров Yandex SpeechKit запрашивали синтез и распознавание на узбекском языке.

Для узбекского языка мы реализовали две речевые технологии: синтез и распознавание речи. Такая возможность есть не для всех языков в Yandex SpeechKit. Но в Узбекистане речевые технологии в основном используются для создания голосовых ботов, поэтому нам были нужны обе модели.

Синтезируемая фраза переводится так: «Последний звонок — это не только последний день школьного образования, но и время для принятия выпускниками серьёзного и важного решения».
Синтезируемая фраза переводится так: «Последний звонок — это не только последний день школьного образования, но и время для принятия выпускниками серьёзного и важного решения».

Фраза, представленная на скриншоте выше, звучит так:

В чём особенность узбекского языка

Больше 20 лет в стране используется латинский алфавит, но помимо этого есть буквы с характерным для узбекского языка произношением. Например, «X» — это твёрдый звук «х», и автомобиль Nexia синтез прочитает не как «Нэксия», а как «Нехийа», так как не может понять, где английский, а где — узбекский язык. Такие исключения будут исправляться вручную: какие-то популярные названия мы будем корректировать самостоятельно, а также дадим пользователям возможность настраивать произношение с помощью фонемной записи, в которой указаны все особенности звуков в словах.

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

Как мы формировали датасет для синтеза речи

Чтобы научить нейросеть говорить на каком-либо языке, нужен хороший диктор. Помимо приятного голоса, он должен уметь правильно дышать, иметь стабильный тембр, правильную и соответствующую контексту подачу. Ещё при записи присутствует войскоуч — специалист, который контролирует, чтобы диктор строго следовал тексту и не менял манеры повествования. Он также следит за дыханием, посторонними звуками и физическим состоянием диктора, чтобы вовремя предложить ему передышку.

Модель синтеза работает на основе нескольких нейросетей. Вместе они обеспечивают живое звучание человеческой речи: с одной стороны, максимально повторяют манеру речи диктора, а с другой — передают соответствующий озвучиваемому тексту характер повествования.

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

Как собирали данные для распознавания

Для того, чтобы научить модель распознавать речь, данных нужно существенно больше, чем для обучения синтезу, — тысячи часов. Мы используем аудио из открытых источников, специально записанную речь в нужном формате.

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

Nexia — это не «Нехийа»: как мы научили нейросеть говорить на узбекском языке

Как мы обучаем нейросеть работать с адресами, автомобильными номерами и сокращениями

Когда нейросеть научилась читать и говорить или слушать и писать, начинается следующий этап — нормализация. Это перевод числительных, сокращений и символов в оптимальный для использования формат. Например, чтобы озвучить автомобильный номер «Х777АХ750», без нормализации потребовалось бы вводить весь текст: «ха семьсот семьдесят семь, а ха семьсот пятьдесят». Это неудобно.

Мы делаем нормализацию поэтапно. Начали с числительных и далее будем добавлять более редкие сценарии, например даты, популярные сокращения (такие как «ул. Пушкина, д. 4, кв. 1») и другие. Это не самый быстрый процесс, так как для нормализации нужно понимать особенности языка и учитывать много деталей.

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

Дальше — больше

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

1313
6 комментариев

Узбекский — сложный язык для обучения нейронной модели. В нём используется латиница, но не все буквы звучат так, как в английском, а ещё язык постоянно меняется. Да это же рокет сайнс, и как вы справились с такой задачей! Никакой больше язык не имеет отличий в звучании символов латиницы от английского и никакой больше язык на планете не меняется постоянно! Только узбекский и язык наави с Пандоры.

2
Ответить

Как, как. Наняли 100500 таджиков как обычно в РФ это делается.

Ответить

Например, «X» — это твёрдый звук «х», и автомобиль Nexia синтез прочитает не как «Нэксия», а как «Нехийа»,

Именно твердый? Тогда может «Нехыйа» или «Нехъийа»?

Ответить

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

Ответить

Также на рынок Узбекистана устремились компании из России. В 2022 году российский бизнес открыл в стране 967 предприятий — рекордное количество среди организаций с иностранным капиталом.

Я только не оч понял, это заслуга Узбекистана или правительства Эрефии, что эти галерки поплыли теперь туда?)

Больше 20 лет в стране используется латинский алфавит, но помимо этого есть буквы с характерным для узбекского языка произношением. Например, «X» — это твёрдый звук «х», и автомобиль Nexia синтез прочитает не как

Унылый бред менеджера. Латиница много где, и много где читается по-разному.

Дальше — больше

Вот тут согласен, и больше и дальше )

Ответить

От как классно ,теперь нейросеть говорит на узбекском

Ответить