Способ ввода данных в электронное устройство, способ обработки голосового запроса, машиночитаемый носитель (варианты), электронное устройство, сервер и система

Иллюстрации

Показать все

Изобретение относится к вводу данных в электронное устройство и обработке голосового запроса, введенного в электронное устройство. Технический результат - обеспечение обработки голосовых запросов пользователя для заполнения частей интерфейса в пользовательских приложениях с помощью понимания естественного языка (NLU) текста, который был распознан в голосовом запросе пользователя, без необходимости вручную выбирать, какую конкретно часть интерфейса пользователь хочет заполнить с помощью голоса. Устройство для обработки голосового запроса выполнено с возможностью получения по меньшей мере одной части текста, связанной с соответствующим тегом, полученным из голосового запроса путем перевода голосового запроса в текст, анализа текста для предоставления по меньшей мере одной части текста и установления связи по меньшей мере одной части текста с соответствующим тегом из множества тегов. По меньшей мере одно поле ввода приложения заполняется в соответствии с частью текста, связанной с соответствующим тегом, соответствующим полю ввода. 7 н. и 18 з.п. ф-лы, 6 ил.

Реферат

Область техники, к которой относится изобретение

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

Уровень техники

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

Распознавание речи считается серьезной нагрузкой на процессор, и даже в современных смартфонах или планшетах, как правило, используется удаленный сервер, запускающий систему для распознавания речи. Таким образом, провайдеры, такие как, например, 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 веб-страницы включает в себя форму, в которую пользователь вводит свое имя и фамилию следующим образом:

<form action="demo_form.asp">

First name:<input type-'text" name="FirstName" value="Mickey"><br>

Last name:<input type-'text" name-“LastName" value="Mouse"><br>

<input type=”submit" value="Submit">

</form>

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

На известном уровне техники при просмотре сформированной версии этого 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 пару тегов <FirstName>; <LastName> с нулевым значением текста, тем самым побуждая агента 120 извлечь имя и фамилию пользователя из сохраненной личной информации 114 и соответственно заполнить поля ввода.

С другой стороны, если пользователь произнес имя, вероятно, свое собственное имя, например "Ларе Миккельсен", сервер 130 преобразования речи в текст может вывести текст, обладающий тегом, например, в форме "Ларе" <FirstName>; "Миккельсен" <LastName>, позволяя агенту 120 напрямую заполнить поля ввода странице.

С помощью компонента 133 понимания естественного языка (NLU) с учетом знания о том, какие поля ввода необходимо заполнить, сервер 130 преобразования речи в текст может выполнять и более сложные задачи.

Итак, если пользователь сталкивается со страницей, показанной на Фиг. 2, которая включает в себя форму бронирования авиабилета, он может надиктовать "Забронируй мне билет в Мюнхен на 22 февраля" или любое аналогичное выражение на естественном языке. В данном случае сервер 130 преобразования речи в текст при получении страницы определяет ряд полей ввода, которые могут быть отмечены или обозначены тегами: <Return> <One Way> <StartLocation> <DestinationLocation> <DepartureDay> <DepartureMonth> <ReturnDay> <ReturnMonth> <FareType> <DateFlexibility> <NoAdults> <NoChildren> <No lnfants> <PromoCode>. Дата по умолчанию и количество взрослых, детей и младенцев, показанное на Фиг. 2, также могут быть получены сервером 130 преобразования речи в текст. (Опция выбора города также может быть отмечена тегом, и пример использования этого тега будет описан далее.)

Далее, с помощью компонента 133 понимания естественного языка (NLU) сервер преобразования речи в текст может вывести для агента следующий обозначенный тегами текст в ответ на вышеприведенный голосовой запрос пользователя: "False" <Return>; "True" One Way>; "Dublin" <StartLocation>; "Munich" <DestinationLocation>; "22" <DepartureDay>; "February" <DepartureMonth>; <ReturnDay>; <ReturnMonth>; <FareType>; <DateFlexibility>; "1" <NoAdults>; "0" <NoChildren>; "0" <No lnfants>; <PromoCode>.

Следует отметить, что некоторые из выводимых тегов обладают нулевым значением связанного текста, например <PromoCode>. Если агент 120 ищет сохраненную информацию для пользователя в хранилище 116, он, вероятно, не найдет никакой полезной информации с тегом <PromoCode>, и это поле останется пустым.

В случае поля <StartLocation> сервером 130 преобразования речи в текст было предоставлено значение по умолчанию "Дублин" с оригинальной страницы. Если же это поле на оригинальной веб-странице было пустым или если сервер 130 преобразования речи в текст был запрограммирован на предоставление нулевого значения в данном поле, т.е. оставлять данное поле пустым, если информация по умолчанию была доступна с оригинальной веб-страницы и не указана в вышеупомянутом голосовом запросе, сервер 130 преобразования речи в текст может выводить тег с нулевым значением.

В данном случае агенту 120 придется пытаться использовать информацию 118 о местоположении, полученную, например, с GPS-ресивера (не показан), встроенного в электронное устройство 102; или просто использовать домашний адрес пользователя из его личной информации 114 для заполнения поля с отметкой <StartLocation>.

Когда различные поля заполнены, пользователь может по желанию заполнить любые из оставшихся полей или отредактировать любое из полей, которые были автоматически заполнены агентом 120, до нажатия кнопки "Забронировать".

Во втором примере, показанном на Фиг. 3, пользователь просматривает форму бронирования гостиницы, сформированную браузером 104. В данном случае пользователь может произнести "забронировать отель в Милане для моей семьи на дни, ночи с 22 марта".

Опять же, сервер 130 преобразования речи в текст при получении информации о странице определяет ряд меток для полей ввода, например следующие: <Destination>; <ChecklnDay>; <ChecklnMonth>; <CheckOutDay>; <CheckOutMonth>; <NoRooms>; <NoAdults>; <NoChildren>.

С помощью компонента 133 понимания естественного языка (NLU) сервер 130 преобразования речи в текст будет выводить следующий обозначенный тегами текст: "Милан" <Destination>; "22" <ChecklnDay>; "Март" <ChecklnMonth>; "25" <CheckOutDay>; "Март" <CheckOutMonth>; "1" <NoRooms>; <NoAdults>; <NoChildren>.

В данном случае, когда сервер 130 преобразования речи в текст распознает запрос на бронирование номера для семьи пользователя, он может посылать агенту сигнал для инициирования поиска информации о семье пользователя, не используя значения по умолчанию 2 и 0 из граф <NoAdults> и <NoChildren>, тем самым вынуждая агента 120 искать эту информацию в хранилище 116.

В данном случае агент 120 может работать различными способами. Например, электронные устройства, такие как электронное устройство 102, обычно хранят контактную информацию 122 пользователя, содержащую ряд записей, каждая из которых хранит контактные имена, номера телефонов, электронные адреса и так далее. Также возможно указать связь, в которой состоит каждый контакт с пользователем, например ребенок, супруг, родитель и так далее. Другие источники этой информации включают в себя любые социальные сети, в которых представлен пользователь, включая Facebook, и эта сетевая информация часто может включать в себя семантику связи контакта с пользователем, что позволяет агенту определить, например, подробности о семь