Код документа: RU2646350C2
Область техники, к которой относится изобретение
Настоящая технология относится к способам ввода данных в электронное устройство и способам обработки голосового запроса, введенного в электронное устройство.
Уровень техники
Преобразование речи в текст хорошо известно в данной области техники. Обычно пользователь электронного устройства со встроенным микрофоном позволяет микрофону улавливать аудиосигнал, соответствующий части речи, и использовать распознаватель речи. Распознаватель речи далее выводит строку текста либо операционной системе электронного устройства, либо приложению, работающему на электронном устройстве.
Распознавание речи считается серьезной нагрузкой на процессор, и даже в современных смартфонах или планшетах, как правило, используется удаленный сервер, запускающий систему для распознавания речи. Таким образом, провайдеры, такие как, например, Google и Yandex, предоставляют серверы распознавания речи (см. http://api.yandex.com/speechkit/), которые доступны через соответствующий интерфейс программирования.
Приложение или операционная система, которая работает в сети с поддержкой удаленного электронного устройства, может предоставлять уловленный аудиосигнал серверу распознавания речи, который, в свою очередь, выводит строку текста, которую может использовать приложение или операционная система, например, для заполнения строки сообщения в приложении для обмена сообщениями, для получения перевода речи пользователя на другой язык, для формирования основы поискового запроса или выполнения какой-либо команды операционной системы.
Примеры подобной технологии включают в себя описание к патенту США №US 8731942, опубл. 20.05.2014, принадлежащему компании Apple, в котором описана работа цифрового помощника, известного как Siri. Техническое решение по патенту США №US 8731942 связано с поддержкой контекстной информации между пользовательскими взаимодействиями. Цифровой помощник выполняет первую задачу с помощью первого параметра. Текстовая строка поступает в виде голосового ввода, полученного от пользователя. На основе, по меньшей мере частично, поисковой строки определяется вторая задача, отличающаяся от первой задачи, или второй параметр, отличающийся от первого параметра. Первая задача выполняется с использованием второго параметра или вторая задача выполняется с использованием первого параметра.
В патентной заявке США №US20140163983, опубл. 12.06.2014, принадлежащей компании LG, описан способ отображения переведенного в текстовую форму голоса на дисплее устройства, в котором процессор предоставляет интерфейс просмотра текста, отображающий по меньшей мере часть текста на дисплее в ответ на первый ввод пользователя и предоставляет интерфейс вывода текста, отображающий текст на дисплее в ответ на второй ввод пользователя.
Другая частая форма пользовательского взаимодействия с электронным устройством включает в себя заполнение форм либо в соответствующем приложении, либо в сетевом приложении, работающем в веб-браузере.
Несмотря на то что некоторые браузеры или браузерные агенты обладают функцией автозаполнения, позволяющей заполнять поля формы ранее сохраненными учетными данными пользователя, пользователи обычно не используют голосовой ввод для заполнения форм.
Происходит это по причине того, что для взаимодействия с интерфейсом широкого использования, включающим множество полей с возможностью голосового ввода, пользователям обычно необходимо вручную выбирать, какие именно поля они хотят заполнить, и далее надиктовать текст для этого поля. Таким образом, пользователь выбирает поле ввода А, заполняет его с помощью голосового ввода, далее выбирает поле ввода В, заполняет его, и так далее. Очевидно, что это является затруднительным.
Термин "поле ввода" включает в себя не только поля ввода текста, в которые пользователь свободно вводит текст в текстовое окно, например поле имени или поле адреса, но и любой другой интерфейс пользователя, с помощью которого пользователь может вводить информацию в приложение, например окно флажка, зависимые кнопки, календарные виджеты или выпадающие меню.
Как будет видно в каждом из других примеров, выбор поля ввода и попытка надиктовать команду по меньшей мере не будут интуитивно понятными пользователю, если не вовсе невозможными.
Раскрытие изобретения
Первым объектом настоящей технологии является способ ввода данных в электронное устройство, включающий в себя: получение голосового запроса через голосовой интерфейс электронного устройства; получение множества тегов, каждый из которых связан с соответствующим полем ввода пользовательского интерфейса, относящегося к приложению на упомянутом электронном устройстве; получение по меньшей мере одной части текста, связанной с соответствующим тегом, который является производным от упомянутого голосового запроса; заполнение по меньшей мере одного поля ввода упомянутого приложения с помощью соответствующей части текста, которая связана с соответствующим тегом, связанным с полем ввода.
Возможен вариант осуществления способа, в котором каждый из упомянутого множества тегов предоставляет семантическое описание для соответствующего поля ввода.
Возможен вариант осуществления способа, в котором упомянутое приложение включает в себя веб-приложение, упомянутое веб-приложение включает в себя множество веб-страниц, каждая страница включает в себя по меньшей мере одно поле ввода, множество упомянутых полей ввода обладает соответствующими тегами.
Возможен вариант осуществления способа, в котором по меньшей мере одна из упомянутых веб-страниц включает в себя определение потока операций, и это определение указывает на последовательность страниц, включая упомянутое веб-приложение, и для каждой страницы - набор идентификаторов для каждого поля ввода упомянутой страницы.
Возможен вариант осуществления способа, в котором упомянутое определение потока операций включает в себя логику определения условной последовательности страниц в рамках упомянутого веб-приложения.
Возможен вариант осуществления способа, в котором упомянутые идентификаторы включают в себя теги для упомянутых полей ввода.
Возможен вариант осуществления способа, в котором на упомянутом этапе получения по меньшей мере одной части текста выполняют предоставление упомянутого голосового запроса, а также индикатора упомянутого множества тегов, связанных с соответствующими полями ввода упомянутого приложения, серверу преобразования речи в текст; и получают упомянутую по меньшей мере одну часть текста, связанную с соответствующим тегом, от упомянутого сервера преобразования речи в текст.
Возможен вариант осуществления способа, в котором упомянутый индикатор включает в себя URL веб-приложения.
Возможен вариант осуществления способа, в котором упомянутый индикатор включает в себя упомянутые теги.
Возможен вариант осуществления способа, в котором дополнительно: выполняют поиск семантической пользовательской информации, доступной на упомянутом электронном устройстве в ответ на получение части текста с нулевым значением текста, связанной с соответствующим тегом для поля ввода упомянутого приложения; заполняют упомянутое поле ввода упомянутого приложения, связанного с упомянутым тегом, с помощью упомянутой семантической пользовательской информации в ответ на получение семантической пользовательской информации, совпадающей с упомянутым соответствующим тегом с частью текста с нулевым значением текста.
Возможен вариант осуществления способа, в котором упомянутая семантическая пользовательская информация включает одно из: личную информацию пользователя; контактную информацию пользователя; информацию о местонахождении пользователя; историю браузера пользователя; избранные вебстраницы пользователя.
Вторым объектом настоящей технологии является способ обработки голосового запроса, включающий в себя: получение голосового запроса через голосовой интерфейс электронного устройства; получение множества тегов, каждый из которых связан с соответствующим полем ввода пользовательского интерфейса, для приложения на упомянутом электронном устройстве; перевод голосового запроса в текст; анализ текста для предоставления по меньшей мере одной части текста; установление связи по меньшей мере одной части текста с соответствующим тегом из множества тегов; передачу электронному устройству по меньшей мере части текста с указанием соответствующего тега.
Возможен вариант осуществления способа, в котором каждый из упомянутого множества тегов предоставляет семантическое описание для соответствующего поля ввода.
Возможен вариант осуществления способа, в котором упомянутое приложение включает в себя веб-приложение, упомянутое веб-приложение включает в себя множество веб-страниц, каждая страница включает в себя по меньшей мере одно поле ввода, множество упомянутых полей обладает соответствующими тегами.
Возможен вариант осуществления способа, в котором по меньшей мере одна из упомянутых веб-страниц включает в себя определение потока операций, и это определение указывает на последовательность страниц, включая упомянутое веб-приложение, и для каждой страницы - набор идентификаторов для каждого поля ввода упомянутой страницы.
Возможен вариант осуществления способа, в котором упомянутое определение потока операций включает в себя логику определения условной последовательности страниц в рамках упомянутого веб-приложения.
Возможен вариант осуществления способа, в котором упомянутые идентификаторы включают в себя теги для упомянутых полей ввода.
Возможен вариант осуществления способа, в котором на упомянутом этапе анализа текста используют понимание естественного языка для предоставления упомянутой по меньшей мере одной части текста.
Возможен вариант осуществления способа, в котором на упомянутом этапе получения упомянутого множества тегов выполняют: получение URL веб-приложения от упомянутого электронного устройства, извлечение веб-страницы из упомянутого URL, и извлечение упомянутых тегов от упомянутой веб-страницы.
Возможен вариант осуществления способа, в котором на упомянутом этапе получения упомянутого множества тегов выполняют: получение упомянутого множества тегов от упомянутого электронного устройства.
Другим объектом настоящей технологии является машиночитаемый носитель, включающий в себя программные инструкции, выполненные с возможностью инициирования выполнения электронным устройством: получения голосового запроса через голосовой интерфейс электронного устройства; получения множества тегов, каждый из которых связан с соответствующим полем ввода пользовательского интерфейса, относящегося к приложению на упомянутом электронном устройстве; получения по меньшей мере одной части текста, связанной с соответствующим тегом, который является производным от упомянутого голосового запроса; заполнения по меньшей мере одного поля ввода упомянутого приложения с помощью соответствующей части текста, которая связана с соответствующим тегом, связанным с полем ввода.
Еще одним объектом настоящей технологии является машиночитаемый носитель, включающий в себя программные инструкции, выполненные с возможностью инициирования выполнения сервером: получения голосового запроса через голосовой интерфейс электронного устройства; получения множества тегов, каждый из которых связан с соответствующим полем ввода пользовательского интерфейса, для приложения на упомянутом электронном устройстве; перевода голосового запроса в текст; анализа текста для предоставления по меньшей мере одной части текста; установления связи по меньшей мере одной части текста с соответствующим тегом из множества тегов; и передачи электронному устройству по меньшей мере части текста с указанием соответствующего тега.
Другим объектом настоящей технологии является электронное устройство, включающее в себя компонент, работающий в сочетании с пользовательским интерфейсом приложения, и выполненное с возможностью: получения голосового запроса через голосовой интерфейс электронного устройства; получения множества тегов, каждый из которых связан с соответствующим полем ввода пользовательского интерфейса, относящегося к приложению на упомянутом электронном устройстве; получения по меньшей мере одной части текста, связанной с соответствующим тегом, который является производным от упомянутого голосового запроса; заполнения по меньшей мере одного поля ввода упомянутого приложения с помощью соответствующей части текста, которая связана с соответствующим тегом, связанным с полем ввода.
Другим объектом настоящей технологии является сервер, связанный с одним или несколькими электронными устройствами в сети передачи данных и выполненный с возможностью: получения голосового запроса через голосовой интерфейс электронного устройства; получения множества тегов, каждый из которых связан с соответствующим полем ввода пользовательского интерфейса, для приложения на упомянутом электронном устройстве; перевода голосового запроса в текст; анализа текста для предоставления по меньшей мере одной части текста; установления связи по меньшей мере одной части текста с соответствующим тегом из множества тегов; передачи электронному устройству по меньшей мере части текста с указанием соответствующего тега.
Другим объектом настоящей технологии является система, включающая в себя множество электронных устройств в соответствии с п.23, связанных с сервером по п.24 в сети передачи данных.
Технология относится к области обработки голосовых запросов пользователя для заполнения частей интерфейса в пользовательских приложениях с помощью понимания естественного языка (NLU) текста, который был распознан в голосовом запросе пользователя. Технология позволяет пользователю заполнять интерфейс приложения с помощью голоса без необходимости вручную выбирать, какую конкретно часть интерфейса пользователь хочет заполнить с помощью голоса.
Технология включает в себя создание и сопоставление тегов для частей пользовательского приложения с помощью голосового запроса пользователя на естественном языке для автоматического заполнения частей интерфейса приложения частями текста, полученными из голосового запроса пользователя на естественном языке.
В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от электронных устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
В контексте настоящего описания, если конкретно не указано иное, «электронное устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами электронных устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например выделенном сервере или множестве серверов.
В контексте настоящего описания, если конкретно не указано иное, термин «информация» включает в себя любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
В контексте настоящего описания, если конкретно не указано иное, термин «машиночитаемый носитель» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер " не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
Каждый вариант осуществления настоящей технологии включает по меньшей мере одну из вышеупомянутых целей. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.
Дополнительные и/или альтернативные характеристики и варианты осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы технологии.
Краткое описание чертежей
Далее будут описаны различные примерные варианты осуществления технологии со ссылками на соответствующие чертежи, где:
- на Фиг. 1 представлена схема системы, включающей электронное устройство для обработки голосовых запросов пользователя, устройство реализовано в соответствии с неограничивающими вариантами осуществления настоящей технологии;
- на Фиг. 2 представлен первый пример части веб-страницы, включающей в себя ряд полей ввода;
- на Фиг. 3 представлен второй пример части веб-страницы, включающей в себя ряд полей ввода;
- на Фиг. 4 представлена вторая страница веб-приложения, включающего в себя ряд полей ввода, следующая за веб-страницей, представленной на Фиг. 2;
- на Фиг. 5 представлена блок-схема, иллюстрирующая обработку, выполняемую агентом по отношению к системе, представленной на Фиг. 1; и
- на Фиг. 6 представлена блок-схема, иллюстрирующая обработку, выполняемую сервером преобразования речи в текст по отношению к системе, представленной на Фиг. 1.
Осуществление изобретения
На Фиг. 1 представлена схема системы 100. Важно иметь в виду, что система 100 является только одним из вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций компьютерной системы 100 также могут быть охвачены нижеследующим описанием.
Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобном случае представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
Система 100 включает в себя электронное устройство 102. Варианты осуществления электронного устройства 102 конкретно не ограничены, но в качестве примера электронного устройства 102 могут использоваться персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) или беспроводное электронное устройство (мобильные телефоны, смартфоны, планшеты и т.п.). Общий вариант осуществления электронного устройства 102 известен в области техники, и поэтому не будет здесь подробно описан. Достаточно сказать, что электронное устройство 102 содержит пользовательский интерфейс ввода (например, клавиатуру, мышь, сенсорную панель, сенсорный экран, микрофон и т.п.) для получения пользовательского ввода; пользовательский интерфейс вывода (например, экран, сенсорный экран, принтер и т.п.) для предоставления визуального или звукового вывода пользователю; интерфейс сетевой связи (например, модем, сетевую карту и т.п.) для двусторонней связи по сети 112 передачи данных; и процессор, соединенный с пользовательским интерфейсом ввода, пользовательским интерфейсом вывода и интерфейсом сетевой связи, который выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым командам, выполнение которых инициирует процессор выполнять различные описанные здесь процедуры.
Настоящий пример описан в терминах заполнения полей ввода, отображенных на веб-приложении, которое работает в браузере 104 на электронном устройстве 102. Как известно, веб-приложение содержит ряд HTML-страниц (язык разметки гипертекста): страница #1…страница #N, связанных друг с другом гиперссылками, которые извлекаются браузером 104 из веб-сервера 108 с помощью URL (единый указатель ресурса) каждой страницы, обычно по сети 112 (несмотря на то что в некоторых случаях страницы могут храниться локально в URL, указывающем на место локального хранения), до этапа отрисовки.
В настоящем примере по меньшей мере одна страница приложения включает в себя ряд полей ввода, два из которых показаны на странице #1: Поле Ввода #1 и Поле Ввода #2. Как обсуждалось ранее, каждое поле ввода может содержать любую форму части пользовательского интерфейса, через который пользователь может вводить информацию в приложение, например: поля ввода текста, зависимые кнопки, календарные виджеты или выпадающие меню. После того как поля ввода сформированы, пользователь обычно выбирает виджет, например кнопку 105, добавленную на страницу для того, чтобы разместить предоставленные пользователем данные на веб-сервер 108, и в ответ предоставить их на следующей странице приложения веб-сервером 108 электронному устройству 102.
Страницы #1 - #N могут содержать статистические страницы, которые были созданы автором и далее опубликованы путем передачи созданного HTML для подобных страниц на место 110 хранения, которое доступно веб-серверу 108. Альтернативно или дополнительно, отдельные страницы могут быть созданы динамически на основе комбинации шаблона макета, запроса пользователя и полученной внешней информации, как это характерно, например, для каталогов, сайтов магазинов или сайтов бронирования.
В простейшем варианте осуществления технологии поля ввода связаны с тегами, семантически указывающими на информацию, которая вводится на вебстраницу. Простой вариант такой связи тегов для части HTML веб-страницы включает в себя форму, в которую пользователь вводит свое имя и фамилию следующим образом:
Обычно теги полей ввода определяются автором приложения с помощью программного обеспечения для публикации в момент создания страницы и добавления полей ввода автором. В альтернативных вариантах осуществления настоящей технологии теги могут назначаться в какой-то момент времени после создания страницы.
На известном уровне техники при просмотре сформированной версии этого HTML в браузере пользователь с помощью электронного устройства с поддержкой голоса может выбрать поле ввода текста, обозначенное FirstName, и надиктовать свое имя; а затем выбрать поле ввода текста, обозначенное LastName, до произнесения своей фамилии, и далее кликнуть на клавишу подтверждения до перехода на следующую страницу. Альтернативно, если пользователь сохранил свою персональную информацию 114, в которой проставлены соответствующие теги, в хранилище 116, доступном электронному устройству 102, некоторые браузеры могут получить эту информацию и автоматически заполнить поля ввода с помощью тегов, соответствующих тем, которые сохранены для пользователя.
Тем не менее, как обсуждалось ранее, первый способ является неудобным для пользователей и используется редко; в то время как второй способ обладает ограниченным потенциалом использования, особенно в тех случаях, когда поля ввода требуют информацию, отличную от заранее сохраненных личных данных, например название отеля или пункт назначения, которые могут быть указаны пользователем только в голосовом запросе.
В показанном примере агент 120 предоставляется на электронном устройстве 102 либо для запуска автономного процесса, либо в виде надстройки браузера, либо как процесс операционной системы. Агент 120 получает аудиосигналы, соответствующие голосовым запросам пользователя от микрофонного компонента электронного устройства 102, и, в настоящем примере, передает их удаленному серверу 130 преобразования речи в текст через интерфейс 132 преобразования речи в текст, который предоставляется серверу 130 преобразования речи в текст на электронном устройстве 102. Примеры интерфейса 132 преобразования речи в текст, подходящие для осуществления настоящей технологии, включают в себя упомянутый выше интерфейс программирования приложений (API) Яндекс Speech Kit.
В настоящем примере сервер 130 преобразования речи в текст не только выводит текст, соответствующий аудиосигналу, полученному агентом 120 через интерфейс 132, как в настоящем интерфейсе программирования приложений Яндекс Speech Kit, но и разбивает текст на индивидуальные части, каждая из которых связана с помеченным или именованным полем ввода в приложении.
Для помощи серверу 130 преобразования речи в текст в этой процедуре сервер 130 преобразования речи в текст получает доступ к информационной странице приложения, чтобы определить метки и имена полей ввода в приложении.
Один из способов осуществления подобной процедуры включает в себя предоставление агентом 120, наряду с аудиосигналом для голосового запроса, идентификатора приложения, например URL конкретной страницы из браузера 104. В данном случае, сервер 130 преобразования речи в текст может получить копию страницы от веб-сервера 108, на котором размещена страница, и далее анализировать страницу для определения полей ввода, которые запрашивает страница. Альтернативно, агент 120 может предоставлять информацию о тегах полей ввода напрямую серверу 130 преобразования речи в текст. Агент 120 может также извлекать эту информацию либо из языка разметки гипертекста веб-страницы или, альтернативно, из объектной модели документов (DOM), созданной браузером 104 при отрисовке веб-страницы.
В простейшем примере с полями FirstName/LastName, который представлен выше, сервер 130 преобразования речи в текст обнаружит, что на странице требуются имя и фамилия, и будет стремиться обнаружить в аудиосигнале, предоставленном агентом 120, имя и фамилию.
Это достаточно просто, если при просмотре веб-страницы в браузере пользователь просто указывает свое полное имя. Тем не менее, пользователь также может просто произнести "Ввести мои данные". Далее, с помощью компонента 133 понимания естественного языка (NLU), который либо встроен в сервер 130 преобразования речи в текст, либо работает вместе с сервером 130 преобразования речи в текст, таким образом, сервер 130 преобразования речи в текст может определить, что на странице требуются учетные данные пользователя, то есть требуются имя и фамилия пользователя.
Маловероятно, что удаленный сервер 130 преобразования речи в текст, который может обслуживать запросы от огромного количества различных электронных устройств, управляемых различными пользователями, будет обладать прямым доступом к личным данным пользователя, и, в данном случае, сервер 130 преобразования речи в текст может выдать агенту 120 пару тегов
С другой стороны, если пользователь произнес имя, вероятно, свое собственное имя, например "Ларе Миккельсен", сервер 130 преобразования речи в текст может вывести текст, обладающий тегом, например, в форме "Ларе"
С помощью компонента 133 понимания естественного языка (NLU) с учетом знания о том, какие поля ввода необходимо заполнить, сервер 130 преобразования речи в текст может выполнять и более сложные задачи.
Итак, если пользователь сталкивается со страницей, показанной на Фиг. 2, которая включает в себя форму бронирования авиабилета, он может надиктовать "Забронируй мне билет в Мюнхен на 22 февраля" или любое аналогичное выражение на естественном языке. В данном случае сервер 130 преобразования речи в текст при получении страницы определяет ряд полей ввода, которые могут быть отмечены или обозначены тегами:
Далее, с помощью компонента 133 понимания естественного языка (NLU) сервер преобразования речи в текст может вывести для агента следующий обозначенный тегами текст в ответ на вышеприведенный голосовой запрос пользователя: "False"
Следует отметить, что некоторые из выводимых тегов обладают нулевым значением связанного текста, например
В случае поля
В данном случае агенту 120 придется пытаться использовать информацию 118 о местоположении, полученную, например, с GPS-ресивера (не показан), встроенного в электронное устройство 102; или просто использовать домашний адрес пользователя из его личной информации 114 для заполнения поля с отметкой
Когда различные поля заполнены, пользователь может по желанию заполнить любые из оставшихся полей или отредактировать любое из полей, которые были автоматически заполнены агентом 120, до нажатия кнопки "Забронировать".
Во втором примере, показанном на Фиг. 3, пользователь просматривает форму бронирования гостиницы, сформированную браузером 104. В данном случае пользователь может произнести "забронировать отель в Милане для моей семьи на дни, ночи с 22 марта".
Опять же, сервер 130 преобразования речи в текст при получении информации о странице определяет ряд меток для полей ввода, например следующие:
С помощью компонента 133 понимания естественного языка (NLU) сервер 130 преобразования речи в текст будет выводить следующий обозначенный тегами текст: "Милан"
В данном случае, когда сервер 130 преобразования речи в текст распознает запрос на бронирование номера для семьи пользователя, он может посылать агенту сигнал для инициирования поиска информации о семье пользователя, не используя значения по умолчанию 2 и 0 из граф
В данном случае агент 120 может работать различными способами. Например, электронные устройства, такие как электронное устройство 102, обычно хранят контактную информацию 122 пользователя, содержащую ряд записей, каждая из которых хранит контактные имена, номера телефонов, электронные адреса и так далее. Также возможно указать связь, в которой состоит каждый контакт с пользователем, например ребенок, супруг, родитель и так далее. Другие источники этой информации включают в себя любые социальные сети, в которых представлен пользователь, включая Facebook, и эта сетевая информация часто может включать в себя семантику связи контакта с пользователем, что позволяет агенту определить, например, подробности о семье пользователя для указания их в формах, которые будут заполняться.
С помощью этой информации агент 120 может определять членов семьи пользователя и, например, предоставлять значения для полей
После предоставления информации сервером 130 преобразования речи в текст и определения ее агентом 120 агент 120 может заполнять различные поля формы, позволяя пользователю нажать на кнопку "Искать", когда он будет удовлетворен качеством введенной информации.
Подводя итог, примеры одиночных страниц на Фиг. 2 и Фиг. 3. требуют от автора приложения описать поля ввода их интерфейса приложения с помощью соответствующих тегов. Когда пользователь взаимодействует с приложением путем произнесения запроса, например "Забронировать отель Ритц на 2 ночи с 1 декабря", приложение (вероятно, через агента 120) передает аудиосигнал, содержащий голосовой запрос, серверу 130 преобразования речи в текст. После получения запроса и информации о тегах для страницы сервер 130 преобразования речи в текст переводит речь в части текста и связывает части текста с соответствующими тегами. Например, "Отель Ритц" связан с тегом
Следует отметить, что, несмотря на то, что вышеприведенные примеры были описаны в терминах веб-приложения, технология может быть применена и к машинному коду, автономному или клиент-серверному приложению. В данном случае вместо последовательности веб-страниц приложение может отображать последовательность экранов, и, следовательно, семантическая информация для соответствующих полей ввода таких экранов должна быть доступна для любого агента, ответственного за автоматическое заполнение этих полей ввода в ответ на голосовой запрос пользователя.
Технология также может быть осуществлена в приложении, т.е. программном приложении для мобильного телефона, работающего, например, на операционных системах Apple™ iOS или Google™ Android OS.
Альтернативно, технология может быть осуществлена в сочетании с программным обеспечением общего назначения, включая почтовый клиент, например Microsoft™ Outlook, текстовый процессор, например Microsoft™ Word, приложение для электронных таблиц, например Microsoft™ Excel, в которых автоматическое заполнение полей может быть полезным, например для электронных сообщений, документов или таблиц. В данном случае агент, например агент 120, может определять теги, связанные с полями ввода на странице, отображаемой приложением общего назначения, например, путем извлечения информации через API приложения, и далее заполнять поля частями текста, извлеченного из голосового запроса с помощью API приложения, как было описано выше.
В любом случае функциональность агента может быть внедрена в приложение или оставаться отдельным компонентом или компонентом операционной системы.
Аналогично, несмотря на то, что сервер 130 преобразования речи в текст был описан как одиночный удаленный сервер, обслуживающий множество клиентских устройств, таких как электронное устройство 102, сервер 130 преобразования речи в текст может быть выполнен и как компонент электронного устройства 102.
Настоящая технология также может применяться для заполнения полей ввода в приложении, которое распространяется на целый ряд связанных страниц. В данном случае автор приложения определяет поток операций, указывая на последовательность страниц, содержащих приложение, и поля ввода, которые возникают на этих страницах. В примере, представленном на Фиг. 1, это определение 111 потока операций хранится в содержимом первой страницы, например страницы #1 приложения, в форме, которую может определить либо сервер 130 преобразования речи в текст, либо, в некоторых случаях, агент 120, если агент передает определение 111 потока операций серверу 130 преобразования речи в текст. Так, например, определение 111 потока операций может быть включено как фрагмент XML (расширенного языка разметки), как необрабатываемая часть заголовка HTML вебстраницы. Также как и определение 111 потока операций, каждое из этих полей ввода обозначено тегами в языке разметки гипертекста (HTML) страницы, как описано выше.
Определение 111 потока операций может включать в себя простой список страниц, а для каждой страницы - соответствующий набор идентификаторов для полей ввода, содержащихся на странице. Таким образом, эти наборы идентификаторов могут просто включать в себя теги для соответствующих полей ввода; или наборы идентификаторов могут включать в себя и теги, и информацию о полях ввода, например, в представленной выше форме FirstName/LastName. Если необходимо, определение 111 потока операций также может включать в себя логику, указывающую на различные последовательности страниц в приложении, определенные в соответствии с вводом пользователя. Грамматика XML создана для простого добавления в нее подобной условной логики.
Как и ранее, агент 120 получает аудиосигнал для голосового запроса и передает его через интерфейс 132 преобразования речи в текст вместе с идентификатором приложения, т.е. URL первой страницы, серверу 130 преобразования речи в текст.
Сервер 130 преобразования речи в текст первоначально анализирует голосовой запрос и выполняет базовое преобразование речи в текст для получения текстового вывода.
Сервер 130 преобразования речи в текст далее нарезает текст на части и, в сочетании с компонентом 133 понимания естественного языка, передает части текста по мере необходимости, чтобы сделать их максимально совместимыми с полями ввода, например переводит запрос "проживание на 3 ночи" в даты начала и конца, как представлено в примере выше, до этапа связи частей текста с соответствующими тегами.
Если определение 111 потока операций в приложении доступно, сервер 130 преобразования речи в текст может вывести части текста, которые наиболее совпадают с полями ввода, в поток операций по всему ряду страниц приложения. Следует отметить, что просмотр полей ввода, которые могут потребоваться с последующих страниц, особенно полезен при работе с голосовым запросом, который был предоставлен в момент просмотра пользователем первой страницы приложения.
После того как обозначенные тегами значения для полей ввода были определены сервером 130 преобразования речи в текст, они выводятся на электронное устройство 102 либо постранично, либо в виде набора страниц, связанных с приложением.
После получения обозначенных тегами значений и возможного получения какой-либо дополнительной информации, которая доступна электронному устройству 102, из хранилища 116, как описано выше, происходит заполнение полей ввода приложения.
Как и в рассмотренном примере с многостраничным приложением, начинающимся в виде формы, показанной на Фиг. 2, если пользователь использует опцию выбора города, он переходит на вторую страницу, как показано на Фиг. 4, в отличие от случая, когда ему необходим простой авиабилет в одну сторону или билет в оба конца.
Определение 111 потока операций, которое может позволить пользователю взаимодействовать с рядом страниц приложения, может отвечать на запрос пользователя "забронируй мне авиабилет из Лондона в Нью-Йорк через Париж на 22 марта".
Когда определение 111 потока операций указывает на поля, доступные на первой странице приложения, которые показаны на Фиг. 2, и на поля, которые доступны на второй странице приложения, показанные на Фиг. 4, сервер 130 преобразования речи в текст может выводить агенту 120 следующие поля, обозначенные тегами, на первой странице:
При получении этой информации агент 120, на этапе заполнения с помощью полученной информации, далее инициирует приложение переходить к странице, показанной на Фиг. 4.
Следует отметить, что предоставление информации о начальном местоположении и датах вылета на первой странице является избыточным, но это требует меньшего интеллекта (и меньшего кода) сервера 130 преобразования речи в текст, чем определение того, что эти поля ввода не надо заполнять.
Сервер 130 преобразования речи в текст может выводить агенту 120 следующие обозначенные тегами поля для второй страницы приложения либо в ответ на второй запрос от агента 120; или в ответ на исходный запрос и с разметкой соответствующим образом из обозначенной тегами информации с первой страницы:
"Лондон"
Следует отметить, что в данном примере с помощью определения 111 потока операций агент 120 может инициировать автоматический переход приложения от одной страницы к другой до нажатия пользователем на кнопку "Найти" на второй странице.
Следует отметить, что текст, который был получен из голосового запроса, например "Лондон" и "Нью-Йорк", может быть использован для полей ввода как на первой, так и на второй страницах приложения. А также текст типа "Париж" был использован более чем для одного поля ввода на одной странице приложения.
Если определение 111 потока операций в приложении является достаточно масштабным, то возможно, что агент 120, которому была передана дальнейшая обозначенная тегами информация для последующих страниц сервером 130 преобразования речи в текст, заполняет с помощью дополнительной информации последующие страницы. Например, если пользователь щелкнул на кнопку "забронировать" на предложенный авиабилет на странице (не показано), следующей за страницей, которая показана на Фиг. 4, агент 120 может далее быть способен заполнить с помощью имени пользователя, адреса и информации о кредитной карте следующую страницу (не показана). Альтернативно, если пользователь перешел на подобную страницу, он может просто произнести "внести мои данные", и сервер 130 преобразования речи в текст, в ответ на голосовой запрос и URL страницы, выводит теги полей агенту 120 для извлечения агентом информации об этих тегах из хранилища 116, чтобы заполнить соответствующие поля ввода.
Итак, со ссылкой на Фиг. 5 и Фиг. 6, которые суммируют описанные выше варианты осуществления настоящей технологии, агент 120 получает голосовой запрос, этап 150. Либо в ответ на голосовой запрос, либо после запуска приложения (загрузки и отрисовки - в случае веб-приложения) агент 120 либо получает необходимые теги от приложения или от страниц приложения или из определения потока операций, которое включено в приложение, или же агент 120 получает идентификатор приложения, т.е. URL, на этапе 152. Агент 120 далее получает части текста, извлеченные из голосового запроса, и связанные с тегами приложения на этапе 154.
В вариантах осуществления технологии, в которых этап 154 выполняется в основном на удаленном сервере 130, этап 154 включает в себя предоставление серверу 130 агентом 120 голосового запроса и либо тегов приложения, либо определения 111 потока операций, либо идентификатора приложения.
Когда сервер 130 получает голосовой запрос и голосовые теги на этапе 160 (Фиг. 6), он переводит аудиосигнал в текст на этапе 162. Как было описано выше, теги могут либо быть предоставлены агентом 120 серверу 130 напрямую, или, в случае наличия URL, сервер 130 может получать теги из страниц приложения, которые хранятся на веб-сервере, или из определения 111 потока операций, доступного на веб-сервере. Компонент 133 понимания естественного языка анализирует текст и, возможно, с помощью знаний о необходимых тегах приложения предоставляет части текста, полученные из голосового запроса, на этапе 164. Части текста далее связываются с тегами (или наоборот) и предоставляются агенту 120 на этапе 166.
Когда агент 120 получает обозначенный тегами текст, он может попытаться предоставить части текста для тегов с нулевым значением текста, используя семантическую информацию, доступную агенту 120, на этапе 156 (Фиг. 5).
Агент 120 далее заполняет любые поля ввода, для которых имеется обозначенная тегами информация, на этапе 158, и, если определение 111 потока операций доступно и если это необходимо и возможно, агент 120 инициирует переход приложения к следующей странице потока операций на этапе 159. (В противном случае, пользователь может выбрать виджет, инициирующий переход приложения к следующей странице.) Если части текста, полученные из голосового запроса, доступны для полей ввода на следующих страницах, они используются для заполнения полей ввода на следующей странице, и так до тех пор, пока определение потока операций не будет завершено.
В примере, показанном на Фиг. 1 и описанном выше, компонент 133 понимания естественного языка описан как автономная единица, отвечающая на голосовой запрос и поля ввода информации заявителя приложения. В более сложных вариантах осуществления технологии компонент 133 понимания естественного языка может использовать мета-информацию, полученную из запроса или из других источников для предоставления информации для полей ввода информации. Таким образом, например, в ответ на запрос пользователя "Забронировать авиабилет из Парижа в Дублин", компонент 133 понимания естественного языка (NLU) может получить код аэропорта Шарля де Голля из публичного списка кодов аэропортов Международной Ассоциации Воздушного Транспорта (IATA), чтобы ввести код в поле ввода, обозначенное тегом
В одном таком варианте осуществления технологии при работе с почтовым клиентом пользователь вводит голосовой запрос "послать письмо Конору с картой места сегодняшней встречи" во время просмотра либо домашней страницы почтового клиента, либо пустого почтового сообщения. В данном случае, когда применяется подобный агент, агент 120 предоставляет серверу 130 преобразования речи в текст голосовой запрос и имена полей для электронного сообщения, например:
Сервер 130 преобразования речи в текст далее может выводить следующие связанные с тегами поля:
В данном случае сервер 130 преобразования речи в текст определил из понимания естественного языка "место проведения сегодняшней встречи", что необходима ссылка на изображения карты места проведения встречи. Можно предположить, что полезная карта может быть показана относительно места, с которого был предоставлен голосовой запрос с электронного устройства 102. Определено это благодаря TCP/IP-адресу электронного устройства 102, и, таким образом, ссылка на изображение карты, относящейся к месту, которое соответствует TCP/IP-адресу, может быть предоставлена либо для добавления изображения карты в виде вложения в электронное письмо, либо в виде ссылки, которая может быть добавлена в текст электронного письма.
В других вариантах осуществления настоящей технологии пользователь электронного устройства 102 может сделать информацию доступной серверу 130 преобразования речи в текст для использования ее в создании обозначенного тегами текста, переданного агенту 120, для обеспечения завершения заполнения полей ввода в электронном устройстве 102. Эта информация может включать в себя конкретную информацию, включающую в себя, среди прочего, информацию о типе, например, личной информации 114, информации 118 о месте, контактной информации 122, а также избранные страницы (закладки) 124 пользователя и историю 126 браузера.
Подобный способ включает в себя аутентификацию пользователя для сервера 130 перевода речи в текст с помощью учетных данных для единого входа. Примеры учетных данных для единого входа в систему хорошо известны в области техники и включают в себя, среди прочего, Яндекс. Паспорт™, предоставляемый поисковой системой Яндекс™, единый вход в систему Google+™, Facebook™ и так далее.
В некоторых вариантах осуществления настоящей технологии сервер 130 преобразования речи в текст может получить эту конкретную пользовательскую информацию от сервера (не показан), ответственного за обращение с учетными данными для единого входа. В других вариантах осуществления настоящей технологии каждый из ряда сервисов может быть связан с отдельными учетными данными, и в подобных вариантах осуществления настоящей технологии сервер 130 преобразования речи в текст может получать конкретную пользовательскую информацию от сервера агрегации (не показан), ответственного за агрегацию конкретной пользовательской информации, или же сервер 130 преобразования речи в текст может действовать как сервер агрегации.
В любом случае, если такая конкретная пользовательская информация доступна серверу 130 преобразования речи в текст, сервер 130 может выполнять роль описанного выше агента 120 в этапе 156 в предоставлении конкретного пользовательского текста с обозначенными тегами, например семантической конкретной информации о пользователе, например
Вышеприведенные примеры были описаны в терминах агента 120, работающего с данным приложением, как в случае, показанном на Фиг. 1, веб-приложением, работающим в браузере 102, или с любым другим типом приложения общего назначения.
Тем не менее, другие варианты осуществления настоящей технологии могут работать на более высоком уровне персональной помощи, начиная либо с пустой или домашней страницы браузера, либо даже с уровня операционной системы.
Таким образом, если устройство просматривает домашнюю страницу операционной системы или домашнюю страницу браузера, пользователь, который ввел голосовой запрос "забронировать мне авиабилет в Берлин", агент 120 может передавать аудиосигнал серверу 130 преобразования речи в текст. Далее, используя компонент 133 понимания естественного языка (NLU) и видя, что конкретное приложение не определило запрос от агента 120, сервер 130 преобразования речи в текста может выводить простую текстовую строку "забронировать авиабилет" агенту 120.
Агент 120 далее может использовать информацию, доступную в хранилище 116 для определения того, какое приложение может быть использовано для выполнения голосового запроса "забронировать авиабилет". Например, избранные веб-страницы (закладки) 124 пользователя и история 126 браузера обычно доступны приложениям, например агенту 120, работающему на электронном устройстве 102. Они могут быть использованы для определения авиалинии или приложения для бронирования авиабилетов, которые обычно используются пользователем. Агент 120 далее может, например, запустить в браузере URL авиалинии или приложения для бронирования авиабилетов. После получения URL веб-страницы и отрисовки ее браузером 104 агент 120 может переходить, как ранее, например, к вторичной передаче серверу 130 преобразования речи в текст аудиосигнала для первоначального голосового запроса одновременно с идентификатором приложения, например текущим URL. Сервер 130 преобразования речи в текст теперь может выводить обозначенные тегами поля ввода для заполнения полей ввода на веб-странице и, возможно, на веб-страницах, как и раньше, и для этого все еще требуется единственный голосовой запрос "Забронировать мне авиабилет в Берлин".
Представленные выше примеры демонстрируют использование настоящей технологии для бронирования авиабилетов и отелей, а также для отправки электронных писем. Тем не менее, следует отметить, что возможны и другие варианты использования, например заполнение учетных данных для покупки в интернет-магазинах или для доставки товаров и услуг, например доставки пиццы.
В настоящем описании были предложены примеры используемой грамматики, но, тем не менее, очевидно, что любые эквиваленты подобной грамматики могут быть использованы в альтернативных вариантах осуществления данной технологии.
Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптического соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к вводу данных в электронное устройство и обработке голосового запроса, введенного в электронное устройство. Технический результат - обеспечение обработки голосовых запросов пользователя для заполнения частей интерфейса в пользовательских приложениях с помощью понимания естественного языка (NLU) текста, который был распознан в голосовом запросе пользователя, без необходимости вручную выбирать, какую конкретно часть интерфейса пользователь хочет заполнить с помощью голоса. Устройство для обработки голосового запроса выполнено с возможностью получения по меньшей мере одной части текста, связанной с соответствующим тегом, полученным из голосового запроса путем перевода голосового запроса в текст, анализа текста для предоставления по меньшей мере одной части текста и установления связи по меньшей мере одной части текста с соответствующим тегом из множества тегов. По меньшей мере одно поле ввода приложения заполняется в соответствии с частью текста, связанной с соответствующим тегом, соответствующим полю ввода. 7 н. и 18 з.п. ф-лы, 6 ил.
Блок разрешения диалога голосового браузера для системы связи
Последовательный мультимодальный ввод