Область техники, к которой относится изобретение
Настоящее изобретение относится к виртуальным помощникам, а более конкретно, к механизмам улучшения интерпретации и обработки команд, подаваемых такому помощнику.
Уровень техники
Современные электронные устройства могут получить доступ к большому, растущему и разнообразному количеству функций, услуг и информации как через Интернет, так и из других источников. Функциональные возможности таких устройств быстро увеличиваются, так как на многих бытовых устройствах, смартфонах, планшетных компьютерах и т.п. можно запускать программные приложения для выполнения различных задач и предоставления различных типов информации. Часто каждое приложение, функция, веб-сайт или особенность имеет свой собственный пользовательский интерфейс и свои собственные операционные парадигмы, многие из которых могут быть трудными для обучения или непреодолимыми для пользователей. Кроме того, многие пользователи могут испытывать затруднения даже в случае, когда обнаруживают, что функциональные возможности и/или информация доступны на их электронных устройствах или на различных веб-сайтах; таким образом, такие пользователи могут становиться недовольными или подавленными, или просто не смогут эффективно использовать ресурсы, доступные для них.
В частности, начинающий пользователь или лица, которые являются умственно отсталыми или неполноценными в некоторой степени и/или являются пожилыми, занятыми, расстроенными и/или управляют автомобилем, могут иметь затруднения, связанные с эффективным сопряжением с их электронными устройствами и/или с эффективным использованием он-лайн услуг. Такие пользователи с высокой степенью вероятности будут испытывать затруднения с большим количеством разнообразных и несовместимых функций, приложений и веб-сайтов, которые могут быть доступны для их использования.
Соответственно, существующие системы являются часто сложными для использования и навигации и часто предоставляют пользователям несовместимые и непреодолимые интерфейсы, которые часто мешают пользователям эффективно использовать технологии.
Интеллектуальный автоматический помощник, который также упоминается здесь как виртуальный помощник, позволяет обеспечить улучшенный интерфейс между человеком и компьютером. Такой помощник, который можно реализовать так, как описано в родственной полноценной заявке США порядковый номер 12/987982, озаглавленной "Intelligent Automated Assistant", поданной 10 января 2011 года, полное раскрытие которой включено здесь посредством ссылки, дает возможность пользователям взаимодействовать с устройством или системой, используя естественный язык в устной и/или текстовой формах. Такой помощник интерпретирует вводы пользователя, выполняет намерения пользователя в задачах и параметрах к этим задачам, исполняет услуги для поддержки этих задач и делает вывод, который понятен пользователю.
Виртуальный помощник может обратиться к любому количеству источников информации для обработки ввода пользователя, включающего в себя, например, базы знаний, модели и/или данные. Во многих случаях ввода пользователя без посторонней помощи недостаточно для того, чтобы ясно определить намерение пользователя и задачу, которую необходимо выполнить. Это может происходить из-за шума во входном потоке, индивидуальных различий среди пользователей и/или свойственной неоднозначности естественного языка. Например, пользователь приложения обмена текстовыми сообщениями может по телефону вызвать виртуального помощника и произнести команду "call her" ("вызвать ее"). Хотя такая команда представляет собой вполне удовлетворительный английский язык, она не является точным, исполняемым высказыванием, поскольку существует много интерпретаций и возможных решений для этого запроса. Таким образом, без дополнительной информации виртуальный помощник не сможет корректно интерпретировать и обработать такой ввод. Неоднозначность такого типа может привести к ошибкам, неправильному выполнению действий и/или чрезмерному обременению пользователя запросами для разъяснения ввода.
Сущность изобретения
Согласно различным вариантам осуществления настоящего изобретения, виртуальный помощник использует контекстную информацию (которая также называется здесь как "контекст") для дополнения естественного языка или жестикуляционного ввода от пользователя. Это помогает выяснить намерение пользователя и уменьшить количество интерпретаций возможных вариантов ввода пользователя и уменьшает необходимость для пользователя обеспечивать ввод с излишними разъяснениями. Контекст может включать в себя любую доступную информацию, которую может использовать помощник для дополнения явного ввода пользователя с целью ограничения проблемы обработки информации и/или персонализации результатов. Например, если ввод, поступивший от пользователя, включает в себя местоимение (такое как "her" ("ее") в команде "call her" ("вызвать ее") виртуальный помощник может использовать контекст для того, чтобы сделать вывод относительно объекта ссылки, например для установления идентичности личности, которую будут вызывать, и/или телефонного номера для использования. Другие применения контекста описаны ниже.
Согласно различным вариантам осуществления настоящего изобретения любой из ряда механизмов можно реализовать с целью получения и применения контекстуальной информации для выполнения вычислений в виртуальном помощнике, реализованном на электронном устройстве. В различных вариантах осуществления виртуальный помощник представляет собой интеллектуальный автоматический помощник, который описан в полноценной заявке на патент США порядковый номер 12/987982, озаглавленной "Intelligent Automated Assistant", поданной 10 января 2011 года, полное раскрытие которой включено здесь посредством ссылки. Такой помощник входит в контакт с пользователем в обычной разговорной манере с использованием диалога на естественном языке и вызывает внешние услуги, когда это целесообразно, для получения информации или выполнения различных действий. Согласно технологиям, которые описаны здесь, контекстуальная информация используется в таком помощнике, например, для уменьшения неоднозначности при выполнении функций обработки информации, таких как распознавание речи, обработка естественного языка, обработка потока задач и выработка диалога.
Согласно различным вариантам осуществления настоящего изобретения виртуальный помощник можно сконфигурировать, сконструировать и/или выполнить с возможностью использования контекста для выполнения разнообразных типов операций, функциональных возможностей, и/или особенностей и/или для объединения множества особенностей, операций и приложений электронного устройства, на котором он установлен. В некоторых вариантах осуществления виртуальный помощник настоящего изобретения может использовать контекст при выполнении любого или всех из этапов, на которых: активно добиваются ввода от пользователя, интерпретируют намерения пользователя, устраняют возможность различного толкования среди конкурентных интерпретаций, запрашивают и принимают при необходимости поясняющую информацию и/или выполняют (или инициируют) действия, основанные на распознанном намерении.
Действия можно выполнить, например, с помощью активизации и/или сопряжения с любыми приложениями или услугами, которые могут быть доступны на электронном устройстве, а также услугами, которые доступны по электронной сети, такой как Интернет. В различных вариантах осуществления такую активизацию внешних услуг можно выполнить посредством интерфейса прикладного программирования (API) или с помощью любого другого подходящего механизма. Таким образом, виртуальный помощник, реализованный согласно различным вариантам осуществления настоящего изобретения, можно унифицировать, упростить и усовершенствовать впечатление пользователя по отношению к многочисленным различным приложениям и функциям электронного устройства и по отношению к услугам, которые могут быть доступны по Интернет. Таким образом, можно снизить нагрузку на пользователя, связанную с обучением того, какие функциональные возможности могут быть доступны на устройстве и на веб-подсоединенных услугах, как взаимодействовать с такими услугами для получения того, что он или она хочет, и как интерпретировать вывод, принятый из таких услуг; предпочтительно, чтобы помощник настоящего изобретения мог действовать как посредник между пользователем и такими разнообразными услугами.
Помимо этого, в различных вариантах осуществления виртуальный помощник настоящего изобретения предусматривает разговорный интерфейс, который пользователь может найти более интуитивным и менее обременительным, чем традиционный графический пользовательский интерфейс. Пользователь может входить в контакт в форме разговорного диалога с помощником, используя любое количество доступных механизмов ввода и вывода, таких как, например, речь, графический и пользовательский интерфейсы (кнопки и ссылки), ввод текста и т.п. Систему можно реализовать с использованием любого количества различных платформ, таких как устройства API, веб, электронную почту и т.п. или любой их комбинации. Запросы на дополнительный ввод можно предоставить пользователю в контексте такого разговора. Можно привлекать кратковременную и долговременную память для того, чтобы ввод пользователя можно было интерпретировать в виде заданных предыдущих событий с правильным контекстом и связи в пределах заданного сеанса, а также историческая информация и информация о профиле пользователя.
Помимо этого, в различных вариантах осуществления, контекстная информация, полученная от взаимодействия пользователя с особенностью, операцией или приложением на устройстве, можно использовать для ускорения работы других особенностей, операций или приложений на устройстве или на других устройствах. Например, виртуальный помощник может использовать контекст телефонного вызова (такого как человек, который звонил) для ускорения инициирования текстового сообщения (например, для определения того, что текстовое сообщение следует отправить тому же самому человеку без однозначно точного определения пользователем отправителя текстового сообщения). Виртуальный помощник настоящего изобретения может, таким образом, интерпретировать инструкции, такие как "отправить ему текстовое сообщение", в котором "ему" интерпретируется, согласно контекстной информации, полученной из текущего телефонного вызова, и/или из любой особенности, операции или приложения на устройстве. В различных вариантах осуществления виртуальный помощник учитывает различные типы доступных контекстных данных для того, чтобы определить, какой контакт из адресной книги использовать, какие данные о контакте использовать, какой телефонный номер использовать для контакта и т.п. с тем, чтобы пользователю не нужно было вручную повторно точно определять такую информацию.
Источники контекстуальной информации включают в себя, например, и без ограничения: текущее состояние устройства, которое используется в качестве интерфейса в помощнике, такое как текущее время, местоположение, приложение или объект данных; персональные данные, такие как адресная книга пользователя, календарь и история использования приложений; и состояние диалога между пользователем и виртуальным помощником, такие как недавно упомянутые люди и/или места.
Контекст можно применить во множестве вычислений и заключений при работе виртуального помощника. Например, контекст можно использовать для снижения неопределенности или в других случаях для ограничения количества решений, когда обрабатывается ввод пользователя. Таким образом, контекст можно использовать для ограничения решений во время различных этапов обработки, включающий в себя, например, и без ограничения:
- Распознавание речи - принимают голосовой ввод и вырабатывают интерпретации возможных вариантов в виде текста, например, "call her", "collar" и "call Herb". Контекст можно использовать для ограничения того, какие слова и фразы рассматриваются модулем распознания речи, как они ранжируются и какие принимают как превышающие порог рассмотрения. Например, адресная книга пользователя может добавлять имена людей в другую языковую общую модель речи для того, чтобы эти имена можно было распознать и задать приоритет.
- Обработка естественного языка (NLP) - производят анализ текста и ассоциируют слова, синтаксическими и сематическими ролями, например, определяют, что ввод пользователя касается телефонного вызова человеку, на которого ссылается местоимение "ее", и находят специфическое представление данных для этого человека. Например, контекст приложения обмена текстовых сообщений позволяет ограничить интерпретацию "her" до значения "человек, с которым я веду диалог в виде текста".
- Обработка потока задач - идентифицирую задачу пользователя, этапы задачи и параметры задачи, которые используются для того, чтобы помочь с задачей, например, какой телефонный номер использовать для человека, на который ссылаются как "her". К тому же, контекст приложения обмена текстовыми сообщениями может ограничить интерпретацию телефонного номера для того, чтобы показать, что система должна использовать номер, используемый в настоящее время или недавно для диалога на основе обмена текстовыми сообщениями.
- Выработка диалога - вырабатывают ответные действия помощника в качестве части диалога с пользователем относительно своей задачи. Например, для того, чтобы перефразировать намерения пользователя с помощью ответа "OK, I'll call Rebecca on her mobile…" ("Хорошо, я перезвоню Ребеке на ее телефон…". Уровень наполнения словами и неформальный тон представляют собой выбор, которым можно управлять с помощью контекстуальной информации.
В различных вариантах осуществления виртуальный помощник настоящего изобретения может управлять различными особенностями и операциями электронного устройства. Например, виртуальный помощник может вызывать услуги, которые взаимодействуют с функциональными возможностями и приложениями, выполняемыми на устройстве посредством API или других средств, для выполнения функций и операций, которые можно, с другой стороны, инициировать с использованием традиционного пользовательского интерфейса, установленного на устройстве. Такие функции операции могут включать в себя, например, установка тревожной сигнализации, выполнение телефонного вызова, отправка текстового сообщения или сообщения электронной почты, добавление события в календарь и т.п. Такие функции и операции можно выполнить в качестве дополнительных функций в контексте разговорного диалога между пользователем и помощником. Такие функции операции может точно определить пользователь в контексте такого диалога или их можно автоматически выполнить на основании контекста диалога. Специалисты в данной области техники могут распознать, что помощник может таким образом использоваться в качестве механизма управления для инициирования и управления различными операциями на электронном устройстве, которые можно использовать в качестве альтернативы традиционным механизмам, таким как кнопки или графические пользовательские интерфейсы. Как описано здесь, контекстуальную информацию можно использовать для информирования и улучшения такого использования виртуального помощника в качестве механизма управления.
Краткое описание чертежей
Сопроводительные чертежи иллюстрируют несколько вариантов осуществления настоящего изобретения и вместе с описанием служат для объяснения принципов настоящего изобретения, согласно вариантам осуществления. Специалисты в данной области техники могут распознать, что конкретные варианты осуществления, изображенные на чертежах, являются только образцовыми и не предназначены для ограничения объема настоящего изобретения. На чертежах:
фиг.1 - блок-схема, изображающая виртуального помощника и некоторые примеры источников контекста, которые могут оказывать влияние на его работу, согласно одному варианту осуществления;
фиг.2 - схема последовательности операций, изображающая способ использования контекста на различных этапах обработки в виртуальном помощнике, согласно одному варианту осуществления;
фиг.3 - схема последовательности операций, изображающая способ использования контекста при извлечении и интерпретации речи, согласно одному варианту осуществления;
фиг.4 - схема последовательности операций, изображающая способ использования контекста при обработке естественного языка, согласно одному варианту осуществления;
фиг.5 - схема последовательности операций, изображающая способ использования контекста при обработке потока задач, согласно одному варианту осуществления;
фиг.6 - блок-схема, изображающая пример источников контекста, распределенных между клиентом и сервером, согласно одному варианту осуществления;
фиг.7а - 7d - схемы событий, изображающие примеры механизмов получения и координации информации о контексте, согласно различным вариантам осуществления;
фиг.8а - 8d изображают примеры различных представлений информации о контексте, которую можно использовать в связи с различными вариантами осуществления настоящего изобретения;
фиг.9 изображает пример таблицы-конфигуратора, определяющей политики связи и кэширования для различных источников контекстуальной информации, согласно одному варианту осуществления;
фиг.10 - схема событий, изображающая пример доступа к источникам информации о контексте, сконфигурированных (фиг.9) во время обработки последовательности взаимодействия, согласно одному варианту осуществления;
фиг.11-13 - ряд снимков экрана, изображающих пример использования контекста приложения в области обмена текстовыми сообщениями для получения объекта ссылки для местоимения, согласно одному варианту осуществления;
фиг.14 - снимок экрана, иллюстрирующий, предоставляющего подсказку для устранения неоднозначности имени, согласно одному варианту осуществления;
фиг.15 - снимок экрана, иллюстрирующий виртуального помощника, использующего контекст диалога для предоставления вывода относительно местоположения команды, согласно одному варианту осуществления;
фиг.16 - снимок экрана, изображающий пример использования списки "любимых" телефонных номеров в качестве источника контекста, согласно одному варианту осуществления;
фиг.17-20 - последовательности снимков экрана, изображающие пример использования контекста текущего приложения для интерпретации и операционализации команды, согласно одному варианту осуществления;
фиг.21 - снимок экрана, изображающий пример использования контекста текущего приложения для интерпретации команды, которая запускает различные приложения;
фиг.22-24 - последовательности снимков экрана, изображающие пример использования контекста события в форме поступающего текстового сообщения, согласно одному варианту осуществления;
фиг.25a и 25b - последовательности снимков экрана, изображающие пример использования контекста предыдущего диалога, согласно одному варианту осуществления;
фиг.26a и 26b - снимки экрана, изображающие пример пользовательского интерфейса для выбора среди интерпретаций возможных вариантов, согласно одному варианту осуществления;
фиг.27 - блок-схема, изображающая пример одного варианта осуществления системы виртуального помощника;
фиг.28 - блок-схема, изображающая вычислительное устройство, подходящее для реализации, по меньшей мере, части виртуального помощника, согласно, по меньшей мере, одному варианту осуществления;
фиг.29 - блок-схема, изображающая архитектуру для реализации, по меньшей мере, части виртуального помощника на автономной вычислительной системе, согласно, по меньшей мере, одному варианту осуществления;
фиг.30 - блок-схема, изображающая архитектуру для реализации, по меньшей мере, части виртуального помощника по распределенной вычислительной сети, согласно, по меньшей мере, одному варианту осуществления;
фиг.31 - блок-схема, изображающая архитектуру системы, которая иллюстрирует несколько различных типов клиентов и режимов работы;
фиг.32 - блок-схема, изображающая клиента и сервер, которые поддерживают связь друг с другом для реализации настоящего изобретения, согласно одному варианту осуществления.
Подробное описание изобретения
Согласно различным вариантам осуществления настоящего изобретения множество контекстуальной информации получается и применяется для выполнения функций обработки информации при поддержке операций виртуального помощника. В целях описания термин "виртуальный помощник", эквивалентен термину "интеллектуальный автоматический помощник", каждый из которых относится к любой системе обработки информации, которая выполняет одну или более функций:
- интерпретация ввода языка человека в устной и/или текстовой форме;
- операционализация представления намерения пользователя в виде, который можно выполнить, таком как представление задачи с этапами с и/или параметрами;
- выполнение представлений задачи путем запуска программ, способов, услуг, API или т.п.; и
- выработка выходных откликов для пользователя в языковой или графической форме.
Пример такого виртуального помощника описан в родственной полноценной заявке на патент США порядковый номер 12/987982, озаглавленной "Intelligent Automated Assistant", поданной 10 января 2011 года, полное раскрытие которой включено здесь посредством ссылки.
Ниже приводится подробное описание различных технологий со ссылкой на образцовые варианты осуществления, которые изображены на сопроводительных чертежах. В следующем ниже описании численные специфические подробности изложены для того, чтобы обеспечить полное понимание одного или более аспектов и/или особенностей, описанных здесь, или на которые ссылаются здесь. Однако специалистам в данной области техники будет ясно, что один или более аспектов и/или особенностей, описанных здесь, или на которые ссылаются здесь, можно осуществить на практике без некоторых или всех этих специфических подробностей. В других случаях, хорошо известные этапы процесса и/или структуры не будут подробно описаны для того, чтобы не затенять некоторые аспекты и/или особенности, описанные здесь или на которые ссылаются здесь.
В настоящей заявке можно описать одно или более различных изобретений. Кроме того, для одного или более изобретений, описанных здесь, в этой заявке можно описать многочисленные варианты осуществления, и они представлены только в целях иллюстрации. Описанные варианты осуществления не предназначены для ограничения в любом смысле. Одно или более изобретений можно широко применить к многочисленным вариантам осуществления, как это вполне очевидно из раскрытия. Эти варианты осуществления описаны достаточно подробно для того, чтобы специалисты в данной области техники могли реализовать на практике одно или более изобретений, и следует понимать, что можно использовать и другие варианты осуществления и что структурные, логические, программные, электрические и другие изменения можно выполнить без отклонения от объема одного или более изобретений. Соответственно, специалистам в данной области техники будет очевидно, что одно или более изобретений можно применить на практике с различными модификациями и изменениями. Конкретные особенности одного или более изобретений можно описать со ссылкой на один или более конкретные варианты осуществления и фигуры, которые образуют часть настоящего раскрытия и на которых показаны, посредством иллюстраций, специфические варианты осуществления одного или более изобретения. Однако следует понимать, что такие особенности не ограничены применением в одном или более конкретных вариантах осуществления или фигурами со ссылкой, с которой они описаны. Настоящее раскрытие не является буквальным описанием всех вариантов осуществления одного или более изобретений или перечнем особенностей одного или более изобретений, которые должны быть представлены во всех вариантах осуществления.
Заголовки разделов, предусмотренные в данной заявке на патент, и названия данной заявки на патент используются только ради удобства и не используются как ограничивающие раскрытие любым способом.
Устройства, которые поддерживают связь друг с другом, не должны поддерживать постоянную связь друг с другом, если прямо не указано иное. Помимо этого, устройства, которые поддерживают связь друг с другом, могут поддерживать связь непосредственно или косвенно через одного или более посредников.
Описание варианта осуществления с несколькими компонентами, необходимыми при поддержании связи друг с другом, не подразумевают, что все такие компоненты требуются. Напротив, для иллюстрации широкого разнообразия возможных вариантов осуществления одного или более изобретений приведено описание разнообразных вспомогательных компонентов.
Кроме того, хотя этапы процесса, этапы способа, алгоритмы или т.п. можно описать в последовательном порядке, такие процессы, способы и алгоритмы можно сконфигурировать для работы в любом подходящем порядке. Другими словами, любая последовательность или порядок этапов, который можно описать в данной заявке на патент, не означает требование, в соответствии с которым эти этапы должны быть выполнены в таком порядке. Кроме того, некоторые этапы можно выполнить одновременно, несмотря на то, что они описаны или подразумеваются как происходящее неодновременно (например, потому что один этап описан после другого этапа). Более того, иллюстрация процесса с помощью его изображения на чертеже не подразумевает, что иллюстрированный процесс исключает другие изменения и модификации в нем, не подразумевает, что иллюстрированный процесс или любой из его этапов обязательно представляют собой один или более изобретений, и не подразумевает, что иллюстрированный процесс является предпочтительным.
При описании одного устройства или изделия вполне очевидно, что вместо одного устройства/изделия можно использовать более чем одного устройства/изделия (которые взаимодействуют или не взаимодействую). Аналогично, там, где описано более чем одно устройство или изделие (которые взаимодействуют или не взаимодействуют), вполне очевидно, что одно устройство/изделие можно использовать вместо более чем одного устройства или изделия.
Функциональные возможности и/или особенности устройства можно альтернативно осуществить с помощью одного или более других устройств, которые явно не описаны как имеющие такие функциональные возможности/особенности. Таким образом, другие варианты осуществления одного или более изобретений не должны включать в себя само устройство.
Технологии и механизмы, описанные здесь или на которые ссылаются здесь, будут иногда описаны для ясности в одном единственном виде. Однако следует отметить, что конкретные варианты осуществления включают в себя многочисленные итерации, технологии или многочисленные примеры механизмов, если не отмечено иное.
Хотя описанные в пределах контекста технологии для реализации интеллектуального автоматического помощника также известны как виртуальный помощник, можно понять, что различные аспекты и технологии, описанные здесь, можно также развернуть и/или применить в других областях техники, включающих в себя взаимодействие с человеком и/или компьютерное взаимодействие с программным обеспечением.
Другие аспекты, которые относятся к технике виртуальных помощников (например, которые можно использовать, предоставить и/или реализовать в одном или более вариантах осуществления системы виртуального помощника, которые описаны здесь), раскрыты в одном или более из следующего, полное раскрытие которых включены здесь посредством ссылки:
- Полноценная заявка на патент США порядковый номер 12/987982 под названием "Intelligent Automated Assistant", attorney docket number P10575US1, поданная 10 января 2011 года;
- Предварительная заявка на патент США порядковый номер 61/295774 под названием "Intelligent Automated Assistant", attorney docket number SIRIP003P, поданная 18 января 2010 года;
- Заявка на патент США порядковый номер 11/518292 под названием "Method And Apparatus for Building an Intelligent Automated Assistant", поданная 8 сентября 2006 года; и
- Предварительная заявка на патент США порядковый номер 61/186414 под названием "System and Method for Semantic Auto-Completion", поданная 12 июня 2009 года.
В общем, технологии виртуального помощника, раскрытые здесь, можно реализовать на аппаратных средствах или посредством комбинации программного обеспечения и аппаратных средств. Например, их можно реализовать в виде ядра операционной системы, в виде отдельного пользовательского процесса, в виде библиотечного пакета, связанного в сетевые приложения, на специально сконструированной машине, и/или на сетевой интерфейсной плате. В специфическом варианте осуществления, технологии, раскрытые здесь, можно реализовать в виде программного обеспечения, такого как операционная система, или в виде приложения, запускаемого на операционной системе.
Гибридная реализация (гибридные реализации) программного обеспечения/аппаратных средств, по меньшей мере, некоторых из вариантов осуществления (варианта осуществления) виртуального помощника, раскрытые здесь, можно реализовать на программируемой машине, избирательно активизируемой или реконфигурируемой с помощью компьютерной программы, сохраненной в памяти. Такие сетевые устройства могут иметь многочисленные сетевые интерфейсы, которые можно сконфигурировать или сконструировать с возможностью использования различных типов сетевых протоколов связи. Общая архитектура для некоторых этих машин может появиться из описаний, раскрытых здесь. Согласно специфическим вариантам осуществления, по меньшей мере, некоторые из особенностей и/или функциональных особенностей различных вариантов осуществления виртуального помощника, раскрытых здесь, можно реализовать на одной или более сетевых хост-машинах общего назначения, таких как вычислительная система конечного пользователя, компьютер, сетевой сервер или система серверов, мобильное вычислительное устройство (например, персональный цифровой помощник, мобильный телефон, смартфон, портативный персональный компьютер типа "лэптоп", планшетный компьютер или т.п.), бытовое электронное устройство, музыкальный проигрыватель или любое другое подходящее устройство, маршрутизатор, переключатель или т.п. или любая их комбинация. По меньшей мере, в некоторых вариантах осуществления, по меньшей мере, некоторые особенности и/или функциональные возможности различных вариантов осуществления виртуального помощника, раскрытых здесь, можно реализовать в виде одной или более виртуализованных вычислительных средах (например, в виде сетевых вычислительных облаков или т.п.).
На фиг.28 показана блок-схема, изображающее вычислительное устройство 60, подходящая для реализации, по меньшей мере, части особенностей виртуального помощника и/или функциональных возможностей, раскрытых здесь. Вычислительное устройство 60 может представлять собой, например, вычислительную систему конечного пользователя, сетевой сервер или систему серверов, мобильное вычислительное устройство (например, персональный цифровой помощник, мобильный телефон, смартфон, портативный персональный компьютер типа "лэптоп", планшетный компьютер или т.п.), бытовое электронное устройство, музыкальный проигрыватель или любое другое подходящее электронное устройство, или любую их комбинацию или их часть. Вычислительное устройство 60 можно выполнить с возможностью поддержания связи с другими вычислительными устройствами, такими как клиенты и/или серверы, по сети связи, такой как Интернет, с использованием известных протоколов для такой связи, беспроводной или проводной.
В одном варианте осуществления вычислительное устройство 60 включает в себя центральное процессорное устройство (ЦПУ) 62, интерфейсы 68 и шину 67 (такая как шина для подключения периферийных компонентов (PCI)). Под управлением соответствующего программного обеспечения или программно-аппаратного обеспечения ЦПУ 62 может отвечать за реализацию специфических функций, связанных с функциями специально сконфигурированного вычислительного устройства или машины. Например, по меньшей мере, в одном варианте осуществления персональный цифровой помощник (PDA) пользователя или смартфон можно сконфигурировать или сконструировать с возможностью функционирования в качестве системы виртуального помощники, использующей ЦПУ 62, память 61, 65 и интерфейс(ы) 68. По меньшей мере, в одном варианту осуществления ЦПУ 62 может заставлять выполнять одну или более из различных типов функций виртуального помощника и/или работает под управлением модулей/компонентов программного обеспечения, которые, например, могут включать в себя операционную систему и программное обеспечение с любыми соответствующими приложениями, драйверы и т.п.
ЦПУ 62 может включать в себя один или более процессоров 63, таких, например, как процессор из семейства процессоров Motorola, или Intel, или семейства микропроцессоров MIPS. В некоторых вариантах осуществления процессор(ы) 63 может включать в себя специально разработанные аппаратные средства (например, специализированные интегральные схемы (ASIC), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), программируемые логические матрицы (ПЛМ) и т.п.) для управления операциями вычислительных устройств 60. В специфическом варианте осуществления память 61 (такая как энергонезависимое оперативное запоминающее устройство (ОЗУ) и/или постоянное запоминающее устройство (ПЗУ)) также образует часть ЦПУ 62. Однако существуют многочисленные другие способы, в которых память можно связать с системой. Блок 61 памяти можно использовать для различных целей, таких, например, как кэширование и/или хранение данных, программирование инструкций и т.п.
Термин "процессор", который используется здесь, не ограничивается только теми интегральными схемами, которые упоминаются в технике как процессор, но, в общем, относятся к микроконтроллеру, микрокомпьютеру, программируемому логическому контроллеру, специализированной интегральной схеме и к любой другой программируемой схеме.
В одном варианте осуществления интерфейсы 68 выполнены в качестве интерфейсных плат (которые иногда называются как "линейный платы"). В общем, они управляют передачей и приемом пакетов данных по вычислительной сети и иногда поддерживают другие периферийные устройства, которые используются с вычислительным устройством 60. Среди интерфейсов, которые можно выполнить, имеются интерфейсы Ethernet, интерфейсы ретрансляции кадров, кабельные интерфейсы, интерфейсы DSL, интерфейсы кольцевой локальной сети с маркерным доступом и т.п. Помимо этого, можно предусмотреть различные типы интерфейсов, такие, например, как универсальная последовательная шина (USB), последовательность, Ethernet, шина Firewire, шины межсоединений периферийных компонентов PCI, параллельные, радиочастотные (РЧ), Bluetooth™, ближняя связь (например, с использованием магнитных явлений в ближней зоне), 802.11 (WiFi), ретрансляция кадров TCP/IP, ISDN, интерфейсы "быстрого" Ethernet, интерфейсы Gigabit Ethernet, интерфейсы режима асинхронной передачи (ATM), интерфейсы высокоскоростного последовательного интерфейса (HSSI), интерфейсы "точка продажа" (POS), оптоволоконные интерфейсы распределенных данных (FDDI) и т.п. В общем, такие интерфейсы 68 могут включать в себя порты, соответствующие для поддержания связи с соответствующими средствами. В некоторых случаях они могут также включать в себя независимый процессор и в некоторых случаях энергозависимую или энергонезависимую память (например, ОЗУ).
Хотя система, показанная на фиг.28, иллюстрирует одну специфическую архитектуру для вычислительного устройства 60 для реализации технологий настоящего изобретения, описанного здесь, она некоим образом не представляет собой только архитектуру устройства, на которой можно реализовать, по меньшей мере, часть особенностей и технологий, описанных здесь. Например, можно использовать архитектуры, имеющие один или любое количество процессоров 63, и такие процессоры 63 можно представить в виде одиночного устройства или распределенного среди любого количества устройств. В одном варианте осуществления один процессор 63 управляет связью, а также маршрутизацией вычислений. В различных вариантах осуществления различные типы особенностей и/или функциональных возможностей виртуального помощника можно реализовать в виде системы виртуального помощника, которая включает в себя устройство клиента (такое как персональный цифровой помощник или смартфон, запускающий программное обеспечение клиента) и система(ы) сервера (такая как система сервера, которая более подробно описана ниже).
Независимо от конфигурации сетевого устройства система настоящего изобретения может использовать одну память или более или модули памяти (такие, например, как блок 65 памяти), выполненные с возможностью хранения данных, инструкции программы для сетевых операций общего назначения и/или другую информацию, которая относится к функциональным возможностям технологий виртуального помощника, описанных здесь. Инструкции программы могут управлять работой операционной системы и/или, например, одного или более приложений. Память или памяти можно также выполнить с возможностью хранения структур данных, информации о таксономии ключевых слов, информацию о рекламе, информацию о "щелчке" и впечатлении пользователя и/или другой специфической информации, не касающейся программы и описанной здесь.
Поскольку такую информацию и инструкции программы можно использовать для реализации систем/способов, описанных здесь, по меньшей мере, некоторые варианты осуществления сетевых устройств могут включать в себя невременный машиночитаемый носитель информации, который, например, можно сконфигурировать или сконструировать с возможностью хранения инструкции программы, информации о состоянии и т.п. для выполнения различных операций, описанных здесь. Примеры таких невременных машиночитаемых носителей информации включают в себя, но не ограничиваются, магнитные среды, такие как жесткие диски, гибкие диски, и магнитную пленку; оптические среды, такие как диски CD-ROM, магнитооптические носители, такие как флоптические диски, и аппаратные устройства, которые специально выполнены с возможностью хранения и выполнения инструкций программы, такие как постоянные запоминающие устройства (ПЗУ), флэш-память, мемристорная память, оперативное запоминающее устройство (ОЗУ) и т.п. Примеры инструкций программы включают в себя как машинный код, такой как выработанный с помощью компилятора, так и файлы, содержащие коды более высокого уровня, которые можно исполнять на компьютере с использованием интерпретатора.
В одном варианте осуществления система настоящего изобретения реализована на автономной вычислительной системе. На фиг.29 показана блок-схема, изображающая архитектуру для реализации, по меньшей мере, части виртуального помощника на автономной вычислительной системе, согласно, по меньшей мере, одному варианту осуществления. Вычислительное устройство 60 включает в себя процессор(ы) 63, который запускает программное обеспечение для реализации виртуального помощника 1002. Устройство 1206 ввода может представлять собой любой тип, подходящий для приема ввода пользователя, включающего в себя, например, клавиатуру, сенсорный экран, микрофон (например, для голосового ввода), мышь, сенсорную панель, шаровой манипулятор, пятипозиционный переключатель, джойстик и/или любую их комбинацию. Устройство вывода 1207 может представлять собой экран, громкоговоритель, принтер и/или любую их комбинацию. Память 1210 может представлять собой память с произвольной выборкой, оперативное запоминающее устройство (ОЗУ), которое имеет такую структуру и архитектуру, которые известны в технике, для использования процессором(ами) 63 в ходе выполнения программного обеспечения. Запоминающее устройство 1208 может представлять собой любое магнитное, оптическое и/или электрическое запоминающее устройство для хранения данных в цифровой форме; при этом примеры включают в себя флэш-память, магнитный жесткий диск, CD-ROM и/или т.п.
В другом варианте осуществления система настоящего изобретения реализована на распределенной вычислительной сети, такой, которая имеет любое количество клиентов и/или серверов. На фиг.30 показана блок-схема, изображающая архитектуру для реализации, по меньшей мере, части виртуального помощника на основе распределенной вычислительной сети, согласно, по меньшей мере, одному варианту осуществления.
В размещении, показанном на фиг.30, предусмотрено любое количество клиентов 1304; причем каждый клиент 1304 может запускать программное обеспечение для реализации частей клиент-сторона настоящего изобретения. Помимо этого, можно предусмотреть любое количество серверов 1340 для управления запросами, которые поступают от клиентов 1304. Клиенты 1304 и серверы 1340 могут поддерживать связь друг с другом через электронную сеть 1361, такую как Интернет. Сеть 1361 можно реализовать с использованием любых известных сетевых протоколов, включающих в себя, например, проводные или беспроводные протоколы.
Помимо этого, в одном варианте осуществления серверы 1340 могут вызывать внешние услуги 1360, когда необходимо получить дополнительную информацию и обратиться для сохранения данных, относящих к предыдущим взаимодействиям с конкретными пользователями. Связь с внешними устройствами 1360 может иметь место, например, через сеть 1361. В различных вариантах осуществления, внешние услуги 1360 включают в себя вэб-ориентированные услуги и/или функциональные средства, которые относятся к или установлены на самом аппаратном устройстве. Например, в варианте осуществления, где помощник 1002 реализован на смартфоне или другом электронном устройстве, помощник 1002 может получить информацию, сохраненную в приложении ("арр") "календарь", контактах и/или других источниках.
В различных вариантах осуществления помощник 1002 может управлять многочисленными особенностями и операциями электронного устройства, на котором он установлен. Например, помощник 1002 может вызвать внешние услуги 1360, которые сопрягаются с функциональными средствами и приложениями на устройстве через API или с помощью других средств, для выполнения функций и операций, которые могут иным способом инициировать использование традиционного пользовательского интерфейса на устройстве. Такие функции и операции могут включать в себя, например, установку тревожной сигнализации, создание телефонного вызова, отправку текстового сообщения или сообщения электронной почты, добавление события календаря и т.п.Такие функции и операции можно выполнить в качестве дополнительных функций в контексте разговорного диалога между пользователем и помощником 1002. Такие функции и операции можно определить с помощью пользователя в контексте такого диалога или их можно автоматически выполнить на основании контекста диалога. Специалисты в данной области техники могут представить себе, что помощник 1002 можно использовать, таким образом, в качестве механизма управления для инициирования и управления различными операциями на электронном устройстве, которое можно использовать в качестве альтернативы для традиционных механизмов, таких как кнопки или графические пользовательские интерфейсы.
Например, пользователь может выполнить ввод в помощнике 1002, такой как "I need to wake tomorrow at 8 am" ("Меня необходимо разбудить утром в 8 часов"). После того как помощник 1002 определил намерение пользователя, используя технологии, описанные здесь, помощник 1002 может вызвать внешние услуги 1040 для взаимодействия с функцией будильника или приложения на устройство. Помощник 1002 устанавливает сигнал будильника от имени пользователя. Таким образом, пользователь может использовать помощника 1002 в качестве замены для традиционных механизмов для установки сигнала будильника или выполнения других функций на устройстве. Если запросы пользователя являются неоднозначными или необходимо дополнительное разъяснение, помощник 1002 может использовать различные технологии, описанные здесь, включающие в себя активное извлечение, перефразирование, советы и т.п. и включающие в себя получение контекстной информации с тем, чтобы вызывались корректные услуги 1340 и применялось предназначенное действие. В одном варианте осуществления помощник 1002 может подсказать пользователю выполнить подтверждение и/или запрос дополнительной контекстной информации из любого подходящего источника перед вызовом услуги 1340 для выполнения функции. В одном варианте осуществления пользователь может выборочно отключить способность помощника 1002 вызывать конкретные услуги 1340 или при необходимости может отключить все такие услуги, связанные с вызовом.
Систему настоящего изобретения можно реализовать с любым количеством различных типов клиентов 1304 и режимов работы. На фиг.31 показана блок-схема, изображающая архитектуру системы, которая иллюстрирует несколько различных типов клиентов 1304 и режимов работы. Специалисты в данной области техники могут обнаружить, что различные типы клиентов 1304 и режимы работы, показанные на фиг.31, являются только образцовыми, и систему настоящего изобретения можно реализовать с использованием клиентов 1304 или режимов работы, которые отличаются от тех, которые изображены. Кроме того, система может включать в себя любое количество или все такие клиенты 1304 и/или режимы работы по отдельности или в любой комбинации.
Изображенные примеры включают в себя:
- Компьютерное устройство с устройствами ввода/вывода и/или датчики 1402. Компонент клиента можно развернуть на любом таком компьютерном устройстве 1402. По меньшей мере, один вариант осуществления можно реализовать с использованием вэб-браузера 1404А или другого приложения программного обеспечения для обеспечения связи с серверами 1340 через сеть 1361. Входные и выходные каналы могут представлять собой любой тип, включающий в себя, например, визуальный и/или звуковые каналы. Например, в одном варианте осуществления систему изобретения можно реализовать с использованием методов связи на основе голоса, принимая во внимание вариант осуществления помощника для слепых, у которых эквивалентная схема вэб-браузера приводится в действие с помощью речи и использует речь для вывода.
- Мобильное устройство с вводом/выводом и датчики 1406, для которых клиент можно реализовать в виде приложения на мобильном устройстве 1304В. Это включает в себя, но не ограничивает, мобильные телефоны, смартфоны, персональные цифровые помощники, планшетные устройства, сетевые игровые приставки и т.п.
- Бытовые приборы с вводом/выводом и датчики 1410, для которых клиент можно реализовать в виде встроенного приложения на бытовом приборе 1304С.
- Автомобили и другие транспортные средства с интерфейсами и датчиками 1414 на приборной панели, для которых клиент можно реализовать в виде встроенного системного приложения 1304D. Это включает в себя, но не ограничивает, системы навигации автомобиля, системы голосового управления, системы развлечения в автомобиле и т.п.
- Вычислительные устройства, подключенные к сети, такие как маршрутизаторы 1418 или любое другое устройство, которое постоянно подключено или взаимодействует с сетью, для которых клиент можно реализовать в виде приложения 1304Е устройство-резидент.
- Клиенты 1424 электронной почты, для которых в варианте осуществления помощника соединение выполняется через сервер 1426 модальности электронной почты. Сервер 1426 модальности электронной почты действует как мост связи, например, принимающий ввод от пользователя в виде сообщений электронной почты, отправленных помощнику и отправляющий вывод от помощника пользователю в качестве ответов.
- Клиент 1428 мгновенного обмена сообщениями, для которых вариант осуществления помощника подсоединяется через сервер 1430 модальности обмена сообщениями. Сервер 1430 модальности обмена сообщениями действует как мост связи, получающий входные данные от пользователя в качестве сообщений, отправленных в помощник, и отправляющие выходные данные из помощника пользователю в качестве сообщений при ответе.
- Голосовые телефоны 1432, для которых вариант осуществления помощника подсоединен через сервер 1430 модальности для передачи речи по Интернет-протоколу (VoIP). Сервер 1430 модальности VoIP действует как мост связи, получающий входные данные от пользователя в качестве речевой команды, подаваемой помощнику, и отправляющий при ответе выходные данные от помощника к пользователю, например, в виде синтезированной речи.
Для платформ обмена сообщениями, включающих в себя, но не ограниченных, электронную почту, обмен мгновенными сообщениями, дискуссионные форумы, сеансы групповых чатов, сеансы поддержки клиентов или оказание помощи в режиме реального времени и т.п., помощник 1002 может действовать как участник разговоров. Помощник 1002 может контролировать разговор и ответ с отдельными личностями или группой с использованием одной или более технологий и способов, описанных здесь, для взаимодействий один к одному.
В различных вариантах осуществления функциональные возможности для реализации технологий настоящего изобретения можно распределить среди любого числа компонентов клиента и/или сервера. Например, различные модули программного обеспечения можно реализовать для выполнения различных функций совместно с настоящим изобретением и такие модули можно разнообразным способом реализовать для запуска компонентов на сервере и/или клиенте. Дополнительные подробности для такого размещения представлены в родственной полноценной заявке на патент США порядковый номер 12/987982, под названием "Intelligent Automated Assistant", поданной 10 января 2011 года, полное раскрытие которой включено здесь посредством ссылки.
В примере, показанном на фиг.32, функциональные средства извлечения ввода и функциональные средства обработки вывода распределены среди клиента 1304 и сервера 1340, причем часть клиента извлечения 2794а ввода и часть клиента обработки 2792а вывода расположены в клиенте 1304 и часть сервера извлечения 2794b ввода и часть сервера обработки 2792b вывода расположены в сервере 1340. В сервере 1340 расположены следующие компоненты:
- полный словарь 2758b;
- полная библиотека распознавателей 2760b языковой структуры;
- основная версия краткосрочной персональной памяти 2752b;
- основная версия долгосрочной персональной памяти 2754b.
В одном варианте осуществления клиент 1304 поддерживает локальным образом поднаборы и/или части этих компонентов для того, чтобы повысить быстроту реагирования и уменьшить зависимость от сетевых средств связи. Такие поднаборы и/или части можно поддерживать и обновлять согласно хорошо известным технологиям управления кэш-памятью. Такие поднаборы и/или части включают в себя, например:
- поднабор словаря 2758а;
- поднабор библиотеки распознавателей 2760а языковой структуры;
- кэш-память краткосрочной персональной памяти 2752а;
- кэш-память долгосрочной персональной памяти 2754а.
Дополнительные компоненты можно реализовать в виде части сервера 1340, который включает в себя, например:
- интерпретатор 2770 языка;
- процессор 2780 диалогового потока данных;
- процессор 2790 вывода;
- базы 2772 данных доменных объектов;
- модели 2786 потоков задач;
- координация 2782 услуг;
- модели 2788 возможностей услуг.
Каждый из этих компонентов будет описан более подробно ниже. Сервер 1340 получает дополнительную информацию путем взаимодействия с внешними услугами 1360 в случае, когда это необходимо.
Концептуальная архитектура
На фиг.27 показана упрощенная блок-схема специфического образцового варианта осуществления виртуального помощника 1002. Как описано более подробно в родственных полноценных заявках на патенты США, которые упомянуты выше, различные варианта осуществления виртуального помощника 1002 можно сконфигурировать, сконструировать и/или выполнить с возможностью обеспечения различных других типов операций, функциональных средств и/или особенностей, которые обычно относятся к технике виртуальных помощников. Кроме того, как было подробно описано выше, многочисленные различные операции, выполняемые функции и/или особенности виртуального помощника 1002, который раскрыт здесь, позволяют обеспечить или выполнить различные типы преимуществ и/или экономические выгоды для различных объектов, взаимодействующих с виртуальным помощником 1002. Вариант осуществления, показанный на фиг.27, можно реализовать с использованием любых архитектур аппаратных средств, описанных выше, или с использованием различного типа архитектуры аппаратных средств.
Например, согласно другим вариантам осуществления виртуальный помощник 1002 можно сконфигурировать, сконструировать и/или выполнить с возможностью обеспечения различных других типов операций, функциональных возможностей и/или особенностей таких, например, как одно или более из следующего (или их комбинации):
- автоматизация применения данных и услуг, доступных по Интернет, для обнаружения, нахождения, выбора среди других, приобретения, резервирования или заказа продукции и услуг. Помимо автоматизации процесса использования этих данных и услуг виртуальный помощник 1002 может также сразу обеспечить объединенное использование нескольких источников данных и услуг. Например, можно объединить информацию относительно продукции из нескольких обзорных сайтов, проверить цены и наличие у многочисленных поставщиков, проверить их местоположения и временные ограничения и помочь пользователю найти персонализированное решение для их проблемы;
- автоматизация использования данных и услуг, доступных по Интернет для обнаружения, исследования, выбора среди них, резервирования и по-другому обучения тем вещам, которые необходимо сделать (которые включают в себя, но не ограничивают, фильмы, события, представления, выставки, показы и аттракционы); места, куда можно пойти (которые включают в себя, но не ограничены, места назначения поездок, гостиницы и другие места для отдыха, достопримечательности и другие места, представляющие интерес и т.п.); места, где можно поесть или выпить (такие как рестораны и бары), периоды времени и места, где можно встретиться с другими или любой другой источник развлечения или социального взаимодействия, который можно найти по Интернет;
- обеспечение работы приложений и услуг через диалог на естественном языке, которые иным образом предоставляются путем выделенных приложений с помощью графических пользовательских интерфейсов, которые включают в себя поиск (включают в себя поиск на основе местоположения); навигацию (карты и направления); поиск базы данных (такой как поиск работы или людей по именам или другим свойствам); получение метеорологических условий или прогнозов погоды, проверка цены рыночных товаров или статуса финансовых операций; контроль графика статуса полетов; доступ обновления календарей и расписаний; управление напоминаниями, предупреждениями, задачами и проектами; связь по электронной почте или с помощью других платформ обмена сообщениями; и локальная или удаленная работа устройств (например, набор номера телефона, управление освещением и температурой, управление устройством для обеспечения безопасности дома, воспроизведение музыки или видео и т.п.). В одном варианте осуществления виртуальный помощник 1002 можно использовать для инициирования, выполнения и управления многочисленными функциями и приложениями, которые имеются на устройстве.
- Предложения персональных рекомендаций для видов деятельности, товаров, услуг, источника развлечения, управления временем или для любого другого вида рекомендуемой услуги, которая извлекает пользу из интерактивного диалога на естественном языке и автоматический доступ к данным и услугам.
Согласно другим вариантам осуществления, по меньшей мере, часть различных типов функций, операций, действий и/или других особенностей, выполняемых с помощью виртуального помощника 1002, можно реализовать на одной или более системах клиента или на одной или более системах сервера и/или их комбинации.
Согласно другим вариантам осуществления, по меньшей мере, часть различных типов функций, операций, действий и/или других особенностей, выполняемых с помощью виртуального помощника 1002, можно использовать контекстуальную информацию при интерпретации и операционализации ввода пользователя, как описано более подробно здесь.
Например, в, по меньшей мере, одном варианте осуществления виртуальный помощник 1002 можно выполнить с возможностью использования и/или выработки различных других типов данных и/или других типов информации при выполнении специфических задач и/или операций. Это может включать в себя, например, данные/информацию о вводе и/или данные/информацию о выводе. Например, в, по меньшей мере, одном варианте осуществления виртуальный помощник 1002 можно выполнить с возможностью доступа, обработки и/или по-другому использования информации из одного или более различных типов источников, таких как, например, один или более локальных и/или удаленных памятей, устройств и/или систем. Дополнительно, в, по меньшей мере, одном варианте осуществления, виртуальный помощник 1002 можно выполнить с возможностью выработки одного или более различных типов данных/информации о выводе, которая, например, может храниться в памяти одного или более локальных и/или удаленных устройств и/или систем.
Примеры различных типов данных/информации о вводе, к которой можно получить доступ и/или которую можно использовать с помощью виртуального помощника 1002, может включать в себя, но не ограничиваться, одним или более из следующего (или их комбинаций):
- Голосовой ввод: из мобильных устройств, таких как мобильные телефоны и планшеты, компьютеры с микрофонами, гарнитуры Bluetooth, автомобильные системы управления голосом, по телефонной системе, службы записи и передачи и сообщений, аудиоголосовая почта по интегрированным системам обработки сообщений, потребительских приложений с голосовым вводом, таким как радиоприемники с будильниками, телефонная станция, система управления домашним развлечением и игровые приставки.
- Ввод текста с клавиатур на компьютерах или мобильных устройствах, кнопочных панелей на дистанционных пультах управления или других бытовых электронных устройствах, сообщений электронной почты, отправленных помощнику, мгновенного обмена сообщениями или подобными короткими сообщениями, отправленными в помощник, текста, принятого из проигрывателей в многопользовательских игровых средах, и текста, сформированных в поток при подачах сообщений.
- Информация о местоположении, приходящая от датчиков или систем, на основе определения местоположения. Примеры включают в себя систему глобального позиционирования (GPS) и ассистирующую GPS (A-GPS) на мобильных телефонах. В одном варианте осуществления информация о местоположении объединена с явным вводом пользователя. В одном варианте осуществления система настоящего изобретения позволяет обнаружить, когда пользователь находится дома, основываясь на информации об известном адресе и определении текущего местоположения. Таким образом, определенные выводы можно сделать относительно того, в какой информации может быть заинтересован пользователь, когда он находится у себя дома, а не вне дома, а также относительно типа услуг и действий, которые следует активизировать от имени пользователя в зависимости от того, находится или нет он или она дома.
- Информация о времени, получаемая из часов, расположенных на клиентских устройствах. Она может включать в себя, например, время, показываемое на телефонах или других клиентских устройствах, показывающее местное время и часовой пояс. Кроме того, время можно использовать в контексте пользовательских запросов, таких, например, как интерпретировать фразы, такие как "in an hour" ("через час") и "tonight" ("сегодня вечером").
- Данные компаса, акселерометра, гироскопа и/или о скорости перемещения, а также другие данные датчиков, поступающие из мобильных или портативных устройств или встроенных систем, таких как системы управления автомобилем. Они могут также включать в себя данные о местоположении устройства, поступающие из пультов дистанционного управления в бытовые приборы и игровые приставки.
- Выбор щелчком кнопкой мыши и меню и других событий из графического пользовательского интерфейса (GUI) на любом устройстве, имеющем GUI. Другие примеры включают в себя касание на сенсорном экране.
- События от датчиков и других триггеров, управляемых данными, такие как будильники, сигналы календарей, триггеры изменения цены, триггеры местоположения, мгновенные уведомления, поступающие на устройство из серверов, и т.п.
Ввод в описанных здесь вариантах осуществления также включает в себя контекст, историю взаимодействия пользователя, включающую в себя диалог и историю запроса.
Как описано в родственных полноценных заявках на патенты США, перекрестные ссылки которых представлены выше, многочисленные различные типы данных, информации о выводе можно выработать с помощью виртуального помощника 1002. Они могут включать в себя, но не ограничиваются, один или более из следующего (или их комбинации):
- Вывод текста, отправленный непосредственно на устройство вывода и/или в пользовательский интерфейс устройства;
- Текст и графика, отправленные пользователю по электронной почте;
- Текст и графика, отправленные пользователю по службе обмена сообщениями;
- Вывод речи, который может включать в себя одно или более из следующего (или их комбинацию):
- Синтезированная речь;
- Дискретизированная речь;
- Записанные сообщения;
- Графическое размещение информации с фотографиями, обогащенным текстом, видео, звуком и гиперссылками (например, содержание, представленное в виде вэб-браузера;
- Выходной сигнал исполнительного механизма для управления физических действий на устройстве, таких как побуждение его включаться или выключаться, создание звука, изменение цвета, вибрация, управление освещением или т.п.
- Вызов других приложений на устройство, таких как вызов приложений, связанных с отображением карты, голосовой набор номера телефона, отправление сообщения электронной почты или мгновенного сообщения, воспроизведение медиа, внесение отметок в календари, диспетчеры задач, и приложения для заметок и другие приложения;
- Выходной сигнал исполнительного механизма для управления физическими действиями в устройствах, прикрепленных или управляемых с помощью устройства, таких как работа с удаленной камерой, управление инвалидной коляской, воспроизведение музыки на удаленных громкоговорителях, воспроизведение видео на удаленных устройствах отображения и т.п.
Следует понимать, что виртуальный помощник 1002, показанный на фиг.27, является лишь одним примером из широкого диапазона вариантов осуществления систем виртуального помощника, которые можно реализовать. Другие варианты осуществления системы виртуального помощника (не показано) могут включать в себя дополнительные, некоторые и/или другие компоненты/особенности по сравнению с изображенными, например, в примере варианта осуществления системы виртуального помощника, показанного на фиг.27.
Виртуальный помощник 1002 может включать в себя множество различных типов компонентов, устройств, модулей, процессов, систем и т.п., которые, например, можно реализовать и/или привести в качестве примера через использование аппаратных средств и/или комбинаций аппаратных средств и программного обеспечения. Например, как изображено в образцовом варианте осуществления (фиг.27), помощник 1002 может включать в себя один или более из следующих систем, компонентов, устройств, процессов или т.п. (или их комбинации):
- Одну или более активных антологий 1050;
- Компонент(ы) 2794 извлечения активного ввода (может включать в себя часть 2794а клиента и часть 2794b сервера);
- Компонент(ы) 2752 краткосрочной персональной памяти (может включать в себя мастер-версию 2752b и кэш-память 2752а);
- Компонент(ы) 2754 долгосрочной персональной памяти (может включать в себя мастер-версию 2754b и кэш-память 2754а; может включать в себя, например, персональные базы 1058 данных, предпочтение для приложений и история 1072 использования и т.п.);
- Компонент(ы) 2756 моделей предметной области;
- Компонент(ы) 2758 словаря (может включать в себя полный словарь 2758b и поднабор 2758а);
- Компонент(ы) 2760 распознавателя(лей) языковой структуры (может включать в себя полную библиотеку 2760b и поднабор 2760а);
- Компонент(ы) 2770 интерпретатора языка;
- База(ы) 2772 доменного объекта;
- Компонент(ы) 2780 процессора диалогового потока данных;
- Компонент(ы) 2782 оркестрации услуг;
- Компонент(ы) 2784 услуг;
- Компонент(ы) 2786 моделей потоков задач;
- Компонент(ы) 2787 моделей протекания диалогов;
- Компонент(ы) 2788 моделей услуг;
- Компонент(ы) 2790 процессора вывода.
В определенных вариантах осуществления, основанных на взаимодействии клиент/сервер, некоторые или все из этих компонентов можно распределить между клиентом 1304 и сервером 1340.
В одном варианте осуществления виртуальный помощник 1002 принимает ввод 2704 пользователя через любую подходящую модальность ввода, включающую в себя, например, ввод с помощью сенсорного экрана, ввод с помощью клавиатуры, устный ввод и/или любую их комбинацию. В одном варианте осуществления помощник 1002 также принимает контекстную информацию 1000, которая может включать в себя контекст 2706 события и/или любой из нескольких других типов контекста, которые были описаны более подробно здесь.
После обработки ввода 2704 пользователя и контекстной информации 1000 в соответствии с технологиями, описанными здесь, виртуальный помощник 1002 вырабатывает вывод 2708 для представления пользователю. Вывод 2708 можно выработать в соответствии с любой подходящей модальностью вывода, о которой можно информировать с помощью контекста 1000, а также с помощью других параметров, если это необходимо. Примеры выходных модальностей включают в себя визуальный вывод в качестве представленного на экране, слуховой вывод (который может включать в себя устный вывод и/или звуковые сигналы и другие звуки), тактильный вывод (такой как вибрация) и/или любую их комбинацию.
Дополнительные детали, которые относятся к работе различных компонентов, изображенных на фиг.27, представленные в родственной полноценной заявке на патент США порядковый номер 12/987982, озаглавленной "Intelligent Automated Assistant", поданной 10 января 2011 года, полное раскрытие которой включено здесь посредством вставки.
Контекст
Как описано выше, в одном варианте осуществления виртуальный помощник 1002 получает и применяет множество контекстуальной информации для выполнения функции обработки информации. В приведенном ниже описании изложено:
- Диапазон источников контекстной информации для использования виртуальным помощником 1002;
- Технология для представления, организации и поиска контекстной информации;
- Способы, с помощью которых контекстная информация может поддерживать работу нескольких функций виртуальных помощников; и
- Способы эффективного получения, доступа и применения контекстной информации в распределенной системе.
Специалистам в данной области техники будет очевидно, что следующее описание источников, технологий и способов использования контекстной информации является только образцовым и что другие источники, технологии и способы можно использовать без отклонения от существенных характеристик настоящего изобретения.
Источники контекста
Во всех фразах обработка информации, которая выполняется с помощью виртуального помощника 1002, можно использовать несколько различных видов контекста для уменьшения интерпретаций возможных вариантов ввода пользователя. Примеры включают в себя контекст приложений, контекст персональных данных и предысторию диалога. Специалистам в данной области техники будет очевидно, что могут также быть доступны другие источники контекста.
На фиг.1 показана блок-схема, изображающая виртуального помощника 1002 и некоторые примеры источников контекста, которые могут влиять на его работу, согласно одному варианту осуществления. Виртуальный помощник 1002 получает ввод пользователя 2704, такой как разговорный или широко используемый язык, обрабатывает ввод и вырабатывает вывод 2708 для пользователя и/или выполняет 2710 действие от имени пользователя. Можно оценить, что виртуальный помощник 1002, который изображен на фиг.1, является только одним примером из широкого диапазона вариантов осуществления систем виртуальных помощников, которые можно реализовать. Другие варианты осуществления систем виртуальных помощников (не показано) могут включать в себя дополнительные, некоторые и/или различные компоненты/особенности по сравнению с изображенными, например, в образцовом в виртуальном помощнике 1002, изображенном на фиг.1.
Как более подробно описано здесь, виртуальный помощник 1002 может использовать любой из ряда различных источников знаний и данных, таких как словари, модели предметной области и/или модели задач. С точки зрения настоящего изобретения такие источники, которые называются фоновыми источниками, являются внутренними по отношению к помощнику 1002. Помимо ввода пользователя 2704 и фоновых источников, виртуальный помощник 1002 может также извлекать информацию из нескольких источников контекста, включающих в себя, например, данные 1056 датчика устройства, предпочтения для приложений и историю 1072 использования, историю диалогов и память 1052 помощника, персональные базы 1058 данных, персональные звуковые контекстные данные 1080, контекст 1060 текущего приложения и контекст 2706 событий. Все они подробно будут описаны ниже.
Контекст 1060 приложения
Контекст 1060 для приложения относится к состоянию приложения или подобному программному обеспечению, в котором пользователь что-нибудь выполняет. Например, пользователь может использовать приложение обмена текстовыми сообщениями в чате с конкретным человеком. Виртуальному помощнику 1002 не нужна будет специфика или часть пользовательского интерфейса приложения обмена текстовыми сообщениями. Виртуальный помощник 1002 скорее сможет принимать контекст из любого количества приложений, причем каждое приложение вносит вклад в свой контекст для информирования виртуального помощника 1002.
Если пользователь в данный момент использует приложение, когда виртуальный помощник 1002 вызван, состояние этого приложения может предоставить полезную контекстную информацию. Например, если виртуальный помощник 1002 вызывается из приложения электронной почты, то информация о контексте может включать в себя информацию об отправителе, информацию о получателе, дату и/или время отправления, предмет, тему, данные, извлеченные из содержания электронной почты, имя почтового ящика или папки и т.п.
На фиг.11-13 показан набор снимков экрана, изображающих примеры использования контекста приложения в предметной области для обмена текстовыми сообщениями, для получения объект ссылки для местоимения, согласно одному варианту осуществления. На фиг.11 изображен экран 1150, который может отображать в то время, как пользователь находится в приложении обмена текстовыми сообщениями. На фиг.12 изображен экран 1250 после того, как виртуальный помощник 1002 был активирован в контексте приложения обмена текстовыми сообщениями. В этом примере виртуальный помощник 1002 предоставляет пользователю подсказку 1251. В одном варианте осуществления пользователь может обеспечить речевой ввод путем однократного постукивания по иконке 1252 микрофона. В другом варианте осуществления, помощник 1002 может принять речевой ввод в любое время и не требует от пользователя постукивания по иконке 1252 микрофона перед выполнением ввода; таким образом, иконка 1252 может напоминать о том, что помощник 1002 ожидает речевой ввод.
На фиг.13, как показано на экране 1253, пользователь приступил к диалогу с виртуальным помощником 1002. Речевой ввод пользователя "call him" ("вызвать его") отображается на экране, и виртуальный помощник 1002 отвечает, что он вызовет конкретного человека с конкретным телефонным номером. Для интерпретации неоднозначного ввода пользователя виртуальный помощник 1002 использует многочисленные источники контекста для получения объекта ссылки для местоимения, как более подробно описано здесь.
На фиг.17-20 показан другой пример использования контекста текущего приложения для интерпретации и операционализации команды, согласно одному варианту осуществления.
На фиг.17 пользователю показан свой почтовый ящик 1750 электронной почты, и он выбирает конкретное сообщение 1751 электронной почты для просмотра. На фиг.18 изображено сообщение 1751 электронной почты после того, как оно выбрано для просмотра; в этом примере, сообщение 1751 электронной почты включает в себя изображение.
На фиг.19 пользователь активировал виртуального помощника 1002 при просмотре сообщения 1751 электронной почты из приложения электронной почты. В одном варианте осуществления отображение сообщения 1751 электронной почты перемещается вверх по экрану, чтобы обеспечить место для подсказки 150 из виртуального помощника 1002. Это отображение усиливает представление о том, что виртуальный помощник 1002 предлагает помощь в контексте просматриваемого в данный момент сообщения 1751 электронной почты. Соответственно, ввод пользователя в виртуальном помощнике 1002 будет интерпретирован в виде текущего контекста, в котором просматривается сообщение 1751 электронной почты.
На фиг.20 пользователь выдает команду 2050: "Reply let's get this to marketing right away" ("Ответ на, давайте сразу разберемся с маркетингом"). Информация о контексте, включающая в себя информацию относительно сообщений 1751 электронной почты и приложения электронной почты, в котором оно отображается, используется для интерпретации команды 2050. Этот контекст можно использовать для определения значения слов "reply" ("ответ") и "this" ("этот") в команде 2050, и для решения относительно того, как устанавливать операцию состава электронной почты для конкретного получателя по конкретному смыслу сообщения. В этом случае, виртуальный помощник 1002 может получить доступ к информации о контексте для определения того, что "marketing" ("маркетинг") относится к получателю, которого зовут John Applecore (Джон Апликор), и может определить адрес электронной почты, который используется получателем. Соответственно, виртуальный помощник 1002 подготавливает электронную почту 2052 для пользователя для одобрения и отправления. Таким образом, виртуальный помощник 1002 может выполнить задачу (по составлению сообщения электронной почты) на основании ввода пользователя вместе с информацией о контексте, которая описывает состояние текущего приложения.
Контекст приложения может также оказать помощь при идентификации смысла намерения пользователя во всех приложениях. На фиг.21 показан пример, в котором пользователь активизировал виртуального помощника 1002 в контексте просмотра сообщения электронной почты (такого как сообщение 1751 электронной почты), но команда 2150 пользователя сообщает "Send him a text…" ("Отправить ему текст"). Команда 2150 интерпретируется виртуальным помощником 1002 в виде, показывающим, что текстовое сообщение, а не электронная почта, будет отправлено. Однако использование слова "him" ("его") показывает, что подразумевается тот же самый отправитель (John Appleseed). Таким образом, виртуальный помощник 1002 распознает, что процесс передачи информации должен проходить с этим отправителем, но по другому каналу (текстовое сообщение с телефонным номером человека, который получен из контактной информации, которая хранится в устройстве). Соответственно, виртуальный помощник 1002 составляет текстовое сообщение 2152 для пользователя для одобрения и отправления.
Примеры контекстной информации, которую можно получить из приложения(ий), включают в себя без ограничения:
- идентичность приложения;
- текущий объект или объекты, которые выполняются в приложении, таком как текущее сообщение электронной почты, текущее песня или список для воспроизведения или воспроизводимый канал, текущая книга, или фильм, или фотография, текущий день/неделя/месяц календаря, текущий список напоминаний, текущий телефонный вызов, текущий разговор, связанный с обменом текстовых сообщений, текущее местоположение на карте, текущая вэб-страница или запрос поиска, текущий город или другое местоположение для территориально-зависимых приложений, текущий профиль социальной сети или любое другое представление, ориентированное на конкретное приложение, текущих объектов;
- названия, места, даты и другие идентифицируемые объекты или значения, которые можно извлечь из текущих объектов.
Персональные базы 1058 данных
Другим источником контекстных данных является персональная база данных (персональные базы данных) 1058 пользователя, установленные на устройстве, таком как телефон, такие, например, как адресная книга, содержащая имена и телефонные номера. На фиг.14 показан пример снимка 1451 экрана, где виртуальный помощник 102 предоставляет подсказку для устранения неоднозначности имен, согласно одному варианту осуществления. В данном случае, пользователь сказал "Call Herb"; виртуальный помощник 1002 подсказывает пользователю выбрать среди совпадающих контактов в адресной книге пользователя. Таким образом, адресная книга используется в качестве источника контекста персональных данных.
В одном варианте осуществления персональную информацию о пользователе получают из персональных баз 1058 данных для использования в качестве контекста для интерпретации и/или операционализации намерения пользователя или других функций виртуального помощника 1002. Например, данные в базе данных контактов пользователя можно использовать для уменьшения неоднозначности при интерпретации команды пользователя, когда пользователь назвал кого-нибудь только по имени. Примеры контекстной информации, которые можно получить из персональных баз 1058 данных, включают в себя, без ограничения:
- база данных контактов пользователя (адресная книга) - включающая в себя информацию относительно имен, телефонных номеров, физических адресов, сетевых адресов, идентификаторы учетных записей, важные даты - относительно людей, компаний, организаций, мест, вэб-сайтов и других объектов, на которые пользователь мог бы сослаться;
- собственное полное имя пользователя, предпочтительные произношения, адреса, телефонные номера и т.п.;
- именованные связи пользователя, такие как мать, отец, сестра, начальник и т.п.;
- календарная дата пользователя, включающая в себя календарные события, названия особых дней или любые другие именованные объекты, на которые мог бы сослаться пользователь;
- напоминание пользователя или список задач, включающий в себя списки того, что необходимо выполнить, запомнить или выполнить то, на что пользователь мог бы сослаться;
- название песен, жанров, списки файлов для воспроизведения и другие данные, связанные с музыкальной библиотекой пользователя, на которую мог бы сослаться пользователь;
- люди, места, категории, метки, пометки или другие символические названия на фотографиях или видео или других медиа в библиотеке медиапользователя;
- надписи, авторы, жанры или другие символические названия в книгах или другой литературе в персональной библиотеке пользователя.
История 1052 диалогов
Другой источник контекстных данных представляет собой историю 1052 диалогов пользователя с виртуальным помощником 1002. Такая история может включать в себя, например, ссылки на предметные области, людей, места и т.д. На фиг.15 показан пример, в котором виртуальный помощник 1002 использует контекст диалога для того, чтобы сделать вывод относительно местоположения для команды, согласно одному варианту осуществления. На экране 1551, пользователь сначала спрашивает "What's the time in New York" ("Какое время в Нью-Йорке"), виртуальный помощник 1002 реагирует 1552 посредством предоставления текущего времени в городе Нью-Йорк. Пользователь затем спрашивает "What's the weather" ("Какая погода"). Виртуальный помощник 1002 использует предыдущую историю диалогов для того, чтобы сделать вывод относительно того, что местоположение, которое предназначено для запроса погоды, представляет собой последнее местоположение, упомянутое в истории диалогов. Поэтому его ответ 1553 предусматривает информацию о погоде для города Нью-Йорк.
В качестве другого примера, если пользователь говорит "find camera shops near here" ("найти поблизости магазины, где продаются фотоаппараты") и затем, после проверки результатов, говорит "how about in San Francisco?" ("как насчет Сан Франциско?"), помощник может использовать контекст диалога для определения того "how about" ("как насчет") означает "do the same task (find camera stores)" ("выполнить ту же самую задачу (найти универмаги, где продаются фотоаппараты") и "in San Francisco" ("в Сан Франциско") означает "changing the locus of the search from here to San Francisco" ("изменение местоположения поиска от поблизости до Сан Франциско"). Виртуальный помощник 1002 может также использовать, в качестве контекста, предыдущие подробности диалога, такие как предыдущий вывод, предоставленный пользователю. Например, если виртуальный помощник 1002, который использовал умный ответ, предназначенного в качестве юмора, такой как "Sure thing, you're the boss" ("Понятное дело, ты хозяин"), то можно вспомнить, что он уже говорил это, и можно избежать повторения фразы в пределах сеанса диалога.
Примеры контекстной информации из истории диалога и памяти виртуального помощника включают в себя без ограничения:
- людей, упомянутых в диалоге;
- места и местоположения, упомянутые в диалоге;
- текущий период времени в центре внимания;
- предметная область текущего приложения в центре внимания, такого как электронная почта или календарь;
- текущая задача в центре внимания, такая как чтение электронной почты или создание ввода календаря;
- объекты текущей предметной области, находящейся в центре внимания, такие как сообщение электронной почты, которое было только что прочитано, или ввод календаря, который был только что создан;
- текущее состояние диалога или транзакционный поток, такой как, задан ли вопрос, и какие возможные ответы ожидаются;
- история пользовательских запросов, таких как "good Italian restaurants" ("хорошие итальянские рестораны");
- история результатов пользовательских запросов, таких как набор нерекомендуемых ресторанов;
- история фраз, которые использовались помощником во время диалога;
- факты относительно того, что пользователь сказал помощнику, например, "my mother is Rebecca Richards" ("моя мать Ребекка Ричардс") и "I liked that restaurant" ("Мне понравился этот ресторан").
На фиг.25a и 25b показан ряд снимков экрана, изображающих пример использования контекста предыдущего диалога, согласно одному варианту осуществления, на фиг.25 пользователь ввел запрос 2550 для получения нового сообщения электронной почты от Джона, виртуальный помощник 1002 реагирует путем отображения сообщения 2551 электронной почты от Джона. На фиг.25b пользователь вводит команду 2552 "Reply let's get this to marketing right away" ("Ответ, давайте сразу перейдем к маркетингу"). Виртуальный помощник 1002 интерпретирует команду 2552, используя контекст предыдущего диалога; в частности, команда интерпретируется как ссылка на сообщение 2551 электронной почты, изображенное на фиг.25.
Данные 1056 датчика устройства
В одном варианте осуществления физическое устройство, запускающее виртуальный помощник 1002, может иметь один или более датчиков. Такие датчики могут предусматривать источники контекстуальной информации. Пример такой информации включает в себя без ограничения:
- текущее местоположение пользователя;
- местное время в текущем местоположении пользователя;
- положение, ориентация и перемещение устройства;
- уровень текущего освещения, температура и другие единицы измерения окружающей среды;
- свойства микрофонов и камер, находящихся в использовании;
- текущие используемые сети и сигнатуры подсоединенных сетей, включая Ethernet, Wi-Fi и Bluetooth; Сигнатуры включают в себя МАС-адреса точек доступа к сети, назначенные IP-адреса, идентификаторы устройств, такие как имена Bluetooth, частотные каналы и другие свойства беспроводных сетей.
Датчики могут представлять собой любой тип, включающий в себя, например: акселерометр, компас, модуль GPS, датчик высоты, датчик света, термометр, барометр, часы, цифровой интерфейс, схему тестирования аккумулятора и т.п.
История 1072 предпочтений и использования приложения
В одном варианте осуществления информация, описывающая предпочтения установки пользователя для различных приложений, а также его или ее историю 1072, используется в качестве контекста для интерпретации и/или операционализации намерения пользователя или других функций виртуального помощника 1002. Примеры таких предпочтений и истории 1072 включают в себя без ограничения:
- ярлыки, избранное, закладки, списки друзей или любые другие коллекции пользовательских данных о людях, компаниях, адресах, телефонных номерах, местах, вэб-сайтах, сообщений электронной почты или любых других ссылок;
- последние вызовы, выполненные на этом устройстве;
- последние диалоги на основе текстовых сообщений, включающих в себя участников беседы;
- последние запросы для карт или направлений;
- последние вэб-поиски и URL;
- акции, перечисленных в приложениях акций;
- последние песни и видео и другие воспроизведенные медиа;
- названия сигналов, установленных на приложениях, связанных с подачей сигнала;
- названия приложения или другие цифровые объекты на устройство;
- предпочтительный язык пользователя или язык, используемый в местоположении пользователя.
На фиг.16 показан пример использования списка избранных телефонов в качестве источника контекста согласно одному варианту осуществления. На экране 1650 показан список избранных контактов 1651. Если пользователь выполняет ввод "call John" ("вызвать Джона"), этот список избранных контактов 1651 можно использовать для определения того, что "John" ("Джон") относится к номеру мобильного телефона Джона Аплисида (John Appleseed), поскольку этот номер появляется в списке.
Контекст 2706 событий
В одном варианте осуществления виртуальный помощник 1002 может использовать контекст, связанный с асинхронными событиями, которые происходят независимо от взаимодействия пользователя с виртуальным помощником 1002. На фиг.22-24 показан пример, иллюстрирующий активизацию виртуального помощника 1002 после того, как происходит событие, которое может предусматривать контекст события или контекст предупредительного сигнала, согласно одному варианту осуществления. В этом случае, событие представляет собой входящее текстовое сообщение 2250, которое показано на фиг.22. На фиг.23 вызван виртуальный помощник 1002, и текстовое сообщение 2250 показано наряду с подсказкой 1251. На фиг.24 пользователь ввел команду "call him" 2450 ("вызвать его" 2450). Виртуальный помощник 1002 использует контекст события для разрешения неоднозначности команды с помощью интерпретации "him" ("ему"), что подразумевает человека, который отправил входящее текстовое сообщение 2250. Виртуальный помощник 1002 дополнительно использует контекст события для определения, какой телефонный номер необходимо использовать для исходящего вызова. Сообщение 2451 подтверждения используется для того, чтобы показать, что выполняется вызов.
Примеры информации о контексте предупредительного сигнала включают в себя без ограничения:
- входящие текстовые сообщения или страницы;
- входящие сообщения электронной почты;
- входящие телефонные вызовы;
- уведомление с напоминанием или предупредительные сигналы задач;
- предупредительные сигналы календаря (будильник, таймеры или другие предупредительные сигналы, основанные на времени);
- уведомление о счете или других событиях, касающееся игр;
- уведомление о финансовых событиях, таких как предупредительные сигналы о цене акций;
- срочные выпуски новостей или другие уведомления о широковещании;
- мгновенные уведомления из любого приложения.
Персональные данные 1080 акустического контекста
При интерпретации речевого ввода виртуальный помощник 1002 может также учитывать уровни шумового фона, при которых вводится речь. Например, профили шума в тихом офисе отличаются от таковых в автомобилях или общественных местах. Если система распознавания речи может идентифицировать и сохранять данные акустического профиля, то эти данные можно также предусмотреть в виде контекстуальной информации. При объединении с другой контекстуальной информацией, такой как свойства микрофонов во время использования, текущее местоположение и текущее состояние диалога, акустический контекст может оказать помощь при распознавании и интерпретации ввода.
Представление и доступ к контексту
Как описано выше, виртуальный помощник 1002 может использовать информацию о контексте из любого числа различных источников. Любое число различных механизмов можно использовать для предоставления контекста таким образом, чтобы его можно было сделать доступным в виртуальном помощнике 1002. На фиг.8а - 8d показано несколько примеров представлений информации о контексте, когда ее можно использовать совместно с различными вариантами осуществления настоящего изобретения.
Представление людей, мест, периодов времени, предметных областей, задач и объектов
На фиг.8а изображены примеры 801-809 переменных контекстов, которые представляют простые свойства, такие как географические координаты текущего местоположения пользователя. В одном варианте осуществления текущее значение можно поддерживать для базового набора переменных контекста. Например, они могут представлять собой текущего пользователя, текущее местоположение в центре внимания, текущий интервал времени, находящийся в центре внимания, текущая предметная область приложения, находящаяся в центре внимания, текущая задача, находящаяся в центре внимания, и текущий объект предметной области, находящийся в центре внимания. Структуру данных, например, такую, которая показана на фиг.8а, можно использовать для такого представления.
На фиг.8b изображен пример 850 более сложного представления, которое можно использовать для хранения информации о контексте для контакта. В качестве примера 851 также показано представление, включающее в себя данные для контакта. В одном варианте осуществления контакт (или человека) можно представить в виде объекта со свойствами для имени, жанра, адреса, телефонного номера и других свойств, которые можно было бы сохранить в базе данных контактов. Подобные представления можно использовать для мест, периодов времени, предметных областей приложения, задач, объектов предметной области и т.п.
В одном варианте осуществления представлены наборы текущих значений заданного типа. Такие наборы могут относиться к текущим людям, текущим места, текущим периодам времени и т.п.
В одном варианте осуществления значения контекстов размещаются в виде истории таким образом, чтобы итерация N имела кадр текущих значений контекстов, а также кадр значений контекстов, которые были текущими в итерации N-1, которые возвращаются в прежнее состояние с некоторым ограничением по продолжительности требуемой истории. На фиг.8с изображен пример матрицы 811, которая включает в себя историю значений контекстов. В частности, каждый столбец на фиг.8с представляет собой переменную контекста, при этом строки соответствуют различным периодам времени.
В одном варианте осуществления наборы переменных типовых контекстов размещаются в историях, которые показаны на фиг.8d. В примере показан набор 861 переменных контекстов, которые относятся к людям, наряду с другим набором 871 переменных контекстов, которые относятся к местам. Таким образом, релевантные контекстные данные для конкретного периода времени в истории можно извлечь и применить.
Специалисты в данной области техники могут распознать, что конкретное представление, показанное на фиг.8а - 8d, является только образцовыми и что можно использовать многочисленные другие механизмы и/или форматы данных, представляющих собой контекст. Примеры включают в себя:
- В одном варианте осуществления текущего пользователя системы можно представить некоторым специальным образом, таким образом, чтобы виртуальный помощник 1002 знал о том, как обращаться к пользователю и делать ссылку на дом, работу, мобильный телефон пользователя и т.п.
- В одном варианте осуществления можно представить связи среди людей, которые позволяют виртуальному помощнику 1002 понимать ссылки, такие как "ту mother" ("моя мать") или "my boss's house" ("дом моего начальника").
- Места можно представить в виде объектов со свойствами, такими как имена, адреса, названия улиц, географические координаты и т.п.
- Периоды времени можно представить в виде объектов со свойствами, включающими в себя всемирное время, сдвиг часового пояса, дискретность (такая как год, месяц, день, минуты или секунда). Объекты времени могут также представлять символические периоды времени, такие как "today" ("сегодня"), "this week" ("на этой неделе"), "this [upcoming] weekend" ("в эти [предстоящие] выходные"), "next week" ("на следующей неделе"), "Annie's birthday" ("день рождения Анны") и т.п. Объекты времени могут также представлять периоды или моменты времени.
- Контекст можно также выполнить исходя из предметной области приложения, представляющей собой услугу, или приложения или предметную область речевого диалога, такого как электронная почта, обмен текстовыми сообщениями, телефон, календарь, контакты, фотографии, видео, карты, погода, напоминание, часы, вэб-браузер, фейсбук, Пандора и т.п. Текущая предметная область показывает, какая из этих предметных областей находится в центре внимания.
- Контекст может определять одну или более задач, или операций для выполнения в пределах предметной области. Например, в пределах предметной области электронной почты существуют задачи, такие как чтение сообщения электронной почты, поиск электронной почты, написание нового сообщения электронной почты и т.п.
- Объекты предметной области представляют собой объекты данных, связанные с различными предметными областями. Например, предметная область электронной почты оперирует с сообщениями электронной почты, предметная область календаря оперирует с календарными событиями и т.п.
Для целей описания, представленного здесь, эти представления контекстуальной информации называются переменными контекста заданного типа. Например, представление текущего пользователя представляет собой переменную контекста типа Человек.
Представление производной от контекста
В одном варианте осуществления производная от переменных контекста представлена в явном виде, поэтому ее можно использовать при обработке информации. Производная информации о контексте представляет собой характеристику источника и/или набора выводов, которые делают для того, чтобы получить заключение или извлечь информацию. Например, значение 851 контекста Человек, которое изображено на фиг.8b, может быть получено из объекта предметной области текстового сообщения, которое было получено из контекста 2706 события. Можно представить этот источник значения 851 контекста.
Представление истории запросов и намерений пользователя
В одном варианте осуществления можно хранить историю запросов пользователя. В одном варианте осуществления историю представления с глубинной структурой намерения пользователя (которая получена из обработки естественного языка) можно также хранить. Это позволяет виртуальному помощнику 1002 понимать смысл новых вводов в контексте ранее интерпретированного ввода. Например, если пользователь спрашивает "what is the weather in New York?" ("Какая погода в Нью-Йорке?"), интерпретатор 2770 языка может интерпретировать вопрос, как относящийся к местоположению Нью-Йорка. Если пользователь затем говорит "what is it for this weekend?" ("что произошло на этой неделе?"), виртуальный помощник 1002 может сослаться на эту предыдущую интерпретацию для того, чтобы определить, что "what is it" ("что произошло?") следует интерпретировать, имея ввиду "what is the weather" ("какая погода").
Представление истории результатов
В одном варианте осуществления можно сохранить историю результатов запросов пользователя в форме объектов предметной области. Например, запрос пользователя "find me some good Italian restaurants" ("найдите мне некоторые хорошие итальянские рестораны") может возвращаться к набору объектов предметной области, представляющих собой рестораны. Если пользователь затем вводит команду, такую как "call Amilio's" ("вызвать Эмилио"), виртуальный помощник 1002 может отыскать результаты для ресторанов с названием Amilio's (Эмилио) в пределах результатов поиска, которые представляют собой меньший набора по сравнению со всеми возможными местами, которые можно было бы назвать.
Отсроченное связывание переменных контекста
В одном варианте осуществления переменные контекста могут представлять собой информацию, которая извлекается и получается по требованию. Например, переменная контекста, представляющая собой текущее местоположение, когда оно доступно, может запустить API, которая извлекает текущие данные о местоположении из устройства и затем выполняет другую обработку для вычисления, например, названия улицы. Значение того, что переменную контекста можно поддерживать в течение некоторого периода времени, зависит от кэширования политики.
Поиск контекста
Виртуальный помощник 1002 может использовать любое число различных подходов для отыскания релевантной контекстной информации для решения проблем обработки информации. Пример различных типов поиска включает в себя без ограничения:
- Поиск по имени переменной контекста. Если имя требуемой переменной контекста известно, такое как "current user first name" ("первое имя текущего пользователя"), виртуальный помощник 1002 может отыскать примеры этому. Если история сохранена, виртуальный помощник 1002 может сначала отыскать текущее значение и затем принять во внимание более ранние данные до тех пор, пока не будет найдено совпадение.
- Поиск по типу переменной контекста. Если тип требуемой переменной контекста известен, такой как Человек, виртуальный помощник 1002 может отыскать примеры переменных контекста этого типа. Если история сохранена, то виртуальный помощник 1002 может сначала отыскать текущее значение и затем принять во внимание более ранние данные до тех пор, пока не будет найдено совпадение.
В одном варианте осуществления, если проблема обработки информации требует единственного совпадения, поиск завершается сразу после нахождения совпадения. Если разрешены многочисленные совпадения, то результаты совпадений можно извлечь в порядке до тех пор, пока не будет достигнут некоторый предел.
В одном варианте осуществления, по мере необходимости, виртуальный помощник 1002 может ограничить свой поиск до данных, имеющих определенное происхождение. Например, если ищут объекты Люди в пределах потока задач для электронной почты, виртуальный помощник 1002 может только рассматривать переменные контекста, чье происхождение представляет собой приложение, связанное с этой предметной областью.
В одном варианте осуществления виртуальный помощник 1002 использует правило для ранжирования совпадений согласно эвристическим правилам, использующим любые имеющиеся в наличие свойства переменных контекста. Например, при обработке ввода пользователя, включающего в себя команду "tell her I'll be late" ("передать ей, что я задерживаюсь"), виртуальный помощник 1002 интерпретирует "her" ("ее") посредством ссылки на контекст. Выполняя это таким образом, виртуальный помощник 1002 может применить ранжирование для того, чтобы показать предпочтение для объектов Люди, происхождение которых представляет собой истории использования приложений для приложений связи, таких как обмен текстовыми сообщениями и электронной почты. В качестве другого примера, при интерпретации команды "call her" ("вызвать ее"), виртуальный помощник 1002 может применить ранжирование для оказания предпочтения объектам Люди, которые имеют телефонные номера сверх тех, чьи телефонные номера не известны. В одном варианте осуществления, правила ранжирования могут быть связаны с предметными областями. Например, различные правила ранжирования можно использовать для ранжирования переменных Человек для предметных областей Электронной почты и Телефон. Специалисты в данной области техники могут распознать, что любое такое правило(а) ранжирования можно создать и/или применить в зависимости от конкретного представления и доступа необходимой контекстной информации.
Использование контекста для улучшения обработки виртуального помощника.
Как описано выше, контекст можно применить во множестве вычислений и логических выводов в связи с работой виртуального помощника 1002. На фиг.2 показана схема последовательности операций, изображающая способ 10 использования контекста на различных стадиях обработки в виртуальном помощнике 1002, согласно одному варианту осуществления.
Способ 10 можно реализовать в связи с одним или более вариантами осуществления виртуального помощника 1002.
По меньшей мере, в одном варианте осуществления, способ 10 позволяет выполнить и/или реализовать различные типы функций, операций, действий и/или других особенностей, таких, например, как одно или более из следующего (или их комбинаций):
- Выполняют цикл последовательности операций управления интерфейсом диалогового интерфейса между пользователем и виртуальным помощником 1002. По меньшей мере, одна итерация способа 10 может служить в качестве слоя в диалоге. Диалоговый интерфейс представляет собой интерфейс, в котором пользователи и помощник 1002 общаются путем создания взаимного произношения в разговорной манере.
- Обеспечивают исполнительную последовательность операций управления виртуального помощника 1002. То есть процедура управляет сбором ввода, обработкой ввода, выработкой вывода и представлением вывода пользователю. Координатная связь среди компонентов виртуального помощника 1002. То есть, ее можно направить туда, где вывод одного компонента подается в другой и где может происходить полный ввод из среды и действие на среде.
По меньшей мере, в некоторых вариантах осуществления, части способа 10 можно также реализовать в других устройствах и/или системах компьютерной сети.
Согласно специфическим вариантам осуществления многочисленные этапы и/или последовательности операций способа 10 можно реализовать параллельно и/или инициировать посредством использования одного или более процессоров 63 и/или других комбинаций программных средств и/или аппаратных средств и программного обеспечения. По меньшей мере, в одном варианте осуществления, одна или более из выбранных частей способа 10 можно реализовать в одном или более клиентах 1304, в одном или более серверах 1340 и/или их комбинациях.
Например, по меньшей мере, в некоторых вариантах осуществления, различные аспекты, особенности и/или функциональные возможности способа 10 можно выполнить, реализовать и/или инициировать с помощью компонентов программного обеспечения, сетевых услуг, баз данных и/или т.п., или любой их комбинации.
Согласно другим вариантам осуществления одно или более различные последовательности операций или этапов способа 10 можно инициировать в ответ на обнаружение одного или более условий или событий, удовлетворяющих одному или более различным типам критериев, таких как, например, критерий минимального порога для запуска инициирования, по меньшей мере, одного этапа способа 10. Примеры различных типов комбинаций или событий, которые могут запустить инициирование и/или реализацию одной или более различных последовательностей операций или этапов способа, могут включать в себя, но не ограничиваются, одно или более из следующего (или их комбинацию):
- сеанс пользователя с этапом виртуального помощника 1002, такого, например, как, но не ограниченного, одним или более из:
- приложения мобильного устройства, запускающего, например, приложения мобильного устройства, которое реализует вариант осуществления виртуального помощника 1002;
- компьютерного приложения, запускающего, например, приложения, которые позволяют реализовать вариант осуществления виртуального помощника 1002;
- выделенной кнопки на мобильном устройстве, которая нажимается, как, например, "кнопка ввода речи";
- кнопки на периферийном устройстве, прикрепленном к компьютеру или мобильному устройству, такому как наушники, телефонные наушники или базовая станция GPS навигационная система, бытовой прибор, пульт дистанционного управления или любое другое устройство с кнопкой, которая может быть связана с запуском помощника;
- вэб-сеанса, который начинается от вэб-браузера до вэб-сайта, реализующего виртуальный помощник 1002;
- взаимодействия, которые начинаются из существующего сеанса вэб-браузера до вэб-сайта, реализующего виртуальный помощник 1002, в котором требуется услуга виртуального помощника 1002;
- сообщения электронной почты, отправленного в сервер 1426 модальности, который обеспечивает промежуточную связь с вариантом осуществления виртуального помощника 1002;
- текстовое сообщение отправляется в сервер 1426 модальности, которое обеспечивает промежуточную связь с вариантом осуществления виртуального помощника 1002;
- телефонный вызов выполняется в сервере 1434 модальности, который представляет собой промежуточную связь с вариантом осуществления виртуального помощника 1002;
- событие, такое как предупредительный сигнал или уведомление, отправляется в приложение, которое предусматривает вариант осуществления виртуального помощника 1002.
- Когда устройство, которое предусматривает виртуальный помощник 1002, включается и/или запускается.
Согласно другим варианта осуществления одну или более различных последовательностей операций или этапов способа 10 можно инициировать и/или реализовать вручную, автоматически, статически, динамически, параллельно и/или их комбинациями. Кроме того, различные этапы и/или вариантов осуществления способа 10 можно инициировать в одном или более различных интервалах времени (например, во время специфического временного интервала), в одинаковых периодических интервалах, в неодинаковых периодических интервалах, по требованию или т.п.
По меньшей мере, в одном варианте осуществления, данный этап способа 10 может использовать и/или вырабатывать различные другие типы данных и/или другие типы информации, при выполнении специфических задач и/или операций, включающих в себя контекстные данные, как описано здесь. Данные могут также включать в себя любой другой тип входных данных/информации и/или выходных данных/информации. Например, по меньшей мере, в одном варианте осуществления, мо меньшей мере, один этап способа 10 может выполнять доступ, обработку и/или иначе использовать информацию из одного или более различных типов источников, таких, например, как один или более базы данных. По меньшей мере, в одном варианте осуществления, по меньшей мере, к части информации базы данных можно получить доступ через связь с одним или более локальным/или удаленными устройствами памяти. Кроме того, по меньшей мере, один этап способа 10 позволяет выработать один или более различных типов выходных данных/информации, которые, например, могут храниться в локальной памяти и/или удаленных устройствах памяти.
По меньшей мере, в одном варианте осуществления, первоначальную конфигурацию данного этапа способа 10 можно выполнить с использованием одного или более различных типов параметров инициализации. По меньшей мере, в одном варианте осуществления, по меньшей мере, к части параметров инициализации можно получить доступ через связь с одним или более локальных и/или удаленных запоминающих устройств. По меньшей мере, в одном варианте осуществления, по меньшей мере, часть параметров инициализации, предусмотренных на этапе способа, может соответствовать и/или можно получить из входных данных/информации.
В конкретном примере (фиг.2) предполагается, что один пользователь имеет доступ к образцу виртуального помощника 1002 по сети из клиент-приложения с возможностью ввода речи.
Ввод речи вызывается и интерпретируется 100. Извлечение может включать в себя предоставление подсказок в любом подходящем режиме. В различных вариантах осуществления пользовательский интерфейс клиента предлагает несколько режимов ввода. Они могут включать в себя, например:
- интерфейс для типичного ввода, который позволяет запускать процедуру извлечения ввода активного типа;
- интерфейс для ввода речи, который запускать процедуру извлечения активного ввода речи.
- интерфейс для выбора вводов из меню, который может запускать извлечение ввода на основе активного GUI.
Технологии для выполнения каждого из этих способов описаны в вышеупомянутых родственных заявках на патенты. Специалисты в данной области техники могут распознать, что можно выполнить другие режимы ввода. Вывод этапа 100 представляет собой установку интерпретаций 190 возможных вариантов входной речи.
Набор интерпретаций 190 возможных вариантов обрабатывается 200 с помощью интерпретатора 2770 языка (который также называется процессором естественного языка или NLP), который производит анализ ввода текста и вырабатывает набор интерпретаций возможных вариантов намерения 290 пользователя.
На этапе 300 представление(я) намерения 290 пользователя подаются в процессор 2780 диалогового потока данных, который реализует вариант осуществления процедуры анализа диалога и потока, как описано со ссылкой на фиг.5. Процессор 2780 диалогового потока данных определяет, какая интерпретация намерения наиболее вероятна, отображает эту интерпретацию в примеры моделей предметных областей и параметров модели задачи и определяет следующий этап последовательности операций в потоке задач.
На этапе 400 выполняется этап идентифицированного потока. В одном варианте осуществления вызов этапа последовательности операций выполняется с помощью компонента 2782 оркестрации услуг, который вызывает набор услуг от имени запроса пользователя. В одном варианте осуществления эти услуги вносят вклад в некоторые данные для получения общего результата.
На этапе 500 вырабатывается ответ в ходе диалога. На этапе 700 ответ отправляется в клиент-устройство для вывода на нем. Программное обеспечение клиента на устройстве воспроизводит его на экране (или на другом выходном устройстве) клиент-устройства.
Если, после просмотра ответа, пользователь выполнил этап 790, способ завершается. Если пользователь не выполнил это, другая итерация цикла инициируется путем возврата на этап 100.
Контекстную информацию 1000 можно использовать с помощью различных компонентов системы в различных точках способа 100. Например, как изображено на фиг.2, контекст 1000 можно использовать на этапах 100, 200, 300 и 500. Дополнительное описание использования контекста 1000 на этих этапах представлено ниже. Специалисты в данной области техники могут распознать, однако, что использование контекстной информации не ограничено этими специфическими этапами и что система может использовать контекстную информацию также в других точках без отклонения от существенных характеристик настоящего изобретения.
Помимо этого, специалистам в данной области техники очевидно, что различные варианты осуществления способа 10 могут включать в себя дополнительные особенности или операции по сравнению с теми, которые изображены в специфическом варианте осуществления, изображенном на фиг.2, и/или могут опустить, по меньшей мере, часть особенностей и/или операций способа 10, который иллюстрирован специфическим вариантом осуществления, изображенным на фиг.2.
Использование контекста при извлечении и интерпретации речи
На фиг.3 показана схема последовательности операций, изображающая способ использования контекста при извлечении и интерпретации 100 речи для того, чтобы улучшить распознавание речи, согласно одному варианту осуществления. Контекст 1000 можно использовать, например, для устранения неоднозначности при распознавании речи для того, чтобы направить выработку, ранжирование и фильтрацию возможных гипотез, чтобы фонемы совпадали со словами. Различные системы распознавания речи используют различные сочетания выработки, ранжирования и фильтрации, но контекст 1000 можно применять, в общем, для уменьшения объема пространства гипотезы на любой стадии.
Способ начинается на этапе 100. Помощник 1002 принимает на этапе 121 голос или речь, которая вводится в форме звукового сигнала. Служба 122 или процессор преобразования речи в текст вырабатывает набор возможной интерпретации 124 текста звукового сигнала. В одном варианте осуществления служба 122 преобразования речи в текст реализована с использованием, например, распознавателя нюанса (Nuance Recognizer), доступного из компании "Nuance Communications, Inc. of Burlington, Massachusetts".
В одном варианте осуществления помощник 1002 использует модели 1029 статистического языка для выработки интерпретаций 124 возможных вариантов текста ввода 121 речи. В одном варианте осуществления контекст 1000 применяется для смещения выработки, фильтрации и/или ранжирования интерпретаций 124 возможных вариантов, выработанных с помощью службы 122 преобразования речи в текст. Например:
- Служба 122 преобразования речи в текст может использовать словарь из пользовательской персональной базы (баз) 1058 данных для смещения статистических моделей 1029 языка.
- Служба 122 преобразования речи в текст может использовать контекст состояния диалога для выбора специализированной статистической модели 1029 языка. Например, когда задают вопрос да/нет, статистическая модель 1029 языка может выбрать эти смещения в направлении слышимости этих слов.
- Служба 122 преобразования речи в текст может использовать контекст текущего приложения для смещения в направлении релевантных слов. Например, "call her" ("вызвать ее") может быть предпочтительно по сравнению "collar" в контексте приложения текстового сообщения, поскольку такой контекст обеспечивает Объекты Человека, который можно вызвать.
Например, данный ввод речи может привести к службе 122 преобразования речи в текст для выработки интерпретаций "call her" и "collar". Направленную с помощью статистических моделей (SLM) 1029 языка, службу 122 преобразования речи в текст можно настроить с помощью грамматических ограничений для того, чтобы слышать имена после того, как она слышит "call". Службу 122 преобразования речи в текст можно также настроить на основании контекста 1000. Например, если "Herb" представляет собой первое имя в адресной книге пользователя, то этот контекст можно использовать для уменьшения порога рассмотрения "Herb" в качестве интерпретации второго слога. То есть, наличие имен в контексте персональных данных пользователя может влиять на выбор и настройку статистической модели 1029 языка, которая используется для выработки гипотез. Имя "Herb" может быть частью обычной SLM 1029 или ее можно непосредственно добавить с помощью контекста 1000. В одном варианте осуществления, ее можно добавить в качестве дополнительной SLM 1029, которая настраивается на основании контекста 1000. В одном варианте осуществления, она может представлять собой настройку существующей SLM 1029, которая настраивается на основании контекста 1000.
В одном варианте осуществления статистические модели 1029 языка также настраиваются для того, чтобы отыскивать слова, имена и фразы из истории 1072 предпочтений и использования приложения и/или персональных баз 1058 данных, которые можно хранить в долгосрочной персональной памяти 2754. Например, статистические модели 1029 языка могут выдать текст из элементов что делать, элементов списка, персональных отметок, календарных вводов, имен людей в контактах, адресных книгах, адресов электронной почты, названий улиц и городов, упомянутых в контактах, адресных книгах и т.п.
Компонент ранжирования анализирует интерпретации 124 возможных вариантов и ранжирует 126 их согласно тому, как хорошо они будут соответствовать синтаксической и/или семантической моделям виртуального помощника 1002. Можно использовать любые источники ограничений на ввод пользователя. Например, в одном варианте осуществления, помощник 1002 может ранжировать выход интерпретатора речь-текст, согласно тому, как хорошо интерпретации анализируются в синтаксическом и/или семантическом смысле, модель предметной области, модель потока задач и/или модель протекания диалога и/или т.п. Она оценивает то, как хорошо различные комбинации слов в интерпретациях 124 возможных вариантов будут подходить к концепциям, связям, объектам и свойствам активной онтологии и ее связанным моделям, как описано в вышеупомянутых родственных полноценных заявках на патенты США.
На ранжирование 126 интерпретаций возможных вариантов может также влиять контекст 1000. Например, если пользователь в текущий момент времени ведет разговор в приложении обмена текстовыми сообщениями, когда виртуальный помощник 1002 активизирован, фраза "call her" является более вероятной для правильной интерпретации, чем слово "collar", так как существует потенциальное слово "her" для вызова в этом контексте. Такое смещение можно достигнуть путем настройки ранжирования гипотезы 126 в пользу фраз, таких как "call her" ("вызвать ее") или "call <contact name>" ("вызвать <имя контакта>"), когда контекст текущего приложения показывает приложение, которое может обеспечить "callable entities" ("вызываемые объекты").
В различных вариантах осуществления алгоритмы и процедуры, используемые помощником 1000 для интерпретации вводов текста и включающее в себя любой вариант осуществления процедуры обработки естественного языка, показанной на фиг.3, можно использовать для ранжирования и оценки интерпретаций 124 возможных вариантов текста, выработанных с помощью службы 122 преобразования речи в текст.
Контекст 1000 можно также использовать для фильтрации интерпретаций 124 возможных вариантов текста вместо или в дополнение к ограничению выработки их или влияние на их ранжирование. Например, правило фильтрации может предписывать, что контекст входа в адресную книгу для "Herb "достаточно показывать, что фраза, содержащая это, должна рассматриваться как возможный вариант 130 высокого уровня, даже в случае, если будет в противном случае ниже порога фильтрации. В зависимости от конкретной используемой технологии распознавания речи ограничения, основанные на ситуативных предубеждениях, можно применить на стадиях выработки, ранжирования и/или фильтрации.
В одном варианте осуществления, если компонент 126 ранжирования определяет 128, что интерпретация речи с самым высоким рангом из интерпретаций 124 ранжирует выше заданного порога, то можно выбрать 130 интерпретацию с самым высоким рангом. Если интерпретация не ранжируется выше заданного порога, то возможная интерпретация речи 134 представляется 132 пользователю. Пользователь может затем сделать выбор 136 среди отображаемых вариантов выбора.
На фиг.26a и 26b показаны снимки экрана, изображающие пример интерфейса пользователя для выбора среди интерпретаций возможных вариантов, согласно одному варианту осуществления. На фиг.26 показано представление речи пользователя с интерпретацией 2651 неоднозначности, подчеркнутой точками. Если пользователь постукивает по тексту, то появляются альтернативные интерпретации 2652А, 2652В, которые изображены на фиг.26b. В одном варианте осуществления, контекст 1000 может влиять на то, какая из интерпретаций 2652А, 2652 В возможных вариантов является предпочтительной интерпретацией (которая показана в качестве исходной интерпретации по умолчанию), как показано на фиг.26a, и также на выбор конечного множества альтернатив для представления, показанного на фиг.26b.
В различных вариантах осуществления выбор 136 пользователя среди отображаемых выборов можно выполнить с помощью любого режима ввода, включая, например, многомодальный ввод. Такие режимы ввода включают в себя, без ограничений, активно вызываемый типичный ввод, активно вызываемый речевой ввод, активно представленный GUI для ввода и/или т.п. В одном варианте осуществления пользователь может выбрать среди интерпретаций 124 возможных вариантов, например, путем постукивания или разговора. В случае разговора, возможная интерпретация нового ввода речи с высокой степенью ограничивается маленьким набором предлагаемых 134 результатов выбора.
Является ли ввод автоматически выбранным 134 или выбранным 136 пользователем, полученная в результате одна или более интерпретаций 190 текста возвращаются. По меньшей мере, в одном варианте осуществления, возвращенный ввод аннотируется таким образом, чтобы информация относительно того, какой выбор был сделан на этапе 136, сохранялась наряду с текстовым входом. Это позволяет, например, связать семантические концепции или объекты, подчеркивающие строку, со строкой, когда она возвращается, что повышает точность последующей интерпретации языка.
Любой из источников, описанных со ссылкой на фиг.1, может предоставить контекст 1000 для извлечения речи и способа интерпретации, изображенного на фиг.3. Например:
- Персональные данные 1080 акустического контекста, которые будут использоваться для выбора из возможных SLMs 1029 или же настраивать их для оптимизации распознанных акустических контекстов.
- Данные 1056 датчика устройства, описывающие свойства микрофонов и/или камер, находящихся в использовании, можно использовать для выбора из возможных SLMs 1029 или же настраивать их для оптимизации распознанных акустических контекстов.
- Словарь из персональных баз 1058 данных и предпочтения для приложений и историю 1072 использования можно использовать в качестве контекста 1000. Например, титры медиа и имена артистов можно использовать для настройки языковых моделей 1029.
- Состояние текущего диалога, часть истории диалога и память 1052 помощника можно использовать для оказания влияния на выработку, фильтрацию, ранжирование интерпретаций 124 возможных вариантов с помощью службы 122 преобразования текста в речь. Например, один вид состояния диалога задает вопрос да/нет. Когда в таком состоянии, процедура 10 может выбрать SLMs 1029, которое смещает в направлении прослушивания этих слов или она может смещать ранжирование и фильтрацию этих слов при контекстно-специфической настройке на этапе 122.
Использование контекста при обработке естественного языка
Контекст 1000 можно использовать для облегчения обработки естественного языка (NLP) - синтаксический анализ текста, введенного в семантические структуры, представляющие собой возможные разборы. На фиг.4 показана схема последовательности операций, изображающая способ использования контекста при обработке использования языка, которую может выполнить интерпретатор 2770 языка согласно одному варианту осуществления.
Способ начинается на этапе 200. На этапе 202 принимают вводимый текст. В одном варианте осуществления вводимый текст 202 совпадает 210 со словами и фразами с использованием блоков 2760 распознавания образов, словарной базы 2758 данных, онтологии и других моделей 1050 для того, чтобы идентифицировать ассоциации между вводом пользователя и концепциями. На этапе 210 вырабатывают набор синтаксических разборов 212 возможных вариантов, которые подходят для семантической релевантности 220, производящей семантические разборы 222 возможных вариантов. Затем на этапе 230 обрабатывают разборы возможных вариантов для устранения неоднозначности, фильтруют и сортируют по релевантности 232 и возвращают в прежнее состояние.
На всем протяжении обработки естественного языка контекстуальную информацию 1000 можно применить для уменьшения пространства гипотезы и ограничения возможных разборов. Например, если интерпретатор 2770 языка принимает два возможных варианта "call her" и "call Herb", то интерпретатор 2770 языка будет находить связи 212 для слов "call", "her", и "Herb". Контекст 1060 приложения можно использовать для ограничения возможных значений слов для "call" для того, чтобы иметь значение "phone call" ("телефонный вызов"). Контекст можно также использовать для нахождения референтов для her" и "Herb". Для "her" источники 1000 контекста можно будет отыскать для источника вызываемых объектов. В этом примере, сторона в диалоге на основе обмена текстовыми сообщениями представляет собой вызываемый объект, и эта информация является частью контекста, приходящего от приложения обмена текстовыми сообщениями. В случае "Herb" адресная книга пользователя представляет собой источник контекста устранения неоднозначности, так как представляет собой другие персональные данные, такие как предпочтения для приложений (таких как любимые номера из базы 2772 данных объекта предметной области) и история использования приложения (такая как последние телефонные вызовы из базы 2772 данных объекта предметной области). В примере, где сторона, выполняющая текущий обмен текстовыми сообщениями, представляет собой RebeccaRichards и существует HerbGowen в адресной книге пользователя, два разбора, которые созданы с помощью интерпретатора 2770 языка, будут представлять собой семантические структуры, представляющие "PhoneCall (RebeccaRichards)" и "PhoneCall (HerbGowen)".
Данные из предпочтений для приложений и история 1072 использования, история диалогов и память 1052 помощника и/или персональные базы 1058 данных можно также использовать с помощью интерпретатора 2770 языка при выработке синтаксических разборов 212 возможных вариантов. Такие данные можно получить, например, из кратко и/или долгосрочной памяти 2752, 2754. Таким образом, ввод, который был выполнен ранее в том же самом сеансе, и/или известную информацию относительно пользователя можно использовать для улучшения характеристик, уменьшения неоднозначности и усиления разговорного характера взаимодействия. Данные из активной онтологии 1050, модели 2756 предметных областей и модели 2786 потоков задач можно также использовать для реализации очевидного рассуждения при определении правильных синтаксических разборов 212 возможных вариантов.
При семантическом соответствии 220 интерпретатор 2770 языка рассматривает комбинации возможных результатов разборов согласно тому, как хорошо они соответствуют семантическим моделям, таким как моделям предметной области или базам данных. Семантическое соответствие 220 может использовать данные, например, из активной онтологии 1050, краткосрочной персональной памяти 2752 и долгосрочной персональной памяти 2754. Например, семантическое соответствие 220 может использовать данные из предыдущих ссылок на места проведения или локальные события в диалоге (из истории диалогов и памяти 1052 помощника) или персональных любимых мест встречи (из предпочтения для приложений и истории 1072 использования). Этап 220 семантического соответствия также использует контекст 1000 для интерпретации фраз в структуры намерения предметных областей. На этапе 222 вырабатывают набор из возможных или потенциальных вариантов и результаты семантического разбора.
На этапе 230 устранения неоднозначности интерпретатор 2770 языка взвешивает очевидные количества результатов 222 семантического разбора возможных вариантов. Устранение 230 неоднозначности включает в себя уменьшение числа семантического разбора 222 возможных вариантов путем исключения невероятных или избыточных альтернатив. Устранение 230 неоднозначности может использовать данные и структуры активной онтологии 1050. По меньшей мере, в одном варианте осуществления, связи между узлами в активной онтологии обеспечивают очевидную поддержку для устранения неоднозначности среди результатов 222 семантического разбора возможных вариантов. В одном варианте осуществления, контекст 1000 используется для оказания помощи при таком устранении неоднозначности. Примеры такого устранения неоднозначности включают в себя: определение одного или нескольких человек, имеющих одно и то же имя; определение референта с такой командой, как "reply" ("ответить") (сообщение электронной почты или текстовое сообщение); снятие косвенности местоимения; и т.п.
Например, ввод, такой как "call Herb" потенциально относится к любому объекту, соответствующему "Herb". Может существовать любое число таких объектов, не только в адресной книге пользователя (персональных базах 1058 данных), но также в базах данных названий занятий из персональных баз 1058 данных и/или баз 2772 данных объектов предметной области. Несколько источников контекста могут ограничить набор соответствия "Herbs", и/или ранг или их фильтрацию на этапе 232. Например:
- Предпочтения для других приложений и история 1072 использования, такая как Preferences и Usage, которая находится в списке любимых телефонных номеров, или недавно вызванных, или сторона в недавней цепочке диалога на уровне обмена текстовыми сообщениями или электронной почты;
- Herb, упомянутая в персональных базах 1058 данных, такая как Herb, которая называется родственными отношениями, такими как с отцом или братом, или участник, включенный в список, в последнем календарном событии. Если бы была задача воспроизведения медиа вместо телефонного вызова, то имена из названий медиа, авторов и т.п. были бы источниками ограничения.
- Последний оборот диалога 1052 либо в запросе, либо в результатах. Например, как описано выше со ссылкой на фиг.25a-25b, после отыскания сообщения электронной почты от John (Джона), с результатом поиска все еще в контексте диалога, пользователь может написать ответ. Помощник 1002 может использовать контекст диалога для идентификации специфического контекста объекта в предметной области приложения.
Контекст 1000 позволяет также уменьшить неоднозначность в словах, которые отличаются от правильных названий. Например, если пользователь приложения электронной почты говорит помощнику 1002 "reply" ("ответить") (как изображено на фиг.20), контекст приложения помогает определить, что слово должно быть связано с EmailReply в отличие от TextMessagingReply.
На этапе 232 интерпретатор 2770 выполняет фильтрацию и сортировку 232 семантических разборов высокого уровня в качестве представления намерения 290 пользователя. Контекст 1000 можно использовать для информирования о такой фильтрации и сортировке 232. Результатом является представление намерения 290 пользователя.
Использование контекста при обработке потоков задач
На фиг.5 показана схема последовательности операций, изображающая способ использования контекста при обработке потока задач, которая может выполняться с помощью процессора 2780 диалогового потока данных, согласно одному варианту осуществления, при обработке потока задач, разборы возможных вариантов, выработанные из способа (фиг.4), ранжируются и подвергаются обработке для получения описаний операционных задач, которые можно выполнить.
Способ начинается на этапе 300. На этапе 290 принимают многочисленные представления возможных вариантов намерения пользователя. Как описано со ссылкой на фиг.4, в одном варианте осуществления, представления намерения 290 пользователя включают в себя набор семантических разборов.
На этапе 312 процессор 2780 диалогового потока данных определяет предпочтительные интерпретации семантического разбора(ов) с помощью другой информации для того, чтобы определить задачу для выполнения и ее параметры, основываясь на определении намерения пользователя. Информацию можно получить, например, из моделей 2756 предметных областей, моделей 2786 потоков задач и/или моделей 2787 протекания диалогов или любой их комбинации. Например, задача может представлять собой PhoneCall, и параметром задачи является PhoneNumber для вызова.
В одном варианте осуществления контекст 100 используется для выполнения этапа 312 для направления связи параметров 312 путем внесения суждения относительно значений по умолчанию и разрешения неоднозначности. Например, контекст 1000 может стимулировать конкретизацию описаний задач и определение того, где существует наилучшая интерпретация намерения пользователя.
Например, предполагают, что вводы 290 намерений представляют собой "PhoneCall (RebeccaRichards)" и "PhoneCall (HerbGowen)". Задача PhoneCall требует параметр PhoneNumber. Несколько источников контекста 100 можно применить для определения того, какой телефонный номер для Rebecca и Herb будет рабочим. В этом примере вход в адресную книгу для Rebecca и база данных контактов имеет два телефонных номера и вход для Herb не имеет телефонных номеров, но имеет один адрес электронной почты. Используя контекстную информацию 1000 из персональных баз 1058 данных, таких как база данных контактов, позволяет виртуальному помощнику 1002 отдать предпочтение Rebecca, а не Herb, поскольку телефонный номер имеется для Rebecca, а не для Herb. Для того чтобы определить, какой телефонный номер использовать для Rebecca, контекст 1060 приложения может консультироваться для выбора номера, который используется для выполнения текущего диалога на уровне обмена текстовых сообщений с Rebecca. Таким образом, виртуальный помощник 1002 может определить, что "call her" в контексте диалога на уровне обмена текстовых сообщений с Rebecca Richards означает выполнение телефонного вызова на мобильный телефон, который Rebecca использует для обмена текстовыми сообщениями. Эта специфическая информация возвращается на этап 390.
Контекст 1000 можно использовать для более чем достаточного уменьшения неоднозначности телефонных номеров. Его можно использовать всякий раз, когда существует многочисленные возможные значения для параметров задачи до тех пор, пока доступен любой источник контекста 1000, имеющий значения для этого параметра. Другие примеры, в которых контекст 1000 позволяет уменьшить неоднозначность (и избежать наличия подсказки пользователю для выбора среди возможных вариантов), включают в себя без ограничения: адреса электронной почты; физические адреса; периоды времени и даты, места, названия списков, названия медиа, имена артистов; названия занятий или любое другое пространство значений.
Другие виды логических выводов, которые требуются для обработки 300 потоков задач, могут также извлекать пользу из контекста 1000. Например, вывод относительно значения по умолчанию может использовать текущее местоположение, время и другие текущие значения. Вывод относительно значения по умолчанию является полезным для определения значений параметров задачи, которые являются неявными в запросе пользователя. Например, если кто-то говорит "what is the weather like?" ("какая погода?"), то неявным образом подразумевается, какая здесь в данный момент погода.
На этапе 310 процессор 2780 диалогового потока данных определяет, достаточно ли сильно поддерживается эта интерпретация намерением пользователя для продолжения, и/или, если оно поддерживается лучше, чем разборы альтернативной неоднозначности. Если существуют конкурирующие неоднозначности или достаточная неопределенность, то выполняют этап 322 для установки этапа протекания диалога для того, чтобы фаза выполнения побуждала диалог выводить подсказку для большей информации от пользователя. На фиг.14 показан пример снимка экрана для подсказки пользователю разрешить неоднозначность. Контекст 1000 можно использовать на этапе 322 при сортировке и аннотировании отображаемого меню элементов возможного варианта для пользователя, который осуществляет выбор из них.
На этапе 320 модель потока задач консультируется для определения соответствующего следующего этапа. Информацию можно получить, например, из моделей 2756 предметных областей, моделей 2786 потоков задач и/или моделей 2787 потоков диалогов или любой их комбинации.
Результатом этапа 320 или этапа 322 является представление запроса 390 пользователя, который может включать в себя параметры задачи, достаточные для процессора 2780 диалогового потока данных и оркестрации 2782 услуг для отправления в соответствующую службу.
Использование контекста для улучшения выработки диалога
Во время выработки 500 ответа при диалоге помощник 1002 может пересказать обратно свое понимание намерения пользователя и того, как оно операционализируется в задаче. Пример такого вывода представляет собой "OK, I'll call Rebecca on her mobile…" ("Хорошо, я позвоню Ребекке на ее мобильный телефон"). Это позволяет пользователю авторизировать помощника 1002 для выполнения автоматизации ассоциированной задачи, такой как размещение вызова. На этапе 500 выработки диалога помощник 1002 определяет, как много подробностей передавать обратно пользователю при перефразировании его понимания намерения пользователя.
В одном варианте осуществления контекст 1000 можно также использовать для направления выбора соответствующего уровня подробности в диалоге, а также для фильтрации на основании предыдущего вывода (во избежание повторения информации). Например, помощник 1002 может использовать знания относительно того, что о человеке и телефонном номере был сделан вывод из контекста 1000 для определения того, упоминает ли имя и телефонный номер и на каком уровне подробности. Примеры правил, которые можно применить, включают в себя без ограничения:
- Когда, исходя из контекста принято решение относительно местоимения, напоминают человеку вызвать по имени.
- Когда человек делает вывод из привычного контекста, такого как обмен текстовыми сообщениями, используют только первое имя.
- Когда о телефонном номере делают вывод из контекста приложения или персональных данных, используют символическое имя мобильного телефона, такое как "mobile phone" ("мобильный телефон"), а не фактический номер для набора.
Помимо управления соответствующим уровнем подробности контекст 1000 можно также использовать на этапе 500 выработки диалога, например для фильтрации предыдущих речевых фрагментов во избежание повторения и для ссылки на ранее упомянутые объекты в разговоре.
Специалистам в данной области техники будет очевидно, что контекст 1000 можно также использовать другими способами. Например, в связи с технологиями, описанными здесь, контекст 1000 можно использовать согласно механизмам, которые описаны в родственной полноценной заявке на патент США порядковый номер 12/479477, озаглавленной "Contextual Voice Commands", поданной 5 июня 2009 года, полное раскрытие которой включено здесь посредством ссылки.
Механизмы сбора и связи контекстов
В различных вариантах осуществления различные механизмы используются для сбора и связи контекстной информации в виртуальном помощнике 1002. Например, в одном варианте осуществления, в котором виртуальный помощник 1002 реализован в виде среды клиент/сервер таким образом, чтобы его службы были распределены между клиентом и сервером, можно также распределить источники контекста 1000.
На фиг.6 показан пример распределения источников контекста 1000 между клиентом 1304 и сервером 1340, согласно одному варианту осуществления. Клиент-устройство 1304, которое может представлять собой мобильное вычислительное устройство или другое устройство, может представлять собой источник контекстуальной информации 1000, такой как данные 1056 о датчике устройства, контекст 1060 текущего приложения, контекст 2706 события и т.п. Другие источники контекста 1000 могут быть распределены на клиенте 1304 или сервере 1340 или некоторых их комбинациях. Примеры включают в себя предпочтения для приложений и историю 1072с, 1072s использования; историю диалогов и память 1052с, 1052s истории диалогов и помощника; персональные базы 1058с, 1058s данных; и данные 1080с, 1080s персонального акустического контекста. В каждом из этих примеров источники контекста 1000 могут существовать на сервере 1340, на клиенте 1304 или на обоих. Кроме того, как описано выше, различные этапы, изображенные на фиг.2, можно выполнить с помощью клиента 1304, или сервера 1340, или некоторой их комбинации.
В одном варианте осуществления контекст 1000 может поддерживать связь среди распределенных компонентов, таких как клиент 1304 и сервер 1340. Такую связь можно поддерживать по локальной API, или по распределенной сети, или с помощью некоторых других средств.
На фиг.7а - 7d показаны схемы событий, изображающие примеры механизмов для получения и координации контекстной информации 1000 согласно различным вариантам осуществления. Различные технологии существуют для загрузки или поддержания связи контекста таким образом, чтобы он был доступен виртуальному помощнику 1002, когда это необходимо или полезно. Каждый из этих механизмов описан исходя из четырех событий, которые могут иметь место по отношению к работе виртуального помощника 1002: инициализация 601 устройства или приложения; первоначального ввода 602 пользователя; обработки 603 первоначального ввода и контекстно-зависимой обработки 604.
На фиг.7а изображен подход, в котором контекстная информация 1000 загружается с использованием механизма извлечения сразу после начала 602 ввода пользователя. Сразу после того, как пользователь вызвал виртуального помощника 1002 и выполнил, по меньшей мере, некоторый ввод 602, виртуальный помощник 1002 загружает 610 контекст 1000. Загрузку 610 можно выполнить путем запроса и извлечения контекстной информации 1000 из соответствующего источника. Обработка 603 ввода начинается сразу после загрузки 610 контекста 1000.
На фиг.7b изображен подход, в котором некоторая контекстная информация 1000 загружается 620 при инициализации 601 устройства или приложения; при этом дополнительная контекстная информация 1000 загружается с использованием механизма извлечения сразу после начала 602 ввода пользователя. В одном варианте осуществления контекстная информация 1000, которая загружается 620 после инициализации, может включать в себя статический контекст (то есть контекст, который не изменяется часто); при этом контекстная информация 1000, которая загружается 621 сразу после запуска 602 ввода пользователя, включает в себя динамический контекст (то есть контекст, который мог измениться, поскольку был загружен 620 статический контекст). Такой подход может повысить характеристики за счет снижения затрат на загрузку статической контекстной информации 1000 начиная с выполнения рабочего цикла системы.
На фиг.7с изображена разновидность подхода, показанного на фиг.7b. В этом примере, динамическая контекстная информация 1000 позволяет продолжить загрузку 621 после начала 603 обработки ввода. Таким образом, загрузка 621 может происходить параллельно с обработкой ввода. Процедура виртуального помощника 1002 блокируется только на этапе 604, когда обработка зависит от принятой контекстной информации 1000.
На фиг.7d изображена версия, допускающая возможность полного изменения конфигурации, которая позволяет обрабатывать контекст любым из пяти различных способов:
- Статическая контекстуальная информация 1000 синхронизируется 610 в одном направлении от источника контекста до среды или устройства, которое запускает виртуального помощника 1002. Так как данные изменяются в источнике контекста, изменения распространяются на виртуальный помощник 1002. Например, адресная книга может быть синхронизирована с виртуальным помощником 1002, когда он изначально создан или разрешен. Всякий раз, при модификации адресной книги, изменения распространяются на виртуальный помощник 1002 незамедлительно или дозированным способом. Как изображено на фиг.7d, такая синхронизация 640 может происходить в любое время, в том числе и перед запуском 602 ввода пользователя.
- В одном варианте осуществления при запуске 602 ввода пользователя, источники статического контекста можно проверить на статус синхронизации. При необходимости процесс синхронизации оставшейся статической контекстной информации 1000 начинается на этапе 641.
- Когда начался 602 ввод пользователя, загружается 642 некоторый динамический контекст 1000, как это было на этапе 610 и 621. Процедуры, которые используют контекст 1000, блокируются только для ожидания, пока еще не загружена контекстная информация 1000, когда она необходима.
- Другая контекстная информация 1000 загружается по требованию 643 с помощью процессов в случае, когда она им необходима.
- Контекст 2706 события отправляется 644 из источника в устройство, которое запускает виртуального помощника 1002, когда происходит событие. Процессы, которые используют контекст 2706 события, ожидают только готовности кэш-памяти событий и могут продолжаться после этого без блокирования в течение любого периода времени. Контекст 2706 события, загруженный таким образом, может включать в себя любое из следующего:
- Контекст 2706 события, загруженный перед началом 602 ввода пользователя, например перед уведомлениями о непрочитанных сообщениях. Такая информация может поддерживаться, например, с использованием синхронизированной кэш-памяти.
- Контекст 2706 события, загруженный одновременно с или после ввода пользователя, начинается на этапе 602. Например, в том время, как пользователь взаимодействует с виртуальным помощником 1002, может поступать текстовое сообщение; при этом контекст события, которое уведомляет помощника 1002 об этом событии, может продвигаться параллельно с обработкой помощника 1002.
В одном варианте осуществления, гибкость при получении и координации контекстной информации 1000 завершается посредством предписания, для каждого источника контекстной информации 1000, политики связи и доступа к API, которые уравновешивают стоимость связи со значением наличия информации, доступной по каждому запросу. Например, переменные, которые имеют прямое отношение к каждому запросу на преобразование речи в текст, такие как персональные данные 1080 акустического контекста или данные 1056 датчика устройства, описывающие параметры микрофонов, можно загружать по каждому запросу. Такие политики связи можно точно определить, например, в таблице-конфигураторе.
На фиг.9 показан пример таблицы-конфигуратора 900, которую можно использовать для точного определения политик связи и кэширования для различных источников информации 1000 для различных источников контекстной информации 1000, согласно одному варианту осуществления. Для каждого числа различных источников контекста, включающих в себя имя пользователя, название адресных книг, число адресных книг, контекст SMS-события и календарную базу данных, конкретный тип загрузки контекста определяется для каждого из этапов (фиг.2), на которых: извлекают и интерпретируют ввод 100 речи, интерпретируют естественный язык 200, идентифицируют задачу 300 и вырабатывают ответ 500 на диалог. Каждый вход в таблицу 900 показывает одно из следующего:
- Sync: контекстная информация 1000 синхронизирована по отношению к устройству;
- On demand: контекстная информация 1000 предоставляется в ответ на запрос виртуального помощника 1002 на нее;
- Push: контекстная информация 1000 продвигается в устройство.
Полностью конфигурируемый способ позволяет сделать доступным большой объем потенциально релевантной контекстуальной информации 1000 для ускорения взаимодействия естественного языка между человеком и машиной. Вместо беспрерывной загрузки всей этой информации, что может привести к неэффективной работе, некоторая информация поддерживается как в источнике контекста, так и в виртуальном помощнике 1002, хотя другая информация запрашивается по требованию. Например, как описано выше, информация, такая как имена, которые используются в операциях в режиме реального времени, таких как распознавание речи, поддерживается локально, хотя информация, которая используется только некоторыми возможными запросами, такими как персональный календарь пользователя, запрашивается по требованию. Данные, которые невозможно предвидеть в период времени, когда пользователь вызывает помощника, такие как входящие события SMS, продвигаются по мере их происхождения.
На фиг.10 показана схема 950 событий, изображающая пример доступа к источникам контекстной информации, сконфигурированным на фиг.9 во время обработки последовательности взаимодействия, в которой помощник 1002 находится в режиме диалога с пользователем, согласно одному варианту осуществления.
Последовательность, изображенная на фиг.10, представляет собой следующую последовательность взаимодействия:
- T1: Помощник 1002: "Hello Steve, what I can I do for you?" ("Привет Стив, чем могу быть полезен?")
- Т2: Пользователь: "When is my next meeting?" ("Когда у меня следующее заседание?")
- Т3: Помощник 1002: "Your next meeting is at 1:00 pm in the boardroom." ("Ваше следующее заседание назначено на 13:00 в зале заседаний совета директоров")
- Т4: [Звук входящего SMS-сообщения]
- Т5: Пользователь: "Read me that message." ("Прочти мне это сообщение")
- Т6: Помощник 1002: "Your message from Johnny says 'How about lunch.'" ("B Вашем сообщении от Джона говорится 'Как насчет обеда'")
- Т7: Пользователь: "Tell Johnny I can't make it today." ("Скажи Джону, что я не могу сделать это сегодня")
- T8: Помощник 1002: "OK, I'll tell him." ("Хорошо, я ему скажу")
В момент времени Т0, перед началом взаимодействия, имя пользователя синхронизируется 770 и синхронизируется 771 название адресных книг. Это примеры статического контекста, загруженного в период инициализации, как показано на элементе 640 на фиг.7d. Это позволяет помощнику 1002 обратиться к пользователю по имени ("Steve" ("Стив")).
В момент времени T1 завершается синхронизация этапов 770 и 771. В момент времени Т2 пользователь произносит запрос, который обрабатывается согласно этапам 100, 200 и 300. На этапе 300 идентификации задачи виртуальный помощник 1002 запрашивает 774 персональную базу 1058 данных пользователя в качестве источника контекста 1000: и в частности, виртуальный помощник 1002 запрашивает информацию из базы данных календаря пользователя, который сконфигурирован для доступа по требованию, согласно таблице 900. В момент времени Т3 выполняется этап 500 и вырабатывается ответ в ходе диалога.
В момент времени Т4 принимают SMS-сообщение, что является примером контекста 2706 события. Уведомление о событии подается 773 в виртуальный помощник 1002 на основании конфигурации в таблице 900.
В момент времени Т5 пользователь просит виртуального помощника 1002 прочитать SMS-сообщение. Наличие контекста 2706 события управляет компонентом NLP при выполнении этапа 200 для того, чтобы интерпретировать "это сообщение" в качестве нового SMS-сообщения. В момент времени Т6 этап 300 можно выполнить с помощью компонента задачи для того, чтобы вызвать API для прочтения SMS-сообщения пользователю. В момент времени Т7 пользователь выполняет запрос с помощью двусмысленного глагола ("tell") и имени ("Johnny"). Компонент NLP интерпретирует естественный язык путем разрешения этих неоднозначностей с использованием различных источников контекста 1000, который включает в себя контекст 2706 события, принятый на этапе 773; при этом он говорит компоненту NLP, что команда относится к SMS-сообщению от человека под именем Johnny (Джонни). В момент времени Т7 выполняют этап 400 исполнительного потока, включающий в себя согласование имени 771 путем отыскания числа для использования из объекта контекста принятого события. Помощник 1002, таким образом, может составить новое SMS-сообщение и отправить его Johnny (Джонни), как это подтверждено на этапе T8.
Настоящее изобретение было описано с обстоятельными подробностями по отношению к возможным вариантам осуществления. Специалисты в данной области техники оценят, что изобретение можно выполнить на практике в виде других вариантов осуществления. Во-первых, конкретное название компонентов, капитализация терминов, атрибутов, структур данных или любых других аспектов программирования или структурных аспектов является необязательным или существенным и механизмы, которые позволяют реализовать настоящее изобретение или его особенности, могут иметь различные названия, форматы или протоколы. Кроме того, систему можно реализовать посредством комбинации аппаратных средств и программного обеспечения, как описано выше, или полностью в виде элементов аппаратных средств, или полностью в виде элементов программного обеспечения. К тому же, конкретное разделение функциональных возможностей между различными компонентами системы, которые описаны здесь, является примерным и необязательным, функции, выполняемые с помощью одиночного компонента системы, можно выполнить, вместо этого, с помощью многочисленных компонентов, и функции, выполняемые многочисленными компонентами, можно выполнить, вместо этого, с помощью одиночного компонента.
В различных вариантах осуществления настоящее изобретение можно реализовать в виде системы или способа для выполнения вышеописанных технологий, по отдельности или в любой комбинации. В другом варианте осуществления настоящее изобретение можно реализовать в виде компьютерного программного продукта, содержащего невременный машиночитаемый носитель информации и компьютерный программный код, кодированный на среде для побуждения процессора в вычислительном устройстве или другом электронном устройстве выполнять вышеописанные технологии.
Ссылка в спецификации на "один вариант осуществления" или на "вариант осуществления" означает, что конкретная особенность, структура или характеристика, описанная в связи с вариантами осуществления, включена, по меньшей мере, в один вариант осуществления настоящего изобретения. Все внешние признаки фразы "в одном варианте осуществления" в различных местах описания необязательно относятся к одному и тому же варианту осуществления.
Некоторые части вышеизложенного представлены исходя из алгоритмов и символических представлений операций, выполняемых над битами данных внутри памяти вычислительного устройства. Эти алгоритмические описания и представления представляют собой средства, используемые специалистами в области обработки данных для более эффективной передачи сущности этих работ другим специалистам в данной области техники. Под алгоритмом здесь и в общем понимается самостоятельная последовательность этапов (инструкций), приводящих к желаемому результату. Этапы представляют собой то, что требует физических манипуляций физических величинами. Как правило, хотя и необязательно, эти величины принимают форму электрических, магнитных или оптических сигналов, которые можно сохранять, передавать, объединять, сравнивать и иначе способом манипулировать. Иногда удобно, главным образом, по причинам широкого использования, ссылаться на эти сигналы в виде битов, значений, элементов, символов, знаков, терминов, чисел или т.п. Кроме того, иногда также удобно ссылаться на определенные размещения этапов, требующих физических манипуляций с физическими величинами в виде модулей или кодирующих устройств без потери общности.
Однако должно быть понятно, что все из этих или подобных терминов должны ассоциироваться с соответствующими физическими величинами и являются только удобными обозначениями, которые применяются к этим величинам. За исключением конкретно изложенного иным способом, как очевидно из следующего обсуждения, понятно, что на всем протяжении описания, обсуждение, использующее термины, такие как "обработка", или "вычисление", или "подсчет", или "отображение", или "определение" и т.п., относится к действию и процессам компьютерной системы или подобного электрического вычислительного модуля или устройства, которое манипулирует и преобразует данные, представленные в виде физических (электронных) величин в пределах запоминающих устройств, или регистров компьютерной системы, или другого такого устройства для хранения информации и устройств передачи или отображения.
Определенные аспекты настоящего изобретения включают в себя этапы процесса и инструкции, описанные здесь в форме алгоритма. Следует отметить, что этапы процесса и инструкции настоящего изобретения можно осуществить в виде программного обеспечения, программно-аппаратных средств и/или аппаратных средств, и при осуществлении в виде программных средств можно загрузить для того, чтобы постоянно находиться на и работать с различными платформами, которые используются множеством операционных систем.
Настоящее изобретение также относится к устройству для выполнения в данном случае операций. Это устройство можно специально сконструировать для требуемых целей или оно может содержать вычислительное устройство общего назначения, избирательно активизируемое или реконфигурируемое с помощью компьютерной программы, которая хранится в вычислительном устройстве. Такая компьютерная программа может храниться в компьютеросчитываемом носителе информации, таком как, но не ограничивается этим, любой тип диска, включая гибкие диски, оптические диски, CD-ROM, магнитооптические диски, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), стираемое программируемое постоянное запоминающее устройство (СППЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), магнитные или оптические карты, специализированные интегральные схемы (ASIC) или любой тип носителей, подходящих для хранения электронных инструкций, каждый из которых связан с шиной компьютерной системы. Кроме того, вычислительное устройство, которое относится к данному случаю, может включать в себя одиночный процессор или может представлять собой архитектуры, использующие построение из многочисленных процессоров для повышения возможности вычислений.
Алгоритмы и устройства отображения, представленные здесь, по сути, не относятся к любому конкретному вычислительному устройству, системе, существующей в виртуальной форме или другому устройству. Различные системы общего назначения можно также использовать с программами в соответствии с идеями, описанными здесь, или они могут оказаться удобными для построения специализированных устройств более высокого уровня для выполнения требуемых этапов способа. Требуемая структура для множества этих систем будет понятна из описания, представленного здесь. Помимо этого, настоящее изобретение не описано со ссылкой на какой-либо конкретный язык программирования. Будет оценено, что множество языков программирования можно использовать для реализации идей настоящего изобретения, которые описаны здесь, и любые ссылки, приведенные выше, на специфические языки выполнены для раскрытия задачи и предпочтительного варианта осуществления настоящего изобретения.
Соответственно, в различных вариантах осуществления, настоящее изобретение можно реализовать в виде программного обеспечения, аппаратных средств и/или других элементов для управления компьютерной системой, вычислительным устройством или другим электронным устройством или любой их комбинацией или множеством. Такое электронное устройство может включать в себя, например, процессор, устройство ввода (такое как клавиатура, мышь, сенсорная панель, сенсорная площадка, джойстик, шаровой манипулятор, микрофон и/или любая их комбинация), устройство вывода (такое как экран, громкоговоритель и/или т.п.), память, долгосрочное запоминающее устройство (такое как магнитное запоминающее устройство и/или т.п.) и/или связность сети, согласно технологиям, которые хорошо известны в технике. Такое электронное устройство может быть портативным или непортативным. Примеры электронных устройств, которые можно использовать для реализации настоящего изобретения, включают в себя: мобильный телефон, персональный цифровой помощник, смартфон, информационный киоск, настольный компьютер, портативный персональный компьютер типа "лэптоп", планшетный компьютер, бытовое электронное устройство, бытовое развлекательное устройство; музыкальный проигрыватель; фотоаппарат, телевизор, компьютерная приставка к телевизору, электронный игровой блок или т.п. Электронное устройство для реализации настоящего изобретения может использовать любую операционную систему, такую, например, как iOS или MacOS, имеющиеся в наличии у Apple Inc. of Cupertino, California, или любую другую операционную систему, которая адаптирована для использования на устройстве.
Хотя настоящее изобретение было описано по отношению к ограниченному числу вариантов осуществления, специалисты в данной области техники, имеющие выгоду от приведенного выше описания, оценят, что можно изобрести другие варианты осуществления, которые не отклоняются от объема настоящего изобретения, как описано здесь. Кроме того, следует отметить, что язык, используемый в описании, был, главным образом, выбран для удобочитаемости и цели обучения и не может быть выбран для ограничения или для установления границ или ограничения предмета изобретения. Соответственно, раскрытие настоящего изобретения предназначено для иллюстрации, но не ограничения объема изобретения, которое изложено в формуле изобретения.
название | год | авторы | номер документа |
---|---|---|---|
ПОДДЕРЖАНИЕ КОНТЕКСТНОЙ ИНФОРМАЦИИ МЕЖДУ ПОЛЬЗОВАТЕЛЬСКИМИ ВЗАИМОДЕЙСТВИЯМИ С ГОЛОСОВЫМ ПОМОЩНИКОМ | 2018 |
|
RU2785950C2 |
ИСПОЛЬЗОВАНИЕ ТЕКСТА ОПОВЕЩЕНИЯ О СОБЫТИИ В КАЧЕСТВЕ ВВОДА В АВТОМАТИЗИРОВАННЫЙ ПОМОЩНИК | 2011 |
|
RU2546604C2 |
ОРКЕСТРОВКА СЛУЖБ ДЛЯ ИНТЕЛЛЕКТУАЛЬНОГО АВТОМАТИЗИРОВАННОГО ПОМОЩНИКА | 2011 |
|
RU2556416C2 |
ВЫВЕДЕНИЕ НАМЕРЕНИЯ ПОЛЬЗОВАТЕЛЯ НА ОСНОВЕ ПРЕДЫДУЩИХ ВЗАИМОДЕЙСТВИЙ С ГОЛОСОВЫМ ПОМОЩНИКОМ | 2011 |
|
RU2544787C2 |
ОПРЕДЕЛЕНИЕ НАМЕРЕНИЯ ПОЛЬЗОВАТЕЛЯ НА ОСНОВЕ ОНТОЛОГИЙ ПРЕДМЕТНЫХ ОБЛАСТЕЙ | 2011 |
|
RU2541221C2 |
ПОДДЕРЖАНИЕ КОНТЕКСТНОЙ ИНФОРМАЦИИ МЕЖДУ ПОЛЬЗОВАТЕЛЬСКИМИ ВЗАИМОДЕЙСТВИЯМИ С ГОЛОСОВЫМ ПОМОЩНИКОМ | 2015 |
|
RU2653250C2 |
ПЕРСОНАЛИЗИРОВАННЫЙ СЛОВАРЬ ДЛЯ ЦИФРОВОГО ПОМОЩНИКА | 2011 |
|
RU2541219C2 |
АКТИВНОЕ ЗАПРАШИВАНИЕ ВВОДА ИНТЕЛЛЕКТУАЛЬНЫМ АВТОМАТИЗИРОВАННЫМ ПОМОЩНИКОМ | 2011 |
|
RU2541208C2 |
ПЕРЕФРАЗИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ЗАПРОСОВ И РЕЗУЛЬТАТОВ ПОСРЕДСТВОМ ИНТЕЛЛЕКТУАЛЬНОГО АВТОМАТИЗИРОВАННОГО ПОМОЩНИКА | 2011 |
|
RU2541202C2 |
РАЗРЕШЕНИЕ НЕОДНОЗНАЧНОСТИ НА ОСНОВЕ АКТИВНОГО ЗАПРАШИВАНИЯ ВВОДА ИНТЕЛЛЕКТУАЛЬНЫМ АВТОМАТИЗИРОВАННЫМ ПОМОЩНИКОМ | 2011 |
|
RU2546605C2 |
Изобретение относится к компьютерной технике, а именно к системам виртуальных помощников. Техническим результатом является автоматизация взаимодействия пользователя с электронным устройством посредством речевого ввода, интерпретирующего представления о намерениях пользователя. Предложен машиночитаемый носитель информации для интерпретации ввода пользователя для выполнения задачи на вычислительном устройстве, имеющем, по меньшей мере, один процессор. Машиночитаемый носитель содержит компьютерный код, инструктирующий процессор побуждать устройство вывода подсказывать пользователю для выполнения ввода. Процессор также осуществляет прием речевого ввода пользователя через устройство ввода, прием контекстной информации из источника контекста, причем контекстная информация включает данные, описывающие акустическую среду, в которой принимается речевой ввод. Далее процессор осуществляет интерпретацию принятого речевого ввода пользователя для получения представления о намерении пользователя. 2 н. и 18 з.п. ф-лы, 40 ил.
1. Машиночитаемый носитель информации для интерпретации ввода пользователя для выполнения задачи на вычислительном устройстве, имеющем, по меньшей мере, один процессор, содержащий
компьютерный программный код, закодированный на носителе, выполненный с возможностью побуждения, по меньшей мере, одного процессора выполнять этапы, на которых:
побуждают устройство вывода подсказывать пользователю для выполнения ввода;
принимают речевой ввод пользователя через устройство ввода;
принимают контекстную информацию из источника контекста, причем контекстная информация включает данные, описывающие акустическую среду, в которой принимается речевой ввод;
интерпретируют принятый речевой ввод пользователя для получения представления о намерении пользователя;
идентифицируют, по меньшей мере, одну задачу и, по меньшей мере, один параметр для задачи на основании, по меньшей мере, частично, полученного представления о намерении пользователя;
исполняют, по меньшей мере, одну задачу с использованием, по меньшей мере, одного параметра для получения результата;
вырабатывают ответ в ходе диалога на основании полученного результата; и
побуждают устройство вывода выводить выработанный ответ в ходе диалога;
в котором компьютерный программный код выполнен с возможностью побуждения, по меньшей мере, одного процессора выполнять, по меньшей мере, один из этапов, на которых побуждают устройство вывода подсказывать пользователю для выполнения ввода, интерпретируют принятый речевой ввод пользователя, идентифицируют, по меньшей мере, одну задачу и, по меньшей мере, один параметр для задачи и вырабатывают ответ в ходе диалога с использованием принятой контекстной информации.
2. Система интерпретации ввода пользователя для выполнения задачи, содержащая:
устройство ввода, выполненное с возможностью подсказки пользователю для выполнения ввода;
устройство ввода, выполненное с возможностью приема речевого ввода пользователя;
по меньшей мере, один процессор, коммуникативно связанный с устройством вывода, с устройством ввода, сконфигурированный с возможностью выполнения этапов, на которых принимают контекстную информацию из источника контекста, причем контекстная информация включает данные, описывающие акустическую среду, в которой принимается речевой ввод;
интерпретируют принятый речевой ввод пользователя для получения представления о намерении пользователя;
идентифицируют, по меньшей мере, одну задачу и, по меньшей мере, один параметр для задачи на основании, по меньшей мере, частично, полученного представления о намерении пользователя;
исполняют, по меньшей мере, одну задачу с использованием, по меньшей мере, одного параметра для получения результата; и
вырабатывают ответ в ходе диалога на основании полученного результата;
в которой устройство вывода дополнительно выполнено с возможностью вывода выработанного диалогового ответа;
и в которой, по меньшей мере, один из этапов, по которым подсказывают пользователю для выполнения ввода, интерпретируют принятый речевой ввод пользователя, идентифицируют, по меньшей мере, одну задачу и, по меньшей мере, один параметр для задачи и вырабатывают ответ в ходе диалога, выполняется с использованием принятой контекстной информации.
3. Система по п.2, в которой принятая контекстная информация содержит, по меньшей мере, одно выбранное из группы, состоящей из:
контекста приложения;
персональных данных, ассоциированных с пользователем;
данных из базы данных, ассоциированной с пользователем;
данных, полученных из истории диалогов;
данных, принятых, по меньшей мере, из одного датчика;
предпочтений для приложений;
истории использования приложений;
данных, описывающих событие;
текущего состояния диалога;
ввода, ранее выполненного пользователем;
местоположения;
местного времени и
окружающих условий.
4. Система по п.2, в которой:
устройство вывода выполнено с возможностью подсказки пользователю посредством речевого интерфейса; и
устройство ввода выполнено с возможностью приема ввода пользователя посредством речевого интерфейса путем приема речевого ввода;
и в которой, по меньшей мере, один процессор выполнен с возможностью преобразования речевого ввода в текстовое представление.
5. Система по п.4, в которой, по меньшей мере, один процессор выполнен с возможностью преобразования речевого ввода в текстовое представление с помощью этапов, на которых:
вырабатывают множество возможных интерпретаций текста речевого ввода; и
ранжируют, по меньшей мере, поднабор выработанных возможных интерпретаций текста;
в которой, по меньшей мере, один из этапов выработки и ранжирования выполняется с использованием принятой контекстной информации.
6. Система по п.5, в которой принятая контекстная информация используется, по меньшей мере, в одном из этапов выработки и ранжирования, содержит, по меньшей мере, одно выбранное из группы, состоящей из:
данных, принятых, по меньшей мере, из одного датчика;
словаря, полученного из базы данных, ассоциированной с пользователем;
словаря, ассоциированного с предпочтениями для приложений;
словаря, полученного из истории использования и
текущего состояния диалога.
7. Система по п.2, в которой устройство вывода выполнено с возможностью подсказки пользователю путем выработки, по меньшей мере, одной подсказки на основании, по меньшей мере, частично, принятой контекстной информации.
8. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью интерпретации принятого ввода пользователя для получения представления о намерении пользователя путем выполнения обработки естественного языка по отношению к принятому вводу пользователя на основании, по меньшей мере, частично, принятой контекстной информации.
9. Система по п.8, в которой принятая контекстная информация, используемая при интерпретации принятого ввода пользователя содержит, по меньшей мере, одно выбранное из группы, состоящей из:
данных, описывающих событие;
контекста приложения;
ввода, ранее выполненного пользователем;
известной информации относительно пользователя;
местоположения;
даты;
окружающих условий и
истории.
10. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью идентификации, по меньшей мере, одной задачи и, по меньшей мере, одного параметра для задачи путем идентификации, по меньшей мере, одной задачи, по меньшей мере, одного параметра для задачи на основании, по меньшей мере, частично принятой контекстной информации.
11. Система по п.10, в которой принятая контекстная информация, используемая при идентификации, по меньшей мере, одной задачи и, по меньшей мере, одного параметра для задачи, содержит, по меньшей мере, одно выбранное из группы, состоящей из:
данных, описывающих событие;
данных из базы данных, ассоциированной с пользователем;
данных, принятых, по меньшей мере, из одного датчика;
контекста приложения;
ввода, ранее выполненного пользователем;
известной информации относительно пользователя;
местоположения;
даты;
окружающих условий и
истории.
12. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью выработки ответа в ходе диалога путем выработки ответа в ходе диалога на основании, по меньшей мере, частично принятой контекстной информации.
13. Система по п.12, в которой принятая контекстная информация, используемая при выработки ответа в ходе диалога, содержит, по меньшей мере, одно выбранное из группы, состоящей из:
данных из базы данных, ассоциированной с пользователем;
контекста приложения;
ввода, ранее выполненного пользователем;
известной информации относительно пользователя;
местоположения;
даты;
окружающих условий и
истории.
14. Система по п.2, в которой принятая контекстная информация содержит, по меньшей мере, одно выбранное из группы, состоящей из:
контекстной информации, сохраненной на сервере, и
контекстной информации, сохраненной в клиенте.
15. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью приема контекстной информации из источника контекста посредством:
запроса контекстной информации из источника контекста; и
приема контекстной информации в ответ на запрос.
16. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью приема контекстной информации из источника контекста посредством:
приема, по меньшей мере, части контекстной информации перед приемом ввода пользователя.
17. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью приема контекстной информации из источника контекста посредством:
приема, по меньшей мере, части контекстной информации после приема ввода пользователя.
18. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью приема контекстной информации из источника контекста посредством:
приема статической контекстной информации в рамках этапа инициализации; и
приема дополнительной контекстной информации после приема ввода пользователя.
19. Система по п.2, в которой, по меньшей мере, один процессор выполнен с возможностью приема контекстной информации из источника контекста посредством:
приема уведомления о продвижении изменения в контекстной информации; и
реагирования на уведомление о продвижении, обновляя при этом локально сохраненную контекстную информацию.
20. Система по п.2, в которой устройство вывода, устройство ввода и, по меньшей мере, один процессор реализованы в виде компонентов, по меньшей мере одного, выбранного из группы, состоящей из:
телефона;
смартфона;
планшетного компьютера;
портативного персонального компьютера;
персонального цифрового помощника;
настольного компьютера;
информационного киоска;
бытового электронного устройства;
бытового развлекательного устройства;
музыкального проигрывателя;
фотоаппарата;
телевизора;
электронного игрового блока и
компьютерной приставки к телевизору.
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Топчак-трактор для канатной вспашки | 1923 |
|
SU2002A1 |
СИСТЕМА И СПОСОБ УСТАНОВКИ И ВЫПОЛНЕНИЯ ПРИКЛАДНЫХ ПРОГРАММ ПРЕДПОЧТЕНИЙ | 2004 |
|
RU2364917C2 |
БЛОК РАЗРЕШЕНИЯ ДИАЛОГА ГОЛОСОВОГО БРАУЗЕРА ДЛЯ СИСТЕМЫ СВЯЗИ | 2004 |
|
RU2349970C2 |
Авторы
Даты
2015-02-27—Публикация
2012-09-28—Подача