RU2542937C2 - Использование контекстной информации для облегчения обработки команд в виртуальном помощнике - Google Patents

Использование контекстной информации для облегчения обработки команд в виртуальном помощнике Download PDF

Info

Publication number
RU2542937C2
RU2542937C2 RU2012141604/08A RU2012141604A RU2542937C2 RU 2542937 C2 RU2542937 C2 RU 2542937C2 RU 2012141604/08 A RU2012141604/08 A RU 2012141604/08A RU 2012141604 A RU2012141604 A RU 2012141604A RU 2542937 C2 RU2542937 C2 RU 2542937C2
Authority
RU
Russia
Prior art keywords
user
input
context
contextual information
received
Prior art date
Application number
RU2012141604/08A
Other languages
English (en)
Other versions
RU2012141604A (ru
Inventor
Томас Роберт ГРУБЕР
Кристофер Дин БРИГЭМ
Дэниел С. КИН
Грегори НОВИК
Бенджамин С. ФИППС
Original Assignee
Эпл Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/250,854 external-priority patent/US9858925B2/en
Application filed by Эпл Инк. filed Critical Эпл Инк.
Publication of RU2012141604A publication Critical patent/RU2012141604A/ru
Application granted granted Critical
Publication of RU2542937C2 publication Critical patent/RU2542937C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Digital Computer Display Output (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

Изобретение относится к компьютерной технике, а именно к системам виртуальных помощников. Техническим результатом является автоматизация взаимодействия пользователя с электронным устройством посредством речевого ввода, интерпретирующего представления о намерениях пользователя. Предложен машиночитаемый носитель информации для интерпретации ввода пользователя для выполнения задачи на вычислительном устройстве, имеющем, по меньшей мере, один процессор. Машиночитаемый носитель содержит компьютерный код, инструктирующий процессор побуждать устройство вывода подсказывать пользователю для выполнения ввода. Процессор также осуществляет прием речевого ввода пользователя через устройство ввода, прием контекстной информации из источника контекста, причем контекстная информация включает данные, описывающие акустическую среду, в которой принимается речевой ввод. Далее процессор осуществляет интерпретацию принятого речевого ввода пользователя для получения представления о намерении пользователя. 2 н. и 18 з.п. ф-лы, 40 ил.

Description

Область техники, к которой относится изобретение
Настоящее изобретение относится к виртуальным помощникам, а более конкретно, к механизмам улучшения интерпретации и обработки команд, подаваемых такому помощнику.
Уровень техники
Современные электронные устройства могут получить доступ к большому, растущему и разнообразному количеству функций, услуг и информации как через Интернет, так и из других источников. Функциональные возможности таких устройств быстро увеличиваются, так как на многих бытовых устройствах, смартфонах, планшетных компьютерах и т.п. можно запускать программные приложения для выполнения различных задач и предоставления различных типов информации. Часто каждое приложение, функция, веб-сайт или особенность имеет свой собственный пользовательский интерфейс и свои собственные операционные парадигмы, многие из которых могут быть трудными для обучения или непреодолимыми для пользователей. Кроме того, многие пользователи могут испытывать затруднения даже в случае, когда обнаруживают, что функциональные возможности и/или информация доступны на их электронных устройствах или на различных веб-сайтах; таким образом, такие пользователи могут становиться недовольными или подавленными, или просто не смогут эффективно использовать ресурсы, доступные для них.
В частности, начинающий пользователь или лица, которые являются умственно отсталыми или неполноценными в некоторой степени и/или являются пожилыми, занятыми, расстроенными и/или управляют автомобилем, могут иметь затруднения, связанные с эффективным сопряжением с их электронными устройствами и/или с эффективным использованием он-лайн услуг. Такие пользователи с высокой степенью вероятности будут испытывать затруднения с большим количеством разнообразных и несовместимых функций, приложений и веб-сайтов, которые могут быть доступны для их использования.
Соответственно, существующие системы являются часто сложными для использования и навигации и часто предоставляют пользователям несовместимые и непреодолимые интерфейсы, которые часто мешают пользователям эффективно использовать технологии.
Интеллектуальный автоматический помощник, который также упоминается здесь как виртуальный помощник, позволяет обеспечить улучшенный интерфейс между человеком и компьютером. Такой помощник, который можно реализовать так, как описано в родственной полноценной заявке США порядковый номер 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, или любую другую операционную систему, которая адаптирована для использования на устройстве.
Хотя настоящее изобретение было описано по отношению к ограниченному числу вариантов осуществления, специалисты в данной области техники, имеющие выгоду от приведенного выше описания, оценят, что можно изобрести другие варианты осуществления, которые не отклоняются от объема настоящего изобретения, как описано здесь. Кроме того, следует отметить, что язык, используемый в описании, был, главным образом, выбран для удобочитаемости и цели обучения и не может быть выбран для ограничения или для установления границ или ограничения предмета изобретения. Соответственно, раскрытие настоящего изобретения предназначено для иллюстрации, но не ограничения объема изобретения, которое изложено в формуле изобретения.

Claims (20)

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, в которой устройство вывода, устройство ввода и, по меньшей мере, один процессор реализованы в виде компонентов, по меньшей мере одного, выбранного из группы, состоящей из:
телефона;
смартфона;
планшетного компьютера;
портативного персонального компьютера;
персонального цифрового помощника;
настольного компьютера;
информационного киоска;
бытового электронного устройства;
бытового развлекательного устройства;
музыкального проигрывателя;
фотоаппарата;
телевизора;
электронного игрового блока и
компьютерной приставки к телевизору.
RU2012141604/08A 2011-09-30 2012-09-28 Использование контекстной информации для облегчения обработки команд в виртуальном помощнике RU2542937C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/250,854 2011-09-30
US13/250,854 US9858925B2 (en) 2009-06-05 2011-09-30 Using context information to facilitate processing of commands in a virtual assistant

Publications (2)

Publication Number Publication Date
RU2012141604A RU2012141604A (ru) 2014-04-10
RU2542937C2 true RU2542937C2 (ru) 2015-02-27

Family

ID=47225421

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012141604/08A RU2542937C2 (ru) 2011-09-30 2012-09-28 Использование контекстной информации для облегчения обработки команд в виртуальном помощнике

Country Status (12)

Country Link
EP (3) EP2575128A3 (ru)
JP (6) JP5698203B2 (ru)
KR (7) KR101683083B1 (ru)
CN (1) CN103226949B (ru)
AU (1) AU2012232977A1 (ru)
BR (1) BR102012024861B1 (ru)
CA (2) CA2791277C (ru)
DE (1) DE102012019178A1 (ru)
GB (1) GB2495222B (ru)
MX (1) MX2012011426A (ru)
NL (1) NL2009544B1 (ru)
RU (1) RU2542937C2 (ru)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2614930C2 (ru) * 2015-06-05 2017-03-30 Закрытое акционерное общество "Лаборатория Касперского" Система и способ контроля исполнения приложений дополненной реальности, установленных на устройстве пользователя, в зависимости от состояния окружающей среды
RU2632160C2 (ru) * 2015-03-18 2017-10-02 Сяоми Инк. Способ, устройство и терминал для отображения сообщений приложения
RU2635902C1 (ru) * 2016-08-05 2017-11-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система отбора обучающих признаков для алгоритма машинного обучения
RU2643486C2 (ru) * 2015-09-15 2018-02-01 Сяоми Инк. Способ и устройство сбора информации
RU2701090C1 (ru) * 2018-12-19 2019-09-24 Самсунг Электроникс Ко., Лтд. Система и способ для автоматического выполнения команд, заданных пользователем
RU2721999C1 (ru) * 2019-03-18 2020-05-25 Сергей Александрович Гайдамаков Ассоциативная сеть контактов, заметок и/или событий
US11705111B2 (en) 2020-11-12 2023-07-18 Samsung Electronics Co., Ltd. Methods and systems for predicting non-default actions against unstructured utterances

Families Citing this family (358)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8181205B2 (en) 2002-09-24 2012-05-15 Russ Samuel H PVR channel and PVR IPG information
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN110442699A (zh) * 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US9728184B2 (en) 2013-06-18 2017-08-08 Microsoft Technology Licensing, Llc Restructuring deep neural network acoustic models
US9311298B2 (en) 2013-06-21 2016-04-12 Microsoft Technology Licensing, Llc Building conversational understanding systems using a toolset
US9589565B2 (en) 2013-06-21 2017-03-07 Microsoft Technology Licensing, Llc Environmentally aware dialog policies and response generation
CN103309618A (zh) 2013-07-02 2013-09-18 姜洪明 移动操作系统
US10956433B2 (en) 2013-07-15 2021-03-23 Microsoft Technology Licensing, Llc Performing an operation relative to tabular data based upon voice input
CN104423844B (zh) * 2013-08-30 2019-03-29 联想(北京)有限公司 一种信息处理方法、装置和电子设备
CN105453080A (zh) * 2013-08-30 2016-03-30 英特尔公司 用于虚拟个人助理的可扩展上下文感知的自然语言交互
JP2015052743A (ja) * 2013-09-09 2015-03-19 Necパーソナルコンピュータ株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US20150074524A1 (en) * 2013-09-10 2015-03-12 Lenovo (Singapore) Pte. Ltd. Management of virtual assistant action items
US9240182B2 (en) * 2013-09-17 2016-01-19 Qualcomm Incorporated Method and apparatus for adjusting detection threshold for activating voice assistant function
US9754591B1 (en) 2013-11-18 2017-09-05 Amazon Technologies, Inc. Dialog management context sharing
US10162813B2 (en) 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US8862467B1 (en) 2013-12-11 2014-10-14 Google Inc. Contextual speech recognition
CN105874531B (zh) * 2014-01-06 2020-06-26 株式会社Ntt都科摩 终端设备、服务器设备以及计算机可读记录介质
US8938394B1 (en) * 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
WO2015112149A1 (en) * 2014-01-23 2015-07-30 Nuance Communications, Inc. Method and apparatus for exploiting language skill information in automatic speech recognition
CN105934791B (zh) * 2014-01-31 2019-11-22 惠普发展公司,有限责任合伙企业 语音输入命令
US20150234930A1 (en) * 2014-02-19 2015-08-20 Google Inc. Methods and systems for providing functional extensions with a landing page of a creative
US9324321B2 (en) 2014-03-07 2016-04-26 Microsoft Technology Licensing, Llc Low-footprint adaptation and personalization for a deep neural network
CN103885596B (zh) * 2014-03-24 2017-05-24 联想(北京)有限公司 一种信息处理方法及电子设备
US9529794B2 (en) 2014-03-27 2016-12-27 Microsoft Technology Licensing, Llc Flexible schema for language model customization
US9710546B2 (en) * 2014-03-28 2017-07-18 Microsoft Technology Licensing, Llc Explicit signals personalized search
US10037758B2 (en) 2014-03-31 2018-07-31 Mitsubishi Electric Corporation Device and method for understanding user intent
US9614724B2 (en) 2014-04-21 2017-04-04 Microsoft Technology Licensing, Llc Session-based device configuration
US9520127B2 (en) 2014-04-29 2016-12-13 Microsoft Technology Licensing, Llc Shared hidden layer combination for speech recognition systems
US9430667B2 (en) 2014-05-12 2016-08-30 Microsoft Technology Licensing, Llc Managed wireless distribution network
US9384335B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content delivery prioritization in managed wireless distribution networks
US10111099B2 (en) 2014-05-12 2018-10-23 Microsoft Technology Licensing, Llc Distributing content in managed wireless distribution networks
US9384334B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content discovery in managed wireless distribution networks
US9874914B2 (en) 2014-05-19 2018-01-23 Microsoft Technology Licensing, Llc Power management contracts for accessory devices
US10726831B2 (en) 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
EP3480811A1 (en) 2014-05-30 2019-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
ES2894730T3 (es) * 2014-06-02 2022-02-15 Rovio Entertainment Ltd Control de un programa de ordenador
US10838378B2 (en) 2014-06-02 2020-11-17 Rovio Entertainment Ltd Control of a computer program using media content
US10037202B2 (en) 2014-06-03 2018-07-31 Microsoft Technology Licensing, Llc Techniques to isolating a portion of an online computing service
CN112102824A (zh) 2014-06-06 2020-12-18 谷歌有限责任公司 基于环境的主动聊天信息系统
US9367490B2 (en) 2014-06-13 2016-06-14 Microsoft Technology Licensing, Llc Reversible connector for accessory devices
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
KR102261552B1 (ko) 2014-06-30 2021-06-07 삼성전자주식회사 음성 명령어 제공 방법 및 이를 지원하는 전자 장치
US10015234B2 (en) 2014-08-12 2018-07-03 Sony Corporation Method and system for providing information via an intelligent user interface
CN104239767B (zh) * 2014-09-03 2018-05-01 陈飞 基于环境参数对自然语言命令自动补正操作序列以简化使用的装置及方法
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
CA2962636A1 (en) 2014-10-01 2016-04-07 XBrain, Inc. Voice and connection platform
KR101610151B1 (ko) * 2014-10-17 2016-04-08 현대자동차 주식회사 개인음향모델을 이용한 음성 인식장치 및 방법
CN104360897B (zh) * 2014-10-29 2017-09-22 百度在线网络技术(北京)有限公司 对话处理方法和对话管理系统
KR20160056548A (ko) * 2014-11-12 2016-05-20 삼성전자주식회사 질의 응답을 위한 디스플레이 장치 및 방법
DE102014224794B4 (de) * 2014-12-03 2024-02-29 Bayerische Motoren Werke Aktiengesellschaft Sprachassistenzverfahren für ein Kraftfahrzeug
US11327711B2 (en) 2014-12-05 2022-05-10 Microsoft Technology Licensing, Llc External visual interactions for speech-based devices
CN111427533B (zh) * 2014-12-11 2023-07-25 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
KR102241289B1 (ko) * 2014-12-12 2021-04-16 엘지전자 주식회사 디스플레이 장치 및 그 제어 방법
US9552816B2 (en) * 2014-12-19 2017-01-24 Amazon Technologies, Inc. Application focus in speech-based systems
WO2016102268A1 (de) * 2014-12-22 2016-06-30 Volkswagen Ag Fingerleiste und anwendung der fingerleiste
US9836452B2 (en) * 2014-12-30 2017-12-05 Microsoft Technology Licensing, Llc Discriminating ambiguous expressions to enhance user experience
US10713005B2 (en) 2015-01-05 2020-07-14 Google Llc Multimodal state circulation
US10152299B2 (en) * 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) * 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US20160320198A1 (en) * 2015-04-29 2016-11-03 Ford Global Technologies, Llc Ride-sharing routing using contextual constraints
US10114676B2 (en) * 2015-05-05 2018-10-30 Microsoft Technology Licensing, Llc Building multimodal collaborative dialogs with task frames
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US20180190272A1 (en) * 2015-06-30 2018-07-05 Nuance Communications, Inc. Method and apparatus for processing user input
US10249297B2 (en) * 2015-07-13 2019-04-02 Microsoft Technology Licensing, Llc Propagating conversational alternatives using delayed hypothesis binding
DE102015213722B4 (de) * 2015-07-21 2020-01-23 Volkswagen Aktiengesellschaft Verfahren zum Betreiben eines Spracherkennungssystems in einem Fahrzeug und Spracherkennungssystem
US10686738B2 (en) 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
CN106469040B (zh) 2015-08-19 2019-06-21 华为终端有限公司 通信方法、服务器及设备
US10339916B2 (en) 2015-08-31 2019-07-02 Microsoft Technology Licensing, Llc Generation and application of universal hypothesis ranking model
US10503265B2 (en) * 2015-09-08 2019-12-10 Microvision, Inc. Mixed-mode depth detection
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
JP6952690B2 (ja) * 2015-11-25 2021-10-20 マイクロソフト テクノロジー ライセンシング,エルエルシー 自動的な音声対話スクリプトの発見
CN106814639A (zh) * 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制系统及方法
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
KR20180093040A (ko) 2015-12-21 2018-08-20 구글 엘엘씨 메시지 교환 스레드들에 대한 자동적인 제안들
WO2017112796A1 (en) 2015-12-21 2017-06-29 Google Inc. Automatic suggestions and other content for messaging applications
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10049666B2 (en) * 2016-01-06 2018-08-14 Google Llc Voice recognition system
US10276162B2 (en) 2016-02-12 2019-04-30 Samsung Electronics Co., Ltd. Method and electronic device for performing voice based actions
DE202016107174U1 (de) * 2016-03-09 2017-06-13 Simone Hajek-Glöckner Einrichtung zur psychischen Selbstschulung
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10133612B2 (en) * 2016-03-17 2018-11-20 Nuance Communications, Inc. Session processing interaction between two or more virtual assistants
US10757048B2 (en) 2016-04-08 2020-08-25 Microsoft Technology Licensing, Llc Intelligent personal assistant as a contact
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US10319371B2 (en) * 2016-05-04 2019-06-11 GM Global Technology Operations LLC Disambiguation of vehicle speech commands
US10291565B2 (en) * 2016-05-17 2019-05-14 Google Llc Incorporating selectable application links into conversations with personal assistant modules
US10263933B2 (en) * 2016-05-17 2019-04-16 Google Llc Incorporating selectable application links into message exchange threads
US20170337284A1 (en) * 2016-05-17 2017-11-23 Google Inc. Determining and using attributes of message exchange thread participants
US10783178B2 (en) 2016-05-17 2020-09-22 Google Llc Generating a personal database entry for a user based on natural language user interface input of the user and generating output based on the entry in response to further natural language user interface input of the user
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10282218B2 (en) * 2016-06-07 2019-05-07 Google Llc Nondeterministic task initiation by a personal assistant module
US10462619B2 (en) * 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
US10049663B2 (en) * 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10586535B2 (en) * 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK179343B1 (en) * 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10474946B2 (en) 2016-06-24 2019-11-12 Microsoft Technology Licensing, Llc Situation aware personal assistant
DE102016212073A1 (de) * 2016-07-04 2018-01-04 Bayerische Motoren Werke Aktiengesellschaft Fortbewegungsmittel, Vorrichtung und Verfahren zur Aktivierung einer Empfangsfunktion eines Assistentensystems in einem Fortbewegungsmittel
CN106250474B (zh) * 2016-07-29 2020-06-23 Tcl科技集团股份有限公司 一种语音控制的处理方法及系统
US10192551B2 (en) * 2016-08-30 2019-01-29 Google Llc Using textual input and user state information to generate reply content to present in response to the textual input
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
JP7441650B2 (ja) * 2016-09-16 2024-03-01 オラクル・インターナショナル・コーポレイション エンティティベースの通信を有する、インターネットクラウドによってホストされた自然言語インタラクティブメッセージングシステム
US10015124B2 (en) 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
JP6659910B2 (ja) 2016-09-20 2020-03-04 グーグル エルエルシー データへのアクセス許可を要求するボット
CN109952572B (zh) 2016-09-20 2023-11-24 谷歌有限责任公司 基于消息贴纸的建议响应
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US20180096072A1 (en) * 2016-10-03 2018-04-05 Google Inc. Personalization of a virtual assistant
US10552742B2 (en) * 2016-10-14 2020-02-04 Google Llc Proactive virtual assistant
EP3312724B1 (en) 2016-10-21 2019-10-30 Fujitsu Limited Microservice-based data processing apparatus, method, and program
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
EP3312722A1 (en) 2016-10-21 2018-04-25 Fujitsu Limited Data processing apparatus, method, and program
CN106601216A (zh) * 2016-11-30 2017-04-26 宇龙计算机通信科技(深圳)有限公司 通过音乐实现电子设备控制的方法及系统
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
KR20180075009A (ko) * 2016-12-26 2018-07-04 현대자동차주식회사 음성 처리 장치, 이를 포함하는 차량 및 음성 처리 방법
US10924376B2 (en) * 2016-12-30 2021-02-16 Google Llc Selective sensor polling
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
KR102338990B1 (ko) 2017-01-23 2021-12-14 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20180102871A (ko) * 2017-03-08 2018-09-18 엘지전자 주식회사 이동단말기 및 이동단말기의 차량 제어 방법
US10636418B2 (en) 2017-03-22 2020-04-28 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
CN107122179A (zh) 2017-03-31 2017-09-01 阿里巴巴集团控股有限公司 语音的功能控制方法和装置
CN107146610B (zh) * 2017-04-10 2021-06-15 易视星空科技无锡有限公司 一种用户意图的确定方法及装置
US20180308481A1 (en) * 2017-04-20 2018-10-25 Semantic Machines, Inc. Automated assistant data flow
US20180314532A1 (en) * 2017-04-26 2018-11-01 Google Inc. Organizing messages exchanged in human-to-computer dialogs with automated assistants
KR102309031B1 (ko) 2017-04-27 2021-10-06 삼성전자 주식회사 지능형 에이전트 관리 방법 및 장치
KR102375800B1 (ko) * 2017-04-28 2022-03-17 삼성전자주식회사 음성 인식 서비스를 제공하는 전자 장치 및 그 방법
KR102380717B1 (ko) 2017-04-30 2022-03-31 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 이 전자 장치의 제어 방법
US9865260B1 (en) 2017-05-03 2018-01-09 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
WO2018209093A1 (en) * 2017-05-11 2018-11-15 Apple Inc. Offline personal assistant
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
CN110637339B (zh) * 2017-05-15 2023-05-09 苹果公司 使用隐式反馈优化数字助理的对话策略决策
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10275651B2 (en) * 2017-05-16 2019-04-30 Google Llc Resolving automated assistant requests that are based on image(s) and/or other sensor data
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10891485B2 (en) 2017-05-16 2021-01-12 Google Llc Image archival based on image categories
US11074280B2 (en) * 2017-05-18 2021-07-27 Aiqudo, Inc Cluster based search and recommendation method to rapidly on-board commands in personal assistants
US10664533B2 (en) * 2017-05-24 2020-05-26 Lenovo (Singapore) Pte. Ltd. Systems and methods to determine response cue for digital assistant based on context
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
CN109102802B (zh) 2017-06-21 2023-10-17 三星电子株式会社 用于处理用户话语的系统
US10742435B2 (en) * 2017-06-29 2020-08-11 Google Llc Proactive provision of new content to group chat participants
US11017037B2 (en) * 2017-07-03 2021-05-25 Google Llc Obtaining responsive information from multiple corpora
KR102406718B1 (ko) * 2017-07-19 2022-06-10 삼성전자주식회사 컨텍스트 정보에 기반하여 음성 입력을 수신하는 지속 기간을 결정하는 전자 장치 및 시스템
CN117112761A (zh) 2017-09-05 2023-11-24 声音猎手公司 域间通过语法槽的分类
US11074911B2 (en) * 2017-09-05 2021-07-27 First Advantage Corporation Digital assistant
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10394957B2 (en) 2017-09-25 2019-08-27 Microsoft Technology Licensing, Llc Signal analysis in a conversational scheduling assistant computing system
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
KR102487669B1 (ko) 2017-09-29 2023-01-13 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
CN107773982B (zh) * 2017-10-20 2021-08-13 科大讯飞股份有限公司 游戏语音交互方法及装置
WO2019103200A1 (ko) * 2017-11-23 2019-05-31 주식회사 모다 통합 음성비서 서비스 제공 방법 및 장치
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
CN110741338B (zh) * 2017-12-08 2023-06-16 谷歌有限责任公司 使设备与环境中的多个设备隔离以响应口头助理调用
CN109920429A (zh) * 2017-12-13 2019-06-21 上海擎感智能科技有限公司 一种用于车载的语音识别数据处理方法及系统
US11836592B2 (en) * 2017-12-15 2023-12-05 International Business Machines Corporation Communication model for cognitive systems
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
KR102532300B1 (ko) * 2017-12-22 2023-05-15 삼성전자주식회사 어플리케이션 실행 방법 및 이를 위한 장치
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
KR102066451B1 (ko) * 2018-02-02 2020-01-15 주식회사 오비고 차량용 ai 서비스를 제공하는 방법 및 이를 이용한 장치
CN110209776B (zh) * 2018-02-13 2023-10-27 鼎捷软件股份有限公司 操作虚拟助理的方法及系统
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
KR102448388B1 (ko) * 2018-03-05 2022-09-28 구글 엘엘씨 자동화 어시스턴트를 이용한 이전 대화 컨텍스트사이의 전환
KR102508677B1 (ko) * 2018-03-08 2023-03-13 삼성전자주식회사 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) * 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11056107B2 (en) * 2018-03-30 2021-07-06 International Business Machines Corporation Conversational framework
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11113473B2 (en) * 2018-04-02 2021-09-07 SoundHound Inc. Interpreting expressions having potentially ambiguous meanings in different domains
CN109948017B (zh) * 2018-04-26 2021-03-30 华为技术有限公司 一种信息处理方法及装置
WO2019212267A1 (en) 2018-05-02 2019-11-07 Samsung Electronics Co., Ltd. Contextual recommendation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10877718B2 (en) 2018-05-07 2020-12-29 Spotify Ab Adaptive voice communication
CN110489517B (zh) * 2018-05-09 2023-10-31 鼎捷软件股份有限公司 虚拟助理的自动学习方法及系统
KR20190131741A (ko) * 2018-05-17 2019-11-27 현대자동차주식회사 대화 시스템 및 대화 처리 방법
KR20200001188A (ko) 2018-06-27 2020-01-06 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR102562227B1 (ko) 2018-06-12 2023-08-02 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR20200042127A (ko) 2018-10-15 2020-04-23 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20200006739A (ko) 2018-07-11 2020-01-21 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
KR20190133100A (ko) 2018-05-22 2019-12-02 삼성전자주식회사 어플리케이션을 이용하여 음성 입력에 대한 응답을 출력하는 전자 장치 및 그 동작 방법
EP3576084B1 (de) 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
KR20190135676A (ko) 2018-05-29 2019-12-09 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
KR20200000155A (ko) 2018-06-22 2020-01-02 현대자동차주식회사 대화 시스템 및 이를 이용한 차량
KR20200000604A (ko) 2018-06-25 2020-01-03 현대자동차주식회사 대화 시스템 및 대화 처리 방법
US11386338B2 (en) * 2018-07-05 2022-07-12 International Business Machines Corporation Integrating multiple domain problem solving in a dialog system for a user
KR20200006738A (ko) 2018-07-11 2020-01-21 현대자동차주식회사 대화 시스템 및 대화 처리 방법
US11075007B2 (en) 2018-07-18 2021-07-27 International Business Machines Corporation Dynamic selection of virtual agents in a mutli-domain expert system
WO2020040517A1 (en) * 2018-08-20 2020-02-27 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
JP7159707B2 (ja) * 2018-09-04 2022-10-25 富士フイルムビジネスイノベーション株式会社 表示装置及びプログラム
KR20200027753A (ko) * 2018-09-05 2020-03-13 삼성전자주식회사 전자 장치 및 단축 명령어에 대응하는 태스크 수행 방법
CN110930999A (zh) * 2018-09-19 2020-03-27 上海博泰悦臻电子设备制造有限公司 语音互动方法、装置及车辆
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
WO2020085924A1 (en) 2018-10-26 2020-04-30 Motorola Solutions, Inc Device, system and method for modifying actions associated with an emergency call
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11386889B2 (en) * 2018-12-03 2022-07-12 Google Llc Contextual tagging and biasing of grammars inside word lattices
JP7286772B2 (ja) * 2018-12-28 2023-06-05 グーグル エルエルシー 選択されたサジェスチョンによる自動アシスタントへのボイス入力の補足
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11455982B2 (en) 2019-01-07 2022-09-27 Cerence Operating Company Contextual utterance resolution in multimodal systems
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
KR20200119531A (ko) 2019-04-10 2020-10-20 삼성전자주식회사 자연어 응답을 생성하는 전자 장치 및 자연어 응답 생성 방법
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
WO2020231522A1 (en) * 2019-05-10 2020-11-19 Google Llc Using context information with end-to-end models for speech recognition
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
CN113424145A (zh) * 2019-05-31 2021-09-21 谷歌有限责任公司 将多模态环境数据动态地分配给助理动作请求以便与后续请求相关
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
KR102425473B1 (ko) * 2019-05-31 2022-07-25 애플 인크. 온-디바이스 목표설정 및 개인화를 통한 음성 어시스턴트 발견가능성
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CN110211584A (zh) * 2019-06-04 2019-09-06 广州小鹏汽车科技有限公司 车辆控制方法、装置、存储介质及控制终端
CN110413654B (zh) * 2019-06-20 2023-11-21 平安科技(深圳)有限公司 一种确定客户可信联系信息的方法、装置、计算机设备和存储介质
US11438452B1 (en) 2019-08-09 2022-09-06 Apple Inc. Propagating context information in a privacy preserving manner
CN112397062A (zh) * 2019-08-15 2021-02-23 华为技术有限公司 语音交互方法、装置、终端及存储介质
EP4034984A1 (en) * 2019-09-24 2022-08-03 Apple Inc. Resolving natural language ambiguities with respect to a simulated reality setting
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US20210104220A1 (en) * 2019-10-08 2021-04-08 Sarah MENNICKEN Voice assistant with contextually-adjusted audio output
KR20210046475A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 전자 장치 및 이의 음성 인식 기능 구동 방법
KR102135859B1 (ko) 2019-10-24 2020-07-20 주식회사 유니온플레이스 개인화된 가상 비서를 제공하는 장치
US20210125610A1 (en) * 2019-10-29 2021-04-29 Facebook Technologies, Llc Ai-driven personal assistant with adaptive response generation
US11227583B2 (en) 2019-11-05 2022-01-18 International Business Machines Corporation Artificial intelligence voice response system having variable modes for interaction with user
US11574634B2 (en) 2019-11-27 2023-02-07 Google Llc Interfacing with applications via dynamically updating natural language processing
US11514896B2 (en) 2019-11-27 2022-11-29 Google Llc Interfacing with applications via dynamically updating natural language processing
CN110995936B (zh) * 2019-12-19 2021-03-19 大众问问(北京)信息科技有限公司 一种语音交互方法、装置及设备
CN111061453B (zh) * 2019-12-26 2023-12-26 北京官匠空间科技有限公司 一种用于app生态系统的语音交互方法、装置
CN111222322B (zh) * 2019-12-31 2022-10-25 联想(北京)有限公司 信息处理方法和电子设备
WO2021192794A1 (ja) * 2020-03-25 2021-09-30 ソニーグループ株式会社 情報処理装置及び情報処理方法
CN111488441B (zh) * 2020-04-08 2023-08-01 北京百度网讯科技有限公司 问题解析方法、装置、知识图谱问答系统和电子设备
KR102389179B1 (ko) * 2020-04-14 2022-04-22 주식회사 오비고 차량 AVN 시스템의 상태 정보를 이용한 차량앱 제어 방법 및 이를 이용한 AI Service Agent
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN112182373B (zh) * 2020-09-25 2023-06-02 中国人民大学 一种基于上下文表示学习的性化搜索方法
EP3989057A1 (de) * 2020-10-23 2022-04-27 Deutsche Telekom AG Adaptiver sprachassistent bedienbar durch einen nutzer mittels eines nutzerendgeräts
CN112631138A (zh) * 2020-12-09 2021-04-09 创维集团有限公司 一种基于智能家居智能控制系统的办公控制方法
US11705125B2 (en) 2021-03-26 2023-07-18 International Business Machines Corporation Dynamic voice input detection for conversation assistants
CN113297359B (zh) * 2021-04-23 2023-11-28 阿里巴巴新加坡控股有限公司 交互信息的方法以及装置
DE102021120246A1 (de) 2021-08-04 2023-02-09 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
US20230108256A1 (en) * 2021-08-11 2023-04-06 MeetKai, Inc. Conversational artificial intelligence system in a virtual reality space
US20230124889A1 (en) * 2021-10-15 2023-04-20 Rovi Guides, Inc. Systems and methods to generate contextual based actions
TWI823195B (zh) * 2021-11-25 2023-11-21 荷蘭商荷蘭移動驅動器公司 智慧推薦方法及系統
DE102022112444A1 (de) 2022-05-18 2023-11-23 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
CN115064168B (zh) * 2022-08-17 2022-12-13 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质
WO2024049459A1 (en) * 2022-08-30 2024-03-07 Google Llc Reducing metadata transmitted with automated assistant requests
WO2024058474A1 (ko) * 2022-09-15 2024-03-21 삼성전자주식회사 음성 인식을 수행하는 전자 장치 및 이의 제어 방법
WO2024071469A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 인공지능 기기 및 그의 동작 방법
CN115565519B (zh) * 2022-11-30 2023-04-07 广汽埃安新能源汽车股份有限公司 对话语音生成方法、装置、设备、计算机可读介质
US11695867B1 (en) 2022-12-07 2023-07-04 V Group Inc. Methods and systems for facilitating context-to-call communications between communication points via dedicated context-to-call-enabled contact numbers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2349970C2 (ru) * 2003-01-09 2009-03-20 Моторола, Инк. Блок разрешения диалога голосового браузера для системы связи
RU2364917C2 (ru) * 2003-10-24 2009-08-20 Майкрософт Корпорейшн Система и способ установки и выполнения прикладных программ предпочтений

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339288A (ja) * 1995-06-14 1996-12-24 Canon Inc 情報処理装置及びその制御方法
BR9610290A (pt) * 1995-09-14 1999-03-16 Ericsson Ge Mobile Inc Processo para aumentar a inteligibilidade de voz em sinais de áudio aparelho para reduzir ruído em quadros recebidos de sinais de áudio digitalizados e sistema de telecomunicações
US6584439B1 (en) * 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
US20030093281A1 (en) * 1999-05-21 2003-05-15 Michael Geilhufe Method and apparatus for machine to machine communication using speech
US6324512B1 (en) * 1999-08-26 2001-11-27 Matsushita Electric Industrial Co., Ltd. System and method for allowing family members to access TV contents and program media recorder over telephone or internet
JP4200607B2 (ja) * 1999-09-03 2008-12-24 ソニー株式会社 情報処理装置および方法、並びにプログラム格納媒体
JP3941299B2 (ja) * 1999-10-12 2007-07-04 三菱電機株式会社 音声対話装置
US6353794B1 (en) * 1999-10-19 2002-03-05 Ar Group, Inc. Air travel information and computer data compilation, retrieval and display method and system
JP2001216131A (ja) * 2000-02-04 2001-08-10 Sony Corp 情報処理装置および方法、並びにプログラム格納媒体
KR100380829B1 (ko) * 2000-09-09 2003-04-18 주식회사 모빅텔커뮤니케이션스 에이전트를 이용한 대화 방식 인터페이스 운영 시스템 및방법과 그 프로그램 소스를 기록한 기록 매체
US20020087306A1 (en) * 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented noise normalization method and system
US7257537B2 (en) * 2001-01-12 2007-08-14 International Business Machines Corporation Method and apparatus for performing dialog management in a computer conversational interface
US7031916B2 (en) * 2001-06-01 2006-04-18 Texas Instruments Incorporated Method for converging a G.729 Annex B compliant voice activity detection circuit
US20030233230A1 (en) * 2002-06-12 2003-12-18 Lucent Technologies Inc. System and method for representing and resolving ambiguity in spoken dialogue systems
JP2004239963A (ja) * 2003-02-03 2004-08-26 Mitsubishi Electric Corp 車載制御装置
KR20040088975A (ko) * 2003-04-14 2004-10-20 주식회사 케이티 개인비서 전화서비스 시스템 및 그 방법
US7302392B1 (en) * 2003-10-07 2007-11-27 Sprint Spectrum L.P. Voice browser with weighting of browser-level grammar to enhance usability
US20060036430A1 (en) 2004-08-12 2006-02-16 Junling Hu System and method for domain-based natural language consultation
US8942985B2 (en) * 2004-11-16 2015-01-27 Microsoft Corporation Centralized method and system for clarifying voice commands
US7826945B2 (en) * 2005-07-01 2010-11-02 You Zhang Automobile speech-recognition interface
US7949529B2 (en) * 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US8126120B2 (en) * 2005-12-12 2012-02-28 Tellme Networks, Inc. Providing missed call and message information
US7657849B2 (en) * 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US7480870B2 (en) 2005-12-23 2009-01-20 Apple Inc. Indication of progress towards satisfaction of a user input condition
IL174107A0 (en) * 2006-02-01 2006-08-01 Grois Dan Method and system for advertising by means of a search engine over a data network
US7599861B2 (en) * 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
JP5146979B2 (ja) * 2006-06-02 2013-02-20 株式会社国際電気通信基礎技術研究所 自然言語における多義解消装置及びコンピュータプログラム
US8423347B2 (en) * 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8073681B2 (en) * 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US20080147411A1 (en) * 2006-12-19 2008-06-19 International Business Machines Corporation Adaptation of a speech processing system from external input that is not directly related to sounds in an operational acoustic environment
US8762143B2 (en) * 2007-05-29 2014-06-24 At&T Intellectual Property Ii, L.P. Method and apparatus for identifying acoustic background environments based on time and speed to enhance automatic speech recognition
US9954996B2 (en) 2007-06-28 2018-04-24 Apple Inc. Portable electronic device with conversation management for incoming instant messages
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US20090182562A1 (en) * 2008-01-14 2009-07-16 Garmin Ltd. Dynamic user interface for automated speech recognition
US8121837B2 (en) * 2008-04-24 2012-02-21 Nuance Communications, Inc. Adjusting a speech engine for a mobile computing device based on background noise
US8082148B2 (en) * 2008-04-24 2011-12-20 Nuance Communications, Inc. Testing a grammar used in speech recognition for reliability in a plurality of operating environments having different background noise
KR101462932B1 (ko) 2008-05-28 2014-12-04 엘지전자 주식회사 이동 단말기 및 그의 텍스트 수정방법
JP2010066519A (ja) * 2008-09-11 2010-03-25 Brother Ind Ltd 音声対話装置、音声対話方法、および音声対話プログラム
JP2010079103A (ja) * 2008-09-26 2010-04-08 Brother Ind Ltd 音声対話装置及びそのプログラム並びに音声対話処理方法
US8285545B2 (en) * 2008-10-03 2012-10-09 Volkswagen Ag Voice command acquisition system and method
US8584031B2 (en) 2008-11-19 2013-11-12 Apple Inc. Portable touch screen device, method, and graphical user interface for using emoji characters
US20100146437A1 (en) 2008-12-04 2010-06-10 Microsoft Corporation Glanceable animated notifications on a locked device
US8539382B2 (en) 2009-04-03 2013-09-17 Palm, Inc. Preventing unintentional activation and/or input in an electronic device
US20120311585A1 (en) * 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
US9117448B2 (en) * 2009-07-27 2015-08-25 Cisco Technology, Inc. Method and system for speech recognition using social networks
US9197736B2 (en) * 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
US8301121B2 (en) * 2010-01-22 2012-10-30 Sony Ericsson Mobile Communications Ab Regulating alerts generated by communication terminals responsive to sensed movement
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
EP2559030B1 (en) * 2010-03-19 2017-06-21 Digimarc Corporation Intuitive computing methods and systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2349970C2 (ru) * 2003-01-09 2009-03-20 Моторола, Инк. Блок разрешения диалога голосового браузера для системы связи
RU2364917C2 (ru) * 2003-10-24 2009-08-20 Майкрософт Корпорейшн Система и способ установки и выполнения прикладных программ предпочтений

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2632160C2 (ru) * 2015-03-18 2017-10-02 Сяоми Инк. Способ, устройство и терминал для отображения сообщений приложения
RU2614930C2 (ru) * 2015-06-05 2017-03-30 Закрытое акционерное общество "Лаборатория Касперского" Система и способ контроля исполнения приложений дополненной реальности, установленных на устройстве пользователя, в зависимости от состояния окружающей среды
RU2643486C2 (ru) * 2015-09-15 2018-02-01 Сяоми Инк. Способ и устройство сбора информации
US10216711B2 (en) 2015-09-15 2019-02-26 Xiaomi Inc. Information collection method and apparatus
RU2635902C1 (ru) * 2016-08-05 2017-11-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система отбора обучающих признаков для алгоритма машинного обучения
US10839315B2 (en) 2016-08-05 2020-11-17 Yandex Europe Ag Method and system of selecting training features for a machine learning algorithm
RU2701090C1 (ru) * 2018-12-19 2019-09-24 Самсунг Электроникс Ко., Лтд. Система и способ для автоматического выполнения команд, заданных пользователем
RU2721999C1 (ru) * 2019-03-18 2020-05-25 Сергей Александрович Гайдамаков Ассоциативная сеть контактов, заметок и/или событий
US11705111B2 (en) 2020-11-12 2023-07-18 Samsung Electronics Co., Ltd. Methods and systems for predicting non-default actions against unstructured utterances

Also Published As

Publication number Publication date
KR102145660B1 (ko) 2020-08-18
KR20130035983A (ko) 2013-04-09
EP2575128A3 (en) 2013-08-14
JP7357113B2 (ja) 2023-10-05
NL2009544B1 (en) 2017-05-24
GB201217449D0 (en) 2012-11-14
BR102012024861A2 (pt) 2017-02-14
JP2015122104A (ja) 2015-07-02
KR102309489B1 (ko) 2021-10-07
JP2017139004A (ja) 2017-08-10
DE102012019178A1 (de) 2013-04-04
JP2013080476A (ja) 2013-05-02
KR102048375B1 (ko) 2019-11-25
CA2791277A1 (en) 2013-03-30
KR20160142802A (ko) 2016-12-13
JP2023169360A (ja) 2023-11-29
JP5698203B2 (ja) 2015-04-08
KR20220136304A (ko) 2022-10-07
CN103226949A (zh) 2013-07-31
CN103226949B (zh) 2017-02-01
KR101683083B1 (ko) 2016-12-07
JP7082645B2 (ja) 2022-06-08
BR102012024861B1 (pt) 2021-02-09
KR20180052112A (ko) 2018-05-17
JP6740162B2 (ja) 2020-08-12
KR102447546B1 (ko) 2022-09-26
NL2009544A (en) 2013-04-03
JP2022119908A (ja) 2022-08-17
KR20190132321A (ko) 2019-11-27
JP2020194557A (ja) 2020-12-03
GB2495222B (en) 2016-10-26
AU2012232977A1 (en) 2013-04-18
CA2791277C (en) 2019-01-15
EP3392876A1 (en) 2018-10-24
JP6285883B2 (ja) 2018-02-28
KR20240010057A (ko) 2024-01-23
EP3200185A1 (en) 2017-08-02
EP2575128A2 (en) 2013-04-03
KR20210122755A (ko) 2021-10-12
CA3023918C (en) 2022-11-29
MX2012011426A (es) 2013-04-01
GB2495222A (en) 2013-04-03
CA3023918A1 (en) 2013-03-30
RU2012141604A (ru) 2014-04-10
KR102622737B1 (ko) 2024-01-10

Similar Documents

Publication Publication Date Title
KR102622737B1 (ko) 가상 비서에서 커맨드 처리를 용이하게 하기 위한 컨텍스트 정보의 이용
US20230409283A1 (en) Interface for a virtual digital assistant
AU2017203847B2 (en) Using context information to facilitate processing of commands in a virtual assistant
US10475446B2 (en) Using context information to facilitate processing of commands in a virtual assistant
CN112015531B (zh) 用于将第三方服务与数字助理相结合的系统和方法