НовостиОбзорыВсе о нейросетяхБытовая техника 2024ГаджетыТехнологииНаукаСоцсетиЛайфхакиFunПромокодыСтранные вопросыЭксперты

Говорить человеческим языком

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

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

Просто нажимаете на кнопку и говорите, что хотите найти. Система голосового поиска Google сделает все остальное. О том, как работает эта система, производящая неизгладимое впечатление даже на опытных пользователей, «Популярной механике» рассказал один из создателей ее русской версии, старший инженер по разработке программного обеспечения научно-исследовательской лаборатории компании Google Евгений Вайнштейн.

Спроси у облака

Конечно, голосовые интерфейсы существовали и раньше – достаточно вспомнить голосовые меню в некоторых автомобилях или голосовой набор в телефонах. Однако, как правило, такие системы либо требуют предварительного обучения, либо оперируют очень ограниченным словарем в несколько десятков слов (либо и то и другое). Поэтому, когда Google в 2008 году объявила о запуске голосового поиска для мобильных устройств (прежде всего смартфонов на платформе Google Android) на самом обычном английском языке, многие восприняли это скептически. Однако оказалось, что система работает и работает на удивление хорошо. А спустя два года Голосовой поиск Google стал распознавать и русский язык.

«Командные системы используют очень ограниченные словари, а при поиске запросы бывают самые разнообразные, так что словарь может достигать миллионов слов, – объясняет Евгений. – Автономная система распознавания речи с таким словарем должна иметь высочайшую производительность, с этим не справится не только смартфон, но и мощный полноразмерный компьютер, да и стоимость такой системы я даже боюсь себе представить. Поэтому Голосовой поиск Google стало возможным реализовать только сейчас, когда получили развитие так называемые облачные сервисы. На мобильном устройстве выполняется только оцифровка и упаковка речи, после этого смартфон отсылает эти данные на сервер, где и проводятся все ресурсоемкие вычисления, то есть распознавание речи. После этого на смартфон пересылаются уже готовые результаты поиска».

Железный собеседник

Для распознавания речи используются сложные компьютерные алгоритмы, базирующиеся на трех основных моделях речи. Но для того чтобы компьютер начал ассоциировать речь со словами, необходимо дать ему прослушать настоящие человеческие голоса – много голосов, зачитывающих определенный текст. «Чтобы запустить первоначальную версию голосового поиска, нужно несколько тысяч голосов, – говорит Евгений. – Это, конечно, не дает высокой точности распознавания, но по мере эксплуатации накапливаются все новые голоса, и точность значительно повышается. Чем больше людей пользуется системой, тем выше становится точность распознавания. Например, английская версия сервиса сейчас, через три года после запуска, допускает при транскрипции около 17% ошибок. Для сравнения: уровень ошибок, которые делает человек, в среднем составляет порядка 10%. Можно ли довести уровень распознавания нашей системы до уровня живого человека? Это очень сложно. Такое можно сделать для систем с ограниченным словарем – скажем, состоящим только из цифр, как в некоторых банках».

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

Языковая модель

Определяет вероятность использования слов в устойчивых сочетаниях. Например, сочетания «смотреть фотки онлайн» и «смотреть лодки онлайн» звучат очень похоже, но вероятность использования первой в поисковом запросе намного выше.

Модель произношения

Устанавливает соответствие между написанием слова и последовательностью звуков (фонем). Эта задача сама по себе достаточно сложна, к тому же нужно учитывать существование различных индивидуальных особенностей произношения, акцентов, а также неоднозначностей при чтении – например, многозначные числа могут быть прочитаны и как многозначные, и последовательно по одной или по несколько цифр.

Акустическая модель

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

Читаю со словарем

После того как компьютер, подобно человеку, сложит из звуков слово, он должен «понять» его – то есть найти его в словаре. Чем больше словарь, тем выше точность системы, но тем больше времени занимает процесс распознавания. «Приходится,– объясняет Евгений, – идти на компромисс, так что оптимальный размер словаря составляет порядка миллиона слов. Причем в это количество входят не только сами слова, но и все словоформы, собственные имена, названия компаний и т.п. Это одна из причин, по которой русский вариант голосового поиска менее точен в распознавании. В этот миллион словоформ, например, входят слова в различных падежах». Впрочем, русский – далеко не единственный трудный язык для системы голосового поиска. У других языков свои проблемы: в немецком это составные слова, во французском – связывание (liaison), когда произношение слова меняется в зависимости от контекста. А китайский язык – настоящий кошмар для разработчиков: во-первых, он тональный (в зависимости от тона слова могут означать разные понятия), а во-вторых, китайский (а также японский) язык использует не фонетическое письмо, а иероглифическое. Поэтому словарь для таких систем поиска должен быть не орфографическим, а фонетическим.

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

Далее везде

Однако круг задач, для которых необходимо распознавание голоса, не ограничивается только голосовым поиском. А как насчет других применений? «Технически это вполне реализуемо, во всяком случае в некоторых областях, – говорит Евгений. – Скажем, сервис Google Voice (доступный пока только в США) – это голосовая почта, сообщения которой транскрибируются и отправляются владельцу на e-mail. Или Google Voice Actions, позволяющий управлять телефоном на базе операционной системы Android – звонить, набирать сообщения, делать записи, прокладывать маршрут – и все с помощью одного только голоса, правда, пока только на английском языке. Можно даже диктовать документы, но точность распознавания при этом ниже, поскольку языковая модель Google базируется на статистике именно поисковых запросов. Сейчас мы также тестируем систему транскрибирования речи ввиде субтитров в видеоклипах, размещенных на портале Youtube. Ну а совместно с технологией синтеза речи распознавание голоса уже можно использовать как систему перевода с одного языка на другой».