RU2710984C2 - Совершение задачи без монитора в цифровом персональном помощнике - Google Patents

Совершение задачи без монитора в цифровом персональном помощнике Download PDF

Info

Publication number
RU2710984C2
RU2710984C2 RU2017124103A RU2017124103A RU2710984C2 RU 2710984 C2 RU2710984 C2 RU 2710984C2 RU 2017124103 A RU2017124103 A RU 2017124103A RU 2017124103 A RU2017124103 A RU 2017124103A RU 2710984 C2 RU2710984 C2 RU 2710984C2
Authority
RU
Russia
Prior art keywords
user
voice
application
task
personal assistant
Prior art date
Application number
RU2017124103A
Other languages
English (en)
Other versions
RU2017124103A3 (ru
RU2017124103A (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
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2017124103A publication Critical patent/RU2017124103A/ru
Publication of RU2017124103A3 publication Critical patent/RU2017124103A3/ru
Application granted granted Critical
Publication of RU2710984C2 publication Critical patent/RU2710984C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Machine Translation (AREA)
  • Collating Specific Patterns (AREA)
  • Document Processing Apparatus (AREA)

Abstract

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

Description

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0001] По мере развития вычислительной технологии, стали доступны все более мощные вычислительные устройства. Например, вычислительные устройства все чаще добавляют функции, такие как распознавание речи. Речь может быть эффективным способом общения пользователя с вычислительным устройством, и разрабатываются приложения с речевым управлением, такие как цифровые персональные помощники с речевым управлением.
[0002] Цифровой персональный помощник может быть использован, чтобы выполнять задачи или услуги для индивидуума. Например, цифровой персональный помощник может быть модулем программного обеспечения, работающим на мобильном устройстве или настольном компьютере. Примеры задач и услуг, которые могут быть выполнены посредством цифрового персонального помощника, могут включать в себя извлечение погодных условий и прогнозов, спортивных результатов, дорожных направлений и условий, местных и/или национальных новостных материалов, и цен на акции; администрирование расписания пользователя посредством создания новых записей расписания, и напоминания о предстоящих событиях; и хранение и извлечение напоминаний.
[0003] Тем не менее, вполне вероятно, что цифровой персональный помощник не может выполнять каждую задачу, которую пользователь может захотеть, чтобы она была выполнена. Вследствие этого, существует достаточная возможность для улучшения технологий, связанных с цифровыми персональными помощниками с речевым управлением.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Это краткое изложение сущности изобретения приведено для ознакомления с подборкой концепций в упрощенной форме, которые дополнительно описываются ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначена ни для того, чтобы идентифицировать ключевые или неотъемлемые признаки заявленного изобретения, ни для того, чтобы быть использованной для ограничения объема заявленного изобретения.
[0005] Описываются методики и инструменты для совершения без монитора задачи приложения в фоне цифрового персонального помощника. Например, способ может быть реализован посредством вычислительного устройства, содержащего микрофон. Способ может содержать этап, на котором принимают, посредством цифрового персонального помощника с голосовым управлением, цифровой голосовой ввод, сгенерированный пользователем. Цифровой голосовой ввод может быть принят через микрофон. Обработка естественного языка может быть выполнена, используя цифровой голосовой ввод, чтобы выявить голосовую команду пользователя. Голосовая команда пользователя может содержать запрос на выполнение предварительно определенной функции стороннего приложения с голосовой поддержкой. Предварительно определенная функция может быть идентифицирована, используя структуру данных, которая определяет функции, поддерживаемые доступными сторонними приложениями с голосовой поддержкой, используя голосовой ввод. Стороннему приложению с голосовой поддержкой может быть предписано исполнить предварительно определенную функцию в качестве фонового процесса без появления пользовательского интерфейса стороннего приложения с голосовой поддержкой на дисплее вычислительного устройства. Ответ может быть принят от стороннего приложения с голосовой поддержкой, указывающий состояние, ассоциированное с предварительно определенной функцией. Пользовательский интерфейс цифрового персонального помощника с голосовым управлением может предоставлять пользователю ответ на основе принятого состояния, ассоциированного с предварительно определенной функцией, так что ответ происходит в контексте пользовательского интерфейса цифрового персонального помощника с голосовым управлением, без демонстрации пользовательского интерфейса стороннего приложения с голосовой поддержкой.
[0006] В качестве другого примера, вычислительные устройства, содержащие блоки обработки, память и один или более микрофонов, могут быть предоставлены для выполнения операций, описываемых в данном документе. Например, способ, выполняемый посредством вычислительного устройства, может включать в себя этап, на котором принимают речевой ввод, сгенерированный пользователем через один или более микрофонов. Распознавание речи может быть выполнено, используя речевой ввод, чтобы выявить произносимую команду. Произносимая команда может содержать запрос на выполнение задачи стороннего приложения. Задача может быть идентифицирована используя структуру данных, которая определяет задачи сторонних приложений, которые могут быть задействованы произносимой командой. Может быть установлено, является ли задача стороннего приложения приспособленной для исполнения без монитора. Может быть предписано исполнение стороннего приложения в качестве фонового процесса, чтобы исполнять без монитора задачу, когда установлено, что задача стороннего приложения приспособлена для исполнения без монитора. Может быть принят ответ от стороннего приложения, указывающий состояние, ассоциированное с задачей. Пользовательский интерфейс цифрового персонального помощника с речевым управлением может предоставлять пользователю ответ на основе принятого состояния, ассоциированного с задачей, так что ответ происходит в контексте пользовательского интерфейса цифрового персонального помощника с речевым управлением без демонстрации пользовательского интерфейса стороннего приложения.
[0007] В качестве другого примера, могут быть предоставлены вычислительные устройства, содержащие блоки обработки и память, для выполнения операций, описываемых в данном документе. Например, вычислительное устройство может выполнять операции для совершения задачи приложения с голосовой поддержкой в контексте цифрового персонального помощника с голосовым управлением. Операции могут содержать прием цифрового голосового ввода, сгенерированного пользователем в цифровом персональном помощнике с голосовым управлением. Цифровой голосовой ввод может быть принят через микрофон. Обработка естественного языка может быть выполнена, используя цифровой голосовой ввод, чтобы выявить голосовую команду пользователя. Голосовая команда пользователя может содержать запрос на выполнение задачи приложения с голосовой поддержкой. Задача может быть идентифицирована используя расширяемую структуру данных, которая соотносит голосовые команды пользователя с задачами приложений с голосовой поддержкой. Может быть установлено, является ли задача приложения с голосовой поддержкой приоритетной задачей или фоновой задачей. Когда установлено, что задача является фоновой задачей, приложению с голосовой поддержкой может быть предписано исполнить задачу в качестве фоновой задачи и в контексте цифрового персонального помощника с голосовым управлением без демонстрации пользовательского интерфейса приложения с голосовой поддержкой. Может быть принят ответ от приложения с голосовой поддержкой. Ответ может указывать состояние, ассоциированное с задачей. Ответ может быть предоставлен пользователю на основе принятого состояния, ассоциированного с задачей. Ответ может быть предоставлен в контексте цифрового персонального помощника с голосовым управлением без демонстрации пользовательского интерфейса приложения с голосовой поддержкой, когда установлено, что задача является фоновой задачей.
[0008] Как описано в данном документе, многообразие других признаков и преимуществ может быть включено в технологии по желанию.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Фиг. 1 является схемой, изображающей пример системы для совершения без монитора задачи приложения в фоне цифрового персонального помощника.
[0010] Фиг. 2 является схемой, изображающей примерную архитектуру программного обеспечения для совершения без монитора задачи приложения в фоне цифрового персонального помощника.
[0011] Фиг. 3 является схемой примерного конечного автомата для приложения, взаимодействующего с цифровым персональным помощником.
[0012] Фиг. 4 является примером определения команды, которое может быть использовано, чтобы создавать структуру данных для обеспечения интерфейса между приложением и цифровым персональным помощником.
[0013] Фиг. 5 является примерной циклограммой, иллюстрирующей связь нескольких потоков, чтобы выполнять без монитора задачу приложения в цифровом персональном помощнике.
[0014] Фиг. 6 является блок-схемой примерного способа для совершения без монитора задачи приложения в фоне цифрового персонального помощника.
[0015] Фиг. 7 является блок-схемой примерного способа для установления того, прогревать ли приложение в то время как пользователь говорит с цифровым персональным помощником.
[0016] Фиг. 8 является схемой примерной компьютерной системы, в которой могут быть реализованы некоторые описываемые варианты осуществления.
[0017] Фиг. 9 является примерным мобильным устройством, которое может быть использовано совместно с описываемыми в данном документе технологиями.
[0018] Фиг. 10 является примерной средой с облачной поддержкой, которая может быть использована совместно с описываемыми в данном документе технологиями.
ПОДРОБНОЕ ОПИСАНИЕ
Обзор
[0019] По мере того, как для пользователя становится все более удобным использование цифрового персонального помощника, пользователь может предпочитать выполнять больше действий в контексте цифрового персонального помощника. Тем не менее, поставщик цифрового персонального помощника не может предсказать или тратить время на разработку каждого приложения, которое пользователь может пожелать использовать. Следовательно, применительно к цифровому персональному помощнику может быть желательным, чтобы он был выполнен с возможностью вызова или запуска сторонних приложений, которые создаются субъектами, отличными от поставщика цифрового персонального помощника.
[0020] В типичном решении, демонстрируется пользовательский интерфейс приложения, когда цифровой персональный помощник запускает приложение, и управление программой переходит от цифрового персонального помощника к приложению. Как только демонстрируется пользовательский интерфейс приложения, пользователь может верифицировать статус запроса и пользователь может выполнять дополнительные задачи из приложения. Чтобы вернуться к пользовательскому интерфейсу цифрового персонального помощника, пользователь должен выйти из приложения до того, как управление может быть возращено цифровому персональному помощнику.
[0021] В качестве одного конкретного примера использования цифрового персонального помощника мобильного телефона, пользователь может запрашивать, чтобы фильм был добавлен в очередь пользователя, используя приложение для просмотра фильмов, инсталлированное на мобильном телефоне. Например, пользователь может сказать «Приложение для Просмотра Фильмов, добавить Фильм-X в мою очередь» пользовательскому интерфейсу цифрового персонального помощника. После того, как команда произносится и распознается помощником, помощник может запускать приложение для просмотра фильмов, которое будет представлять пользовательский интерфейс приложения для просмотра фильмов. Фильм может быть добавлен в очередь пользователя и очередь может быть представлена пользователю в качестве верификации того, что фильм был добавлен. Пользователь может продолжить использовать приложение для просмотра фильмов или пользователь может закрыть приложение для просмотра фильмов, чтобы вернуться к интерфейсу пользователя цифрового персонального помощника.
[0022] Когда цифровой персональный помощник переводит управление приложению, загрузка приложения и его пользовательского интерфейса в память может занимать ощутимое количество времени. Задержка может потенциально оказывать влияние на производительность пользователя, как, например, задерживая пользователя от выполнения последующей задачи и/или прерывая ход мысли пользователя. Например, внимание пользователя может быть направлено на закрытие приложения перед возвратом к интерфейсу пользователя цифрового персонального помощника. Кроме того, посредством перевода управления приложению, контекстно-зависимая информация, доступная цифровому персональному помощнику, может быть недоступна приложению. Например, цифровой персональный помощник может понимать личность и контактную информацию супруга(и) пользователя, местоположения дома или офиса пользователя, или местоположение воспитателя детского сада пользователя, но приложение может не иметь доступа к контекстно-зависимой информации.
[0023] В методиках и решениях, описываемых в данном документе, цифровой персональный помощник может выяснять, может ли задача стороннего приложения быть выполнена в фоне так, что операции для выполнения задачи выполняются в контексте цифрового персонального помощника без демонстрации пользовательского интерфейса приложения с голосовой поддержкой. Следовательно, пользователь может воспринимать, что заданный набор задач выполняется в контексте цифрового персонального помощника, в отличие от контекста приложения, которое осуществляет задачу пользователя. Кроме того, энергопотребление устройства может быть потенциально уменьшено (и увеличено время работы от батареи), поскольку пользовательский интерфейс приложения не загружается в память, когда задача приложения выполняется в фоне.
[0024] Приложения могут регистрироваться в цифровом персональном помощнике, чтобы расширять список собственных возможностей, которые предоставляет помощник. Приложения могут быть инсталлированы в устройство или вызываться через сеть (такую как Интернет) в качестве услуги. Определение схемы может позволять приложениям регистрировать голосовую команду с запросом, чтобы запускаться без монитора, когда пользователь запрашивает ту команду/задачу. Например, приложения могут включать в себя файл определения голосовых команд (VCD), доступный цифровому персональному помощнику, где файл VCD идентифицирует задачи, которые могут быть запущены без монитора. Определение может указывать, что задача приложения всегда должна запускаться без монитора, или определение может указывать, что задача приложения должна запускаться без монитора в конкретных обстоятельствах. Например, приложение может выбирать совершать нечто без монитора, если пользователь запрашивает задачу, которая должна быть выполнена на устройстве, которое не имеет поверхности отображения (таком как беспроводной фитнес-браслет), или когда пользователь осуществляет управление в режиме «свободные руки» (как например, когда пользователь соединен с гарнитурой Bluetooth).
[0025] Приложения могут предоставлять ответ о ходе выполнения, сбое и успешном совершении запрошенной задачи и вывод, связанный с состояниями, может быть предоставлен посредством пользовательского интерфейса цифрового персонального помощника. Приложения могут предоставлять много разных типов данных обратно цифровому персональному помощнику, включая текст для отображения, текст, который может быть прочитан вслух, внешнюю ссылку обратно на приложение, ссылку на web-страницу или web-сайт, и основанный на Языке Гипертекстовой Разметки (HTML) web-контент, например. Данные от приложения к помощнику могут быть представлены, как приходящие от собственной функции помощника через пользовательский интерфейс помощника.
[0026] Если пользователь предоставляет запрос приложению, который может иметь несколько значений или результатов, приложение может предоставлять цифровому персональному помощнику список выбора и пользовательский интерфейс помощника может быть использован, чтобы устранять неоднозначность выбора. Если пользователь предоставляет запрос приложению, который может быть деструктивным или является важным (как например, когда пользователь запрашивает, чтобы приложение банковского обслуживания выполнило перенос сальдо), интерфейс подтверждения помощника может быть использован, чтобы подтверждать запрос, перед совершением деструктивной или важной задачи.
[0027] Приложения могут быть упреждающе загружены или прогреты по мере того, как произносятся команды. Например, когда пользователь завершает фразу «Приложение для Просмотра Фильмов» из команды «Приложение для Просмотра Фильмов, добавить Фильм-X в мою очередь», может быть распределена память, и разнообразные подпрограммы инсталлированного приложения для просмотра фильмов могут быть извлечены из хранилища и загружены в распределенную память в подготовке к использованию подпрограмм, когда команда совершается. Когда приложение является web-услугой, прогрев может включать в себя создание сеанса связи и извлечение информации для конкретного пользователя из базы данных на удаленном сервере, например. Посредством прогрева приложения, время на ответ пользователю может быть потенциально уменьшено так, что взаимодействие является более естественным и так, что пользователь может перемещаться к следующей задаче быстрее, добавляя производительности пользователю.
[0028] Используя технологии данного документа, пользователь, желающий добавить фильм в очередь пользователя с помощью приложения для просмотра фильмов, может иметь восприятие, отличное от того, что при использовании типичного решения в виде запуска приложения для просмотра фильмов и передачи управления этому приложению. В данном примере, команда добавить-фильм-в-очередь Приложения для Просмотра Фильмов может быть определена в качестве без монитора в структуре данных команд, такой как файл VCD. Когда пользователь говорит «Приложение для Просмотра Фильмов» из команды «Приложение для Просмотра Фильмов, добавить Фильм-X в мою очередь», приложение для просмотра фильмов может быть прогрето с тем, чтобы время ответа пользователю могло быть уменьшено. Когда команда совершается, фильм может быть добавлен в очередь пользователя, используя приложение для просмотра фильмов, но без демонстрации пользовательского интерфейса приложения для просмотра фильмов. Фильм может быть добавлен в очередь пользователя и цифровой персональный помощник может подтвердить (используя пользовательский интерфейс помощника), что фильм был добавлен. Пользователь может воспринимать более быстрое время ответа и может выполнять меньшее число этапов, чтобы совершить команду (например, не требуется закрывать приложение для просмотра фильмов).
Примерная система, включающая в себя цифровой персональный помощник
[0029] Фиг. 1 является схемой системы, изображающей пример системы 100 для совершения без монитора задачи 112 приложения 110 с голосовой поддержкой в фоне цифрового персонального помощника 120. Приложение 110 с голосовой поддержкой и цифровой персональный помощник 120 могут быть модулями программного обеспечения, инсталлированными на вычислительном устройстве 130. Вычислительное устройство 130 может быть настольным компьютером, лэптопом, мобильным телефоном, интеллектуальным телефоном, носимым устройством (таким как наручные часы или беспроводной электронный браслет), или планшетным компьютером, например. Вычислительное устройство 130 может включать в себя структуру 140 данных команд для идентификации приложений и задач приложения, которые могут быть запущены посредством цифрового персонального помощника 120. Приложения могут быть запущены посредством цифрового персонального помощника 120 в приоритете (как например, где пользовательский интерфейс приложения появляется, когда приложение запускается) и/или в фоне (как например, где пользовательский интерфейс приложения не появляется, когда приложение запускается). Например, некоторые задачи приложения могут быть запущены в приоритете, а другие задачи того же самого приложения могут быть запущены в фоне. Структура 140 данных команд может определять, каким образом приложение и/или задачи приложения должны быть запущены из цифрового персонального помощника 120.
[0030] Вычислительное устройство 130 может включать в себя микрофон 150 для преобразования звука в электрический сигнал. Микрофон 150 может быть динамическим, конденсаторным, или пьезоэлектрическим микрофоном, использующим электромагнитную индукцию, изменение емкости, или пьезоэлектричество, соответственно, чтобы создавать электрический сигнал из изменения давления воздуха. Микрофон 150 может включать в себя усилитель, один или более аналоговые или цифровые фильтры, и/или аналого-цифровой преобразователь, чтобы создавать цифровой звуковой ввод. Цифровой звуковой ввод может содержать воспроизведение голоса пользователя, как когда пользователь выдает цифровому персональному помощнику 120 команду выполнить задачу. Вычислительное устройство 130 может включать в себя сенсорный экран или клавиатуру (не показано) для предоставления пользователю возможности введения текстового ввода.
[0031] Цифровой звуковой ввод и/или текстовый ввод может быть обработан посредством модуля 122 обработки естественного языка цифрового персонального помощника 120. Например, модуль 122 обработки естественного языка может принимать цифровой звуковой ввод и переводить слова, произнесенные пользователем, в текст. Извлеченный текст может быть семантически проанализирован, чтобы выявить голосовую команду пользователя. Посредством анализа цифрового звукового ввода и предпринимая действия в ответ на произносимые команды, цифровой персональный помощник 120 может быть с голосовым управлением. Например, цифровой персональный помощник 120 может сопоставлять извлеченный текст со списком потенциальных команд пользователя, чтобы выявить команду, наиболее вероятно совпадающую с намерением пользователя. Сопоставление может быть основано на статистических или вероятностных способах, деревьях решений или других правилах, других пригодных критериях сопоставления, или их сочетаниях. Потенциальные команды пользователя могут быть собственными командами цифрового персонального помощника 120 и/или командами, определенными в структуре 140 данных команд. Таким образом, посредством определения команд в структуре 140 данных команд, диапазон задач, которые могу быть выполнены от лица пользователя посредством цифрового персонального помощника 120, может быть расширен. Потенциальные команды могут включать в себя выполнение задачи 112 приложения 110 с голосовой поддержкой, которые могут быть определены чтобы быть без монитора или фоновой задачей в структуре 140 данных команд.
[0032] Модуль 122 обработки естественного языка может генерировать поток текста по мере того, как обрабатывается речь, так, что промежуточные строки текста могут быть проанализированы до того, как завершается высказывание пользователя. Следовательно, если пользователь начинает команду с имени приложения, приложение может быть идентифицировано раньше в высказывании, и приложение может быть прогрето перед тем, как пользователь завершает команду. Прогрев приложения может включать в себя извлечение инструкций приложения из относительно более медленной энергонезависимой памяти (такой как накопитель на жестком диске или Флэш-память) и сохранение инструкций в относительно более быстрой энергозависимой памяти (такой как основная память или кэш-память).
[0033] Когда цифровой персональный помощник 120 устанавливает, что команда ассоциирована с задачей приложения, задача приложения может быть исполнена. Если цифровой персональный помощник 120 выявляет, что задача приложения должна быть исполнена в качестве фонового процесса (как например посредством анализа определения в структуре 140 данных команд), приложение может исполняться в фоне. Приложение, такое как приложение 110 с голосовой поддержкой, может осуществлять связь с цифровым персональным помощником 120. Например, приложение может проходить по последовательности набора состояний, ассоциированных с совершением задачи, и состояние приложения может быть сообщено цифровому персональному помощнику 120. Например, приложение может начинаться в «начальном» состоянии, переходить в состояние «хода выполнения», в то время как задача выполняется, и затем переходить в «итоговое» состояние, когда задача завершена.
[0034] Цифровой персональный помощник 120 может представлять отчет о ходе задачи через интерфейс 124 пользователя. Интерфейс 124 пользователя может сообщать информацию пользователю разнообразными путями, как например, посредством представления текста, графики или гиперссылок на дисплее вычислительного устройства 130, генерирования аудио выводов из громкоговорителя вычислительного устройства 130, или генерирования других сенсорных выводов, таких как вибрации от электрического мотора, соединенного с эксцентрическим грузом вычислительного устройства 130. Например, интерфейс 124 пользователя может вызывать представление вращающегося колеса на экране отображения вычислительного устройства 130, когда задача находится в состоянии хода выполнения. В качестве другого примера, интерфейс 124 пользователя может генерировать имитируемую речь, указывающую успешное совершение задачи, когда задача находится в итоговом состоянии и задача была успешно завершена. Посредством использования интерфейса 124 пользователя цифрового персонального помощника 120, чтобы представлять отчет о статусе задачи, ответ может происходить в контексте интерфейса 124 пользователя без демонстрации пользовательского интерфейса приложения.
[0035] Следует отметить, что приложение 110 с голосовой поддержкой может быть создано производителем цифрового персонального помощника 120 или сторонним производителем, который отличается от производителя. Взаимодействие цифрового персонального помощника 120 и приложения 110 с голосовой поддержкой может быть достигнуто соблюдая соглашение по программному обеспечению вида приложение-приложение и посредством определения функциональности в структуре 140 данных команд. Приложение 110 с голосовой поддержкой может быть выполнено с возможностью работы в качестве стационарного приложения или только в качестве компонента цифрового персонального помощника. Как стационарное приложение, приложение 110 с голосовой поддержкой может быть запущено вне цифрового персонального помощника 120 в качестве приоритетного процесса, как например, посредством легкого удара или двойного щелчка по пиктограмме, ассоциированной с приложением 110 с голосовой поддержкой, и отображено на экране отображения вычислительного устройства 130. Приложение 110 с голосовой поддержкой может представлять пользовательский интерфейс, когда оно запускается, и пользователь может взаимодействовать с пользовательским интерфейсом, чтобы выполнять задачи. Взаимодействие может быть только с помощью голосового ввода, или также могут быть использованы другие режимы ввода, такие как текстовый ввод или с помощью жестов. Приложения, вызываемые цифровым персональным помощником 120, могут быть инсталлированы на вычислительном устройстве 130 или могут быть web-услугами.
[0036] Цифровой персональный помощник 120 может вызывать web-услуги, такие как как web-услуга 162, исполняемая на удаленном серверном компьютере 160. Web-услуги являются функциями программного обеспечения, предоставляемыми по сетевому адресу через сеть, такую как сеть 170. Сеть 170 может включать в себя локальную сеть (LAN), Глобальную Сеть (WAN), Интернет, интрасеть, проводную сеть, беспроводную сеть, сотовую сеть, их сочетание, или любую сеть пригодную для обеспечения канала для связи между вычислительным устройством 130 и удаленным серверным компьютером 160. Следует иметь в виду, что топология сети, иллюстрируемая на Фиг. 1, была упрощена и что несколько сетей и сетевых устройств может быть использовано, чтобы взаимно соединять разнообразные вычислительные системы, раскрываемые в данном документе. Web-услуга 162 может быть вызвана как часть ядра или основная часть цифрового персонального помощника 120. Например, web-услуга 162 может быть вызвана в качестве подпрограммы модуля 122 обработки естественного языка. Дополнительно или в качестве альтернативы, web-услуга 162 может быть приложением, определенным в структуре 140 данных команд, и может быть выполнена с возможностью запуска без монитора из цифрового персонального помощника 120.
Примерная архитектура программного обеспечения, включающая в себя цифровой персональный помощник
[0037] Фиг. 2 является схемой, изображающей примерную архитектуру 200 программного обеспечения для совершения без монитора задачи приложения в фоне цифрового персонального помощника 120. При выполнении задачи приложения без монитора, задача может быть исполнена в фоне и пользовательский интерфейс приложения не демонстрируется как результат выполняемой задачи. Наоборот, пользовательский интерфейс цифрового персонального помощника 120 может быть использован, чтобы обеспечивать вывод для и/или ввод от пользователя так, что пользователь взаимодействует с контекстом цифрового персонального помощника 120, а не с контекстом приложения. Таким образом, исполняемая без монитора задача приложения может исполняться в фоне в течение продолжительности исполнения задачи, и пользовательский интерфейс приложения никогда не демонстрируется. Вычислительное устройство, такое как вычислительное устройство 130, может исполнять программное обеспечение для цифрового персонального помощника 120, ядра 210 операционной системы (OS), и приложения 230 организованного в соответствии с архитектурой 200.
[0038] Ядро 210 OS в целом предоставляет интерфейс между компонентами программного обеспечения и компонентами аппаратного обеспечения вычислительного устройства 130. Ядро 210 OS может включать в себя компоненты для рендеринга (например, рендеринга визуального вывода на дисплей, генерирования голосового вывода и других звуков для громкоговорителя, и генерирования вибрирующего вывода для электрического мотора), компоненты для подключения к сети, компоненты для администрирования процессов, компоненты для администрирования памяти, компоненты для отслеживания местоположения, и компоненты для распознавания речи и другой обработки ввода. Ядро 210 OS может осуществлять администрирование функций ввода пользователя, функций вывода, функций доступа к хранилищу, функций сетевой связи, функций администрирования памяти, функций администрирования процессов, и других функций для вычислительного устройства 130. Ядро 210 OS может предоставлять доступ к таким функциям для цифрового персонального помощника 120 и приложения 230, как например, через разнообразные вызовы системы.
[0039] Пользователь может генерировать ввод пользователя (такой как голосовой, тактильный, и движением), чтобы взаимодействовать с цифровым персональным помощником 120. Цифровой персональный помощник 120 может быть осведомлен о вводе пользователя через ядро 210 OS, которое может включать в себя функциональность для создания сообщений в ответ на ввод пользователя. Сообщения могут быть использованы цифровым персональным помощником 120 или другим программным обеспечением. Ввод пользователя может включать в себя тактильный ввод, такой как ввод сенсорного экрана, нажатия кнопки, или нажатия клавиши. Ядро 210 OS может включать в себя функциональность для распознавания легких ударов, жестов пальцем, и т.д. по сенсорному экрану из тактильного ввода, ввода кнопкой, или ввода нажатием клавиши. Ядро 210 OS может принимать ввод от микрофона 150 и может включать в себя функциональность для распознавания произносимых команд и/или слов из голосового ввода. Ядро 210 OS может принимать ввод от акселерометра и может включать в себя функциональность для распознавания ориентации или движения, такого как тряска.
[0040] Машина 222 обработки ввода пользовательского интерфейса (UI) цифрового персонального помощника 120 может ожидать сообщений события ввода пользователя от ядра 210 OS. Сообщения события UI могут указывать распознанное слово из голосового ввода, жест проводки, жест быстрой проводки, жест перетаскивания, или другой жест по сенсорному экрану устройства, легкий удар по сенсорному экрану, ввод нажатием клавиши, жест тряски, или другое событие UI (например, ввод клавишами направлений или шаровым манипулятором). Машина 222 обработки ввода UI может переводить сообщения события UI от ядра 210 OS в информацию, отправляемую логике 224 управления цифрового персонального помощника 120. Например, машина 222 обработки ввода UI может включать в себя возможности обработки естественного языка и может указывать, что конкретное имя приложения было произнесено или напечатано, или что голосовая команда была выдана пользователем. В качестве альтернативы, возможности обработки естественного языка могут быть включены в логику 224 управления.
[0041] Логика 224 управления может принимать информацию от разнообразных модулей цифрового персонального помощника 120, таких как машина 222 обработки ввода UI, хранилище 226 персонализированной информации, и структуры 140 данных команд, и логика 224 управления может принимать решения и выполнять операции на основе принятой информации. Например, логика 224 управления может установить, должен ли цифровой персональный помощник 120 выполнять задачу от лица пользователя, как например, посредством синтаксического анализа потока произносимого текста, чтобы установить, была ли выдана голосовая команда.
[0042] Логика 224 управления может ожидать, чтобы была произнесена вся команда пользователя перед тем, как действовать по команде, или логика 224 управления может начинать действовать по команде по мере того, как она еще произносится и до того, как она завершена. Например, логика 224 управления может анализировать промежуточные строки произносимой команды и пытаться сопоставить строки с одним или более приложениями, определенными в структуре 140 данных команды. Когда вероятность того, что приложение будет вызвано, превышает пороговую величину, приложение может быть прогрето с тем, чтобы приложение могло отвечать пользователю более быстро. Несколько приложений и/или функций могут быть упреждающе прогреты в ожидании вызова, и приложения могут быть остановлены, если установлено, что приложение не будет вызвано. Например, когда пользователь начинает произносимую команду с имени конкретного приложения, существует высокая вероятность того, что конкретное приложение будет вызвано, и таким образом приложение может быть прогрето. В качестве другого примера, некоторые частичные строки команды могут быть ограничены небольшим набором приложений, определенных в структуре 140 данных команд, и набор приложений может быть прогрет параллельно, когда сопоставлена частичная строка команды. В частности, структура 140 данных команд может иметь только два приложения с командами со словом «сделать», как например приложение камеры с командой «сделать снимок», и приложение пометок с командой «сделать пометку». Логика 224 управления может начинать прогревать как приложение камеры, так и приложение пометок, когда распознается слово «сделать», и затем приложение пометок может быть остановлено, когда распознается полная команда «сделать снимок». Прогрев приложения может включать в себя распределение памяти, упреждающую выборку инструкций, создание сеанса связи, извлечение информации из базы данных, пуск нового потока исполнения, повышение прерывания, или другие пригодные операции для конкретного приложения. Услуги ядра 210 OS могут быть вызвана во время прогрева, такая как услуга администрирования процессов, услуга администрирования памяти, и сетевая услуга, например.
[0043] Произносимый текст может включать в себя контекстно-зависимую информацию и логика 224 управления может разрешать контекстно-зависимую информацию таким образом, что голосовая команда пользователя является контекстно-независимой. Контекстно-зависимая информация может включать в себя текущее местоположение, текущее время, ориентацию вычислительного устройства 130, и персональную информацию, хранящуюся в хранилище 226 персонализированной информации. Персональная информация может включать в себя: пользовательские связи, такие как имя пользователя, супруга(и), или ребенка; местоположения для конкретного пользователя, такие как адреса дома, школы, детского сада, или врача; информацию из списка контактов или календаря пользователя; любимый цвет пользователя, ресторан, или способ транспортировки; важные дни рождения, юбилеи, или другие даты; и другую информацию для конкретного пользователя. Пользователь может давать команду с контекстно-зависимой информацией и логика 224 управления может переводить команду в контекстно-независимую команду. Например, пользователь может давать команду, «Приложение Автобусов, скажи автобусы домой в течение следующего часа». В данном примере, контекстно-зависимой информацией в команде является текущая дата и время, текущее местоположение, и местоположение дома пользователя.
[0044] Логика 224 управления может получать текущее время от ядра 210 OS, которое может поддерживать или иметь доступ к часам реального времени. Логика 224 управления может получать данные текущего местоположения для вычислительного устройства 130 от ядра 210 OS, которое может получать данные текущего местоположения от локального компонента вычислительного устройства 130. Например, данные местоположения могут быть определены на основе данных от глобальной системы позиционирования (GPS), посредством триангуляции между вышками сотовой сети, обращаясь к физическим местоположениям маршрутизаторов Wi-Fi в непосредственной близости, или посредством другого механизма. Логика 224 управления может получать местоположение дома пользователя из хранилища 226 персонализированной информации. Хранилище 226 персонализированной информации может храниться во вспомогательном или другом энергонезависимом хранилище вычислительного устройства 130. Следовательно, логика 224 управления может принимать персонализированную информацию через ядро 210 OS, которое может осуществлять доступ к ресурсу хранения (например, хранилищу 226 персонализированной информации). Когда контекстно-зависимая информация может быть разрешена, команда может быть переведена в контекстно-независимую команду. Например, если сейчас Пятница 18:00, пользователь находится по адресу Главная Улица 444, а дом пользователя находится по адресу Приятная Аллея 123, тогда контекстно-независимой командой может быть «Приложение Автобусов, скажи автобусы прибывающие рядом с Главной Улицей 444 и проходящие рядом с Приятной Аллеей 123 между 18:00 и 19:00 в Пятницу».
[0045] Команда пользователя может быть выполнена посредством логики 224 управления (как когда команда является собственной командой цифрового персонального помощника 120), приложения 230, инсталлированного на вычислительном устройстве 130 (как когда команда ассоциирована с приложением 230), или web-услуги 162 (как когда команда ассоциирована с web-услугой 162). Структура 140 данных команд может указывать, какие команды являются ассоциированными с приложениями и могут ли команды быть выполнены в приоритете или фоне. Например, структура 140 данных команд может соотносить голосовые команды пользователя с функциями, поддерживаемыми доступными сторонними приложениями с голосовой поддержкой.
[0046] Логика 224 управления может предписывать исполнение предварительно определенной функции 232 приложения 230, когда логика 224 управления устанавливает, что команда пользователя ассоциирована с предварительно определенной функцией 232 приложения 230. Если логика 224 управления устанавливает, что предварительно определенная функция 232 приложения 230 должна быть исполнена в качестве фонового процесса, предварительно определенная функция 232 может исполняться в фоне. Например, логика 224 управления может отправлять запрос 240 к предварительно определенной функции 232 поднимая прерывание, записывая в совместно используемую память, записывая в очередь сообщений, пропуская сообщение, или пуская новый поток исполнения (как через компонент администрирования процессов ядра 210 OS). Приложение 230 может выполнять предварительно определенную функцию 232 и возвращать ответ 242 логике 224 управления поднимая прерывание, записывая в совместно используемую память, записывая в очередь сообщений, или пропуская сообщение. Ответ может включать в себя состояние приложения 230 и/или другую информацию, отвечающую на команду пользователя.
[0047] Логика 224 управления может предписывать вызов web-услуги 162, когда логика 224 управления устанавливает, что команда ассоциирована с web-услугой 162. Например, запрос 260 может быть отправлен к web-услуге 162 через компонент подключения к сети ядра 210 OS. Компонент подключения к сети может форматировать и переадресовывать запрос через сеть 170 (как посредством инкапсуляции запроса в сетевой пакет в соответствии с протоколом сети 170) к web-услуге 162, чтобы выполнять команду пользователя. Запрос 260 может включать в себя несколько этапов, таких как открытие канала связи (например, сокета) между логикой 224 управления и web-услугой 162, и отправка информации, связанной с командой пользователя. Web-услуга 162 может отвечать на запрос 260 с помощью ответа, который может быть передан через сеть 170 и переадресован посредством компонента подключения к сети логике 224 управления в качестве ответа 262. Ответ от web-услуги 162 может включать в себя состояние web-услуги 162 и другую информацию, отвечающую на команду пользователя.
[0048] Логика 224 управления может генерировать вывод (с помощью машины 228 рендеринга вывода UI и компонента рендеринга ядра 210 OS), который должен быть представлен пользователю на основе ответов от приложений. Например, структура 140 данных команды может соотносить состояния, принятые от функций, с ответами, предоставленными пользователю от цифрового персонального помощника 120 с голосовым управлением. В целом, логика 224 управления может предоставлять высокоуровневые выходные команды машине 228 рендеринга вывода UI, которая может создавать низкоуровневые выходные примитивы для компонента рендеринга ядра 210 OS для визуального вывода на дисплее, аудио и/или голосового вывода через громкоговоритель или головные телефоны, и вибрирующего вывода от электрического мотора. Например, логика 224 управления может отправлять команду текста-в-речь со строкой текста машине 228 рендеринга вывода UI, которая может генерировать цифровые аудио данные, имитирующие произносимый голос.
[0049] Логика 224 управления может выяснять, какую информацию предоставлять пользователю, на основе состояния приложения. Состояния могут соответствовать началу, обработке, подтверждению, устранению неоднозначности или завершению команды пользователя. Структура 140 данных команд может соотносить состояния приложения с разными ответами, которые должны быть предоставлены пользователям. Типы информации, которые могут быть предоставлены, включают в себя отображаемый текст, имитируемую речь, внешнюю ссылку обратно на приложение, ссылку на web-страницу или web-сайт, и основанный на Языке Гипертекстовой Разметки (HTML) web-контент, например.
Примерные состояния приложения
[0050] Фиг. 3 является схемой примерного конечного автомата 300 для приложения, взаимодействующего с цифровым персональным помощником 120 в режим без монитора. Приложение может начинаться либо в прогретом состоянии 310, либо в начальном состоянии 320. Переход в прогретое состояние 310 может быть осуществлен, когда цифровой персональный помощник 120 предписывает приложению осуществить прогрев, как когда известно имя приложения, но произносимая команда не завершена. Приложение будет оставаться в прогретом состоянии 310 до тех пор, пока не завершаются операции прогрева. Когда операции прогрева завершаются, приложение может переходить в начальное состояние 320.
[0051] Переход в начальное состояние 320 может быть осуществлен после того, как завершается прогретое состояние 310 или после того, как команда пользователя предоставляется приложению посредством цифрового персонального помощника 120. Во время начального состояния 320, команда пользователя обрабатывается приложением. Если команда является однозначной, но потребует больше предварительно установленного количества времени для совершения (как, например, пять секунд), может быть осуществлен переход состояния в состояние 330 хода выполнения, в то время как команда выполняется. Если команда является однозначной и может привести к выполнению важной или деструктивной операции, может быть осуществлен переход состояния в состояние 340 подтверждения. Если команда является отчасти неоднозначной, но неоднозначность может быть разъяснена посредством выбора из небольшого числа опций, может быть осуществлен переход состояния в состояние 350 устранения неоднозначности. Если команда является неоднозначной и устранение неоднозначности невозможно с помощью небольшого числа опций, может быть осуществлен переход в итоговое состояние 360, такое как состояние сбоя или состояние перенаправления. Если команда не может быть выполнена, может быть осуществлен переход состояния в итоговое состояние 360, такое как состояние сбоя. Если команда может быть совершена менее чем за предварительно установленное количество времени на совершение и не требуется запрашивать подтверждение от пользователя, может быть осуществлен переход состояния в итоговое состояние 360, такое как успешное состояние. Следует отметить, что итоговое состояние 360 может быть одним состоянием с несколькими условиями (как например, где условия являются успехом, сбоем, перенаправлением, или превышением лимита времени) или группой итоговых состояний (как например где состояния являются успехом, сбоем, перенаправлением, или превышением лимита времени).
[0052] Состояние 330 хода выполнения может указывать операции команды пользователя, которые выполняются или предпринимаются. Приложение может предоставлять информацию пользователю во время состояния 330 хода выполнения посредством отправки строки текста-в-речь (TTS) или строки графического пользовательского интерфейса (GUI) цифровому персональному помощнику 120, с тем чтобы информация могла быть представлена пользователю, используя пользовательский интерфейс цифрового персонального помощника 120. Дополнительно или в качестве альтернативы, информация по умолчанию (такая как вращающееся колесо, песочные часы и/или кнопка отмены) может быть представлена пользователю во время состояния 330 хода выполнения, используя пользовательский интерфейс цифрового персонального помощника 120.
[0053] Во время состояния 330 хода выполнения, приложение может осуществлять текущий контроль хода операций и устанавливать, может ли приложение оставаться в состоянии 330 хода выполнения или переходить в итоговое состояние 360. В одном варианте осуществления, приложение может запускать таймер (как, например, на пять секунд) и если приложение не достигает достаточного хода выполнения до истечения таймера, может быть осуществлен переход состояния в итоговое состояние 360, такое как состояние превышения лимита времени. Если приложение достигает достаточного хода выполнения, таймер может быть повторно запущен и ход выполнения может быть вновь проанализирован в следующее истечение таймера. Приложение может иметь максимальный лимит времени, чтобы оставаться в состоянии 330 хода выполнения, если превышается максимальный лимит времени, может быть осуществлен переход состояния в итоговое состояние 360, такое как состояние превышения лимита времени. Операции, ассоциированные с командой пользователя, могут завершаться (либо успешно, либо неуспешно) и может быть осуществлен переход состояния в соответствующее итоговое состояние 360. Пользователь может прекращать приложение, когда оно находится в состоянии 330 хода выполнения посредством выдачи команды интерфейсу пользователя цифрового персонального помощника 120. Например, пользователь может нажимать или щелкать кнопку «отмена» или «назад» на дисплее или говорить «отмена». Отмена команды может предписывать персональному цифровому помощнику 120 останавливать приложение, и отображать главный экран персонального цифрового помощника 120 или осуществлять выход.
[0054] Состояние 340 подтверждения может указывать на то, что приложение ожидает подтверждения от пользователя перед совершением задачи. Когда цифровой персональный помощник 120 обнаруживает, что приложение находится в состоянии 340 подтверждения, приглашение в отношении ответа да/нет может быть представлено пользователю, используя пользовательский интерфейс цифрового персонального помощника 120. Приложение может предоставлять цифровому персональному помощнику 120 строку TTS, которая является вопросом с ответом да или нет. Цифровой персональный помощник 120 может говорить предоставленную приложением строку TTS и может слушать ответ «Да\Нет». Если ответ пользователя не дает решения в виде ответа да или нет, цифровой персональный помощник 120 может продолжать задавать пользователю вопрос вплоть до предварительно определенного количества раз (как например три раза). Если все попытки были израсходованы, цифровой персональный помощник 120 может говорить фразу по умолчанию, такую как «Прошу прощения, я не понимаю. Выполните легкий удар ниже для выбора ответа» и цифровой персональный помощник 120 может останавливать прослушивание. Если пользователь осуществляет легкий удар по да или нет, цифровой персональный помощник 120 может отправлять выбор пользователя приложению. Если пользователь осуществляет легкий удар по пиктограмме микрофона, цифровой персональный помощник 120 может вновь попытаться распознать произносимый ответ (как например посредством сброса счетчика, который подсчитывает количество попыток ответить вербально). Цифровой персональный помощник 120 может входить в цикл до тех пор, пока не будет сопоставления или пользователь не отменит или не ударит по кнопке назад на экране отображения. Если приложение принимает утвердительный ответ от цифрового персонального помощника 120, приложение может попытаться совершить задачу. Если задача завершается успешно, состояние может переходить в итоговое состояние 360 с условием успеха. Если задача терпит неудачу в успешном завершении или приложение отменяется, состояние может переходить в итоговое состояние 360 с условием сбоя. Если задача будет занимать больше предварительно установленного количества времени на совершение, может быть осуществлен переход состояния в состояние 330 хода выполнения, в то время как задача выполняется.
[0055] Состояние 350 устранения неоднозначности может указывать на то, что приложение ожидает от пользователя разъяснения среди ограниченного количества (такого как десять или меньше) опций перед совершением задачи. Приложение может предоставлять цифровому персональному помощнику 120 строку TTS, строку GUI и/или список элементов, из которого выбирает пользователь. Список элементов может быть предоставлен в качестве шаблона с одним или более фрагментами информации, чтобы предоставить пользователю каждый элемент, такой как название, описание и/или пиктограмма. Цифровой персональный помощник 120 может представлять список элементов пользователю, используя информацию, предоставленную приложением. Цифровой персональный помощник 120 может осуществлять приглашение и прослушивать выбор от пользователя. Пользователь может выбирать из списка, используя гибкий или негибкий выбор. Негибкий выбор означает, что пользователь может выбирать только из списка одним путем, тогда как гибкий выбор означает, что пользователь может выбирать из списка несколькими разными путями. Например, пользователь может выбирать из списка на основе числового порядка, в котором перечислены элементы, например говоря «первый» или «второй», чтобы выбрать первый элемент или второй элемент, соответственно. В качестве другого примера, пользователь может выбирать из списка на основе пространственных отношений между элементами, такими как «нижний», «верхний», «правый» или «второй снизу». В качестве другого примера, пользователь может выбирать из списка, говоря название элемента.
[0056] В качестве конкретного примера устранения неоднозначности, пользователь может говорить цифровому помощнику 120, «Приложение для Просмотра Фильмов, добавить Фильм-X в мою очередь». Тем не менее, может присутствовать три версии Фильма-X, такие как исходная и два продолжения: Фильм-X, Фильм-X II и Фильм-X III. В ответ на произносимую команду, цифровой персональный помощник 120 может запускать Приложение для Просмотра Фильмов в фоне с командой добавить Фильм-X в очередь. Приложение для Просмотра Фильмов может осуществлять поиск Фильма-X и установить, что присутствуют три версии. Следовательно, Приложение для Просмотра Фильмов может переходить в состояние 350 устранения неоднозначности и отправлять три альтернативных выбора цифровому персональному помощнику 120. Цифровой персональный помощник 120, через свой пользовательский интерфейс, может представлять пользователю три выбора и пользователь может выбирать один из списка. Когда пользователем сделан надлежащий выбор, цифровой персональный помощник 120 может отправлять ответ Приложению для Просмотра Фильмов и корректный фильм может быть добавлен в очередь.
[0057] Если ответ пользователя не может быть разрешен для элемента в списке, цифровой персональный помощник 120 может продолжать задавать пользователю вопрос вплоть до предварительно определенного количества раз. Если все попытки были исчерпаны, цифровой персональный помощник 120 может говорить фразу по умолчанию, такую как «Прошу прощений, я не понимаю. Выполните легкий удар ниже для выбора ответа» и цифровой персональный помощник 120 может останавливать прослушивание. Если пользователь осуществляет легкий удар по одному из элементов в отображаемом списке, цифровой персональный помощник 120 может отправлять выбор пользователя приложению. Если пользователь осуществляет легкий удар по пиктограмме микрофона, цифровой персональный помощник 120 может вновь пытаться распознать произносимый ответ (как например посредством сброса счетчика, который подсчитывает количество попыток, чтобы ответить вербально). Цифровой персональный помощник 120 может входить в цикл до тех пор, пока не будет сопоставления или пользователь не отменит или не ударит по кнопке назад на экране отображения. Если приложение принимает действительный ответ от цифрового персонального помощника 120, приложение может попытаться совершить задачу. Если задаче требуется подтверждение пользователя перед тем, как предпринять действие, состояние может переходить в состояние 340 подтверждения. Если задача завершается успешно, состояние может переходить в итоговое состояние 360 с условием успеха. Если задача терпит неудачу в успешном завершении или приложение отменяется, состояние может переходить в итоговое состояние 360 с условием сбоя. Если задача будет занимать больше предварительно установленного количества времени на совершение, может быть осуществлен переход состояния в состояние 330 хода выполнения, в то время как задача выполняется.
[0058] Должно быть понятно, что примерный конечный автомат 300 может быть расширен дополнительными или альтернативными состояниями, чтобы обеспечивать разнообразные многооборотные разговоры между пользователем и приложением. Устранение неоднозначности (через состояние 350 устранения неоднозначности) и подтверждение (через состояние 340 подтверждения) являются конкретными примерами многооборотного разговора. Как правило, в многооборотном разговоре, приложение без монитора может запрашивать дополнительную информацию у пользователя без демонстрации своего пользовательского интерфейса. Наоборот, информация может быть получена от пользователя посредством цифрового персонального помощника 120 от лица приложения. Следовательно, цифровой персональный помощник 120 может выступать в качестве проводника между пользователем и приложением.
[0059] Итоговое состояние 360 может указывать, что приложение успешно завершило задачу, ему не удалось завершить задачу, оно превысило лимит времени, или предлагается, что приложение должно быть запущено в приоритетном режиме (перенаправление). Как описано выше, итоговое состояние 360 может быть одним состоянием с несколькими условиями (например, успех, сбой, перенаправление или превышение лимита времени) или группой итоговых состояний (например, успех, сбой, перенаправление, или превышение лимита времени). Приложение может предоставлять цифровому персональному помощнику 120 строку TTS, строку GUI, список элементов (предоставляемый через шаблон), и/или параметр запуска. Цифровой персональный помощник 120 может представлять информацию, предоставленную посредством приложения, пользователю, используя пользовательский интерфейс цифрового персонального помощника 120. Дополнительно или в качестве альтернативы, цифровой персональный помощник 120 может представлять предварительно определенные или заготовленные ответы, ассоциированные с разными условиями. Например, если происходит превышение лимита времени или сбой задачи, цифровой персональный помощник 120 может говорить «Прошу прощения! Я не могу это сделать для Вас. Не могли бы Вы попытаться вновь позже?». В качестве другого примера, если приложение запрашивает перенаправление, цифровой персональный помощник 120 может говорить «Прошу прощения. <appName> не отвечает. Запуск <appName>» и цифровой персональный помощник 120 может пытаться запустить приложение в приоритете с исходной голосовой командой и параметром запуска (если параметр запуска предоставляется приложением). В качестве другого примера, если приложение завершает задачу успешно, цифровой персональный помощник 120 может говорить «Я сделал это для Вас».
Примерное определение команды
[0060] Фиг. 4 является примером определения 400 команды в соответствии со схемой, которая может быть использована, чтобы создавать структуру данных, такую как структура 140 данных команд, для обеспечения интерфейса между сторонним приложением и цифровым персональным помощником 120. Определение 400 команды может быть написано на разнообразных языках, таких как Расширяемый Язык Разметки (XML) или подмножество XML, которое определяется схемой. Например, схема может определять структуру определения команды, как, например, допустимые элементы, иерархия элементов, допустимые и опциональные атрибуты для каждого элемента, и другие пригодные критерии. Определение 400 команды может быть использовано цифровым персональным помощником 120, чтобы способствовать синтаксическому разбору высказывания пользователя на разные компоненты, такие как приложение, команда или задача, и элемент или слот данных, является ли элемент данных опциональным. Например, команда «MovieAppService, добавить MovieX в мою очередь», может быть разобрана на приложение («MovieAppService»), команду («Добавить») и элемент данных («MovieX»). Определение 400 команды может включать в себя элементы для определения имени приложения, задач или команд приложения, альтернативную формулировку для обработки естественного языка, и ответы, ассоциированные с разными состояниями приложения.
[0061] Одно или более приложений могут быть определены в определении 400 команды. Приложения могут быть сторонними или другими приложениями, которые инсталлированы на вычислительном устройстве или web-услугах. Информация, связанная с приложением, может быть разграничена с помощью элемента, определяющего приложение. Например, имя приложения может быть определено посредством элемента <AppName> (имя приложения), а элементы между элементами <AppName> могут быть ассоциированы с головным элементом <AppName>. В определении 400 команды, имя приложения является «MovieAppService», а элементы, которые следуют за элементом <AppName>, ассоциированы с приложением «MovieAppService».
[0062] Команды, следующие за именем приложения, являются командами приложения. Команды могут быть идентифицированы с помощью элемента <Command> (команда). Атрибуты элемента команды могут включать в себя имя (например, «Name») команды и тип активации (например, «ActivationType») команды. Например, тип активации может быть «приоритетный» для команд, которые должны быть запущены в приоритете, и тип активации может быть «фоновый» для команд, которые должны быть запущены в фоне. Атрибут «ActivationType» может быть опциональным, с типом активации по умолчанию соответствующим приоритетному.
[0063] Элемент <ListenFor> (слушать) может быть вложен в элемент <Command> и может быть использован, чтобы определять один или более способов, которыми команда может быть произнесена. Опциональные или слова-носители могут быть предоставлены в качестве подсказок цифровому персональному помощнику 120 при выполнении обработки естественного языка. Слова-носители могут быть идентифицированы внутри квадратных скобок: []. Элементы данных могут быть идентифицированы внутри фигурных скобок или символов: {}. В определении 400 команды, в целом присутствует два альтернативных способа вызова команды «Добавить», как определено двумя элементами <ListenFor>. Например, словесное выражение либо «добавить MovieX в мою очередь», либо «добавить MovieX в мою MovieAppService очередь» может быть использовано, чтобы заставить цифровой персональный помощник 120 запускать команда «Добавить» у MovieAppService в фоне. Следует отметить, что предварительно определенные фразы могут быть идентифицированы с помощью ключевого слова «builtIn:» внутри набора фигурных скобок: (builtIn:<идентификатор фразы>}.
[0064] Элемент <Feedback> (отклик) может быть вложен в элемент <Command> и может быть использован, чтобы определять фразу, которая должна быть произнесена пользователю, когда цифровой персональный помощник 120 успешно распознал произносимую команду пользователя. Дополнительно или в качестве альтернативы, элемент <Feedback> может определять текстовую строку, которая должна быть отображена пользователю, когда произносимая команда подвергается синтаксическому анализу посредством цифрового персонального помощника 120.
[0065] Элемент <Response> (ответ) может быть вложен в элемент <Command> и может быть использован, чтобы определять один или более ответы, предоставляемые цифровым персональным помощником 120 пользователю. Каждый ответ ассоциирован с состоянием приложения, как определяется атрибутом «State» (состояние). Состояния могут быть для итоговых состояний, таких как успех или сбой, или для промежуточных состояний, таких как ход выполнения. Может быть несколько определенных типов ответов, таких как <DisplayString> для отображения текста на экране, <TTSString> для текста, который будет произнесен пользователю, <AppDeepLink> для внешней ссылки на web-сайт, и <WebLink> для менее внешней ссылки на web-сайт, например. Ответы, определяемые элементом <Response> могут быть дополнены дополнительной информацией ответа, предоставляемой приложением.
Примерная циклограмма
[0066] Фиг. 5 является примерной циклограммой 500, иллюстрирующей связь нескольких потоков исполнения (510, 520, и 530), чтобы выполнять функцию без монитора стороннего приложения из цифрового персонального помощника 120. Поток 510 UI и поток 520 управления могут быть параллельными потоками многопотокового варианта осуществления цифрового персонального помощника 120. Поток 510 UI может быть в основном отвечающим за захват ввода от и отображение вывода в пользовательском интерфейсе цифрового персонального помощника 120. Например, речевой ввод, тактильный ввод и/или текстовый ввод могут быть захвачены потоком 510 UI. В одном варианте осуществления, поток 510 UI может выполнять обработку естественного языка над вводом и может сопоставлять произносимые команды пользователя с командами в структуре 140 данных команд. Когда установлено, что произносимая команда сопоставлена с командой в структуре 140 данных команд, команда может быть сообщена потоку 520 управления для дальнейшей обработки. В альтернативном варианте осуществления, поток 510 UI может захватывать ввод текста в речь, отдельные слова могут быть сообщены потоку 520 управления, который может выполнять обработку естественного языка над вводом и может сопоставлять произносимые команды пользователя с командами в структуре 140 данных команд.
[0067] Поток 520 управления может быть в основном отвечающим за связь с и отслеживание хода выполнения приложения и взаимодействие с потоком 510 UI. Например, поток 520 управления может уведомлять поток 510 UI о том, что пользователь разговаривает с пользовательским интерфейсом цифрового персонального помощника 120. Слова и команды могут быть приняты потоком 520 управления и поток 520 управления может уведомлять поток 510 UI, когда команда пользователя была распознана потоком 520 управления. Поток 510 UI может указывать пользователю, через пользовательский интерфейс цифрового персонального помощника 120, что идет ход выполнения команды. Поток 510 UI или поток 520 управления может устанавливать, что команда должна быть запущена без монитора, посредством извлечения атрибутов команды из структуры 140 данных команд. Поток 520 управления может запускать новый поток или осуществлять связь с существующим потоком, таким как поток 530 AppService, когда команда должна быть запущена без монитора. Чтобы сократить время ответа пользователю, может быть желательным, чтобы поток 530 AppService был существующим потоком, вместо того чтобы поток 520 управления запускал новый поток. Например, поток 530 AppService может быть запущен при прогреве приложения или во время загрузки вычислительного устройства 130.
[0068] Поток 530 AppService может быть исполнен на вычислительном устройство 130 или может быть исполнен на удаленном сервере, таком как удаленный серверный компьютер 160. Поток 530 AppService может быть в основном отвечающим за совершение функции, указанной командой пользователя. Поток 530 AppService может поддерживать конечный автомат (такой как конечный автомат 300), чтобы отслеживать ход исполнения функции, и может предоставлять обновления по статусу потока 520 управления. Посредством предоставления обновлений статуса потоку 520 управления, поток 530 AppService может быть без монитора, где вывод пользователю предоставляется цифровым персональным помощником 120, а не пользовательским интерфейсом потока 530 AppService.
[0069] Поток 520 управления может отслеживать ход выполнения приложения (например, потока 530 AppService) посредством приема обновлений статуса от приложения и проверки, продвигается ли приложение вперед. Например, поток 520 управления может пускать таймер предварительно определенной продолжительности (такой как пять секунд) всякий раз, когда он осуществляет связь с потоком 530 AppService (либо отправляя информацию к потоку 530 AppService, либо принимая информацию от потока 530 AppService). Если таймер истекает до того, как отвечает поток 530 AppService, поток 520 управления может указывать потоку 510 UI, что приложение не смогло ответить и поток 510 UI может представлять сообщение о сбое пользователю через пользовательский интерфейс цифрового персонального помощника 120. Поток 530 AppService может быть прекращен или проигнорирован потоком 520 управления после того, как истекает таймер. В качестве альтернативы, если поток 530 AppService отвечает до того, как таймер истекает, таймер может быть сброшен, если другой ответ ожидается от приложения (как например, когда приложение отвечает состоянием хода выполнения), или таймер может быть отменен (как например, когда приложение осуществило функцию (итоговое состояние) или когда запрашивается ответ пользователя (состояние подтверждения или устранения неоднозначности).
[0070] Когда поток 520 управления принимает состояние подтверждения или устранения неоднозначности от потока 530 AppService, поток 520 управления может указывать потоку 510 UI, что подтверждение или устранение неоднозначности запрашивается у пользователя. Поток 510 UI может представлять выборы подтверждения или устранения неоднозначности пользователю через пользовательский интерфейс цифрового персонального помощника 120. Когда пользователь отвечает, или не может ответить, поток 510 UI может предоставлять ответ пользователя, или окончательное его отсутствие, потоку 520 управления. Поток 520 управления может пропускать ответ пользователя к потоку 530 AppService с тем, чтобы поток 530 AppService мог выполнить функцию. Если пользователь не смог ответить, поток 520 управления может прекращать поток 530 AppService.
[0071] Поток 510 UI может отображать разнообразные типы вывода через пользовательский интерфейс цифрового персонального помощника 120. Например, поток 510 UI может генерировать аудио вывод, такой как цифровой имитированный речевой вывод из текста. Цифровая имитированная речь может быть отправлена чипу аудио обработки, который может преобразовывать цифровую имитированную речь в аналоговый сигнал (как например с помощью цифро-аналогового преобразователя), который может быть выведен в качестве звука через громкоговоритель или головные телефоны. В качестве другого примера, поток 510 UI может предоставлять визуальный вывод, такой как изображения, анимация, текстовый вывод, и гиперссылки для просмотра пользователем на экране отображения вычислительного устройства 130. Если осуществляется легкий удар или щелчок по гиперссылкам, поток 510 UI может пускать приложение браузера, чтобы просматривать web-сайт, соответствующий выбранной гиперссылке. В качестве другого примера, поток 510 UI может генерировать тактильный вывод, как например посредством отправки сигнала вибрации электрическому мотору, который может заставлять вибрировать вычислительное устройство 130.
Примерный способ для совершения задачи без монитора
[0072] Фиг. 6 является блок-схемой примерного способа 600 для совершения без монитора задачи приложения в фоне цифрового персонального помощника 120. На этапе 610, голосовой ввод, сгенерированный пользователем, может быть принят цифровым персональным помощником 120. Голосовой ввод может быть захвачен локально на вычислительном устройстве 130 или удаленно от вычислительного устройства 130. В качестве одного примера, голосовой ввод, генерируемый пользователем, может быть локально захвачен посредством микрофона 150 вычислительного устройства 130 и преобразован в цифровую форму посредством аналого-цифрового преобразователя. В качестве другого примера, голосовой ввод, генерируемый пользователем, может быть удаленно захвачен посредством микрофона (как например, посредством вспомогательного устройства Bluetooth), беспроводным образом соединенного с вычислительным устройством 130. Управление цифровым персональным помощником 120 осуществляется посредством голоса и/или текста, вводимого в пользовательский интерфейс цифрового персонального помощника 120.
[0073] На этапе 620 может быть выполнена обработка естественного языка голосового ввода, чтобы выявить голосовую команду пользователя. Голосовая команда пользователя может включать в себя запрос на выполнение предварительно определенной функции приложения, такого как стороннее приложение с голосовой поддержкой. Предварительно определенная функция может быть идентифицирована, используя структуру данных, которая определяет приложения и функции приложений, которые поддерживаются цифровым персональным помощником 120. Например, совместимые приложения могут быть идентифицированы в файле определения команды, таком как определение 400 команды. Посредством использования расширяемого файла определения команды, чтобы определять функции сторонних приложений, которые могут быть выполнены без монитора цифровым персональным помощником 120, цифровой персональный помощник 120 может позволять пользователю выполнять больше задач с помощью интерфейса цифрового персонального помощника 120.
[0074] На этапе 630 цифровой персональный помощник 120 может предписывать приложению исполнять без монитора предварительно определенную функцию без появления пользовательского интерфейса приложения на дисплее вычислительного устройства 130. Цифровой персональный помощник 120 может устанавливать, что нужно исполнять приложение без монитора, так как приложение определяется в качестве без монитора в структуре 140 данных команд или так как пользователь использует вычислительное устройство в режиме «свободные руки» и исполнение приложения в приоритете может быть потенциально отвлекающим для пользователя. Например, цифровой персональный помощник 120 может вызывать web-услугу, чтобы исполнять предварительно определенную функцию приложения. В качестве другого примера, цифровой персональный помощник 120 может запускать новый поток на вычислительном устройстве 130, чтобы исполнять предварительно определенную функцию приложения после того, как выявлена команда пользователя. В качестве другого примера, цифровой персональный помощник 120 может осуществлять связь с существующим потоком, таким как поток, пущенный во время прогрева приложения, чтобы исполнять предварительно определенную функцию приложения. Предварительно определенная функция может быть исполнена в качестве фонового процесса. Приложение может осуществлять мониторинг хода выполнения предварительно определенной функции, как например посредством отслеживания состояния предварительно определенной функции.
[0075] На этапе 640, от приложения может быть принят ответ, указывающий состояние, ассоциированное с предварительно определенной функцией. Например, состояния могут включать в себя прогрев, начальное, ход выполнения, подтверждение, устранение неоднозначности и итоговое состояние. Ответ может включать в себя дополнительную информацию, такую как шаблонный список, текстовую строку, строку текста-в-речь, изображение, гиперссылка, или другая пригодная информация, которая может быть отображена пользователю через пользовательский интерфейс цифрового персонального помощника 120.
[0076] На этапе 650 пользовательский интерфейс цифрового персонального помощника 120 может предоставлять ответ пользователю на основе принятого состояния, ассоциированного с предварительно определенной функцией. Таким образом, ответ может происходить в контексте пользовательского интерфейса цифрового персонального помощника 120 без демонстрации пользовательского интерфейса приложения. Кроме того, возможности подтверждения и устранения неоднозначности цифрового персонального помощника 120 могут быть использованы, чтобы подтверждать и/или разъяснять команду пользователя для приложения.
Примерный способ для установления того, прогревать ли приложение
[0077] Фиг. 7 является блок-схемой примерного способа 700 для установления того, прогревать ли приложение в то время как пользователь говорит с цифровым персональным помощником 120. На этапе 710 пользователь может печатать, высказывать или говорить с цифровым персональным помощником 120. Текст или речь пользователя может быть проанализирована, используя методики обработки естественного языка, и отдельные слова могут быть распознаны из речи. Отдельные слова могут быть проанализированы поодиночке и в рамках промежуточной фразы, где они произносятся. Например, пользователь может говорить, «Эй, Помощник, MyApp, сделай…». Слово «Эй» может быть словом-носителем и отброшено. Слово «Помощник» может быть использовано для того, чтобы позволить цифровому персональному помощнику 120 знать, что пользователь запрашивает у него выполнение действия. Слово «MyApp» может быть интерпретировано в качестве приложения.
[0078] На этапе 720 напечатанные или произносимые слова могут быть сравнены с собственными функциями цифрового персонального помощника 120 и функциями, предоставленными в расширяемых определениях команды. Собирательно, собственные функции и функции, определенные в файле определения команды, могут именоваться «известными AppServices». Произносимые слова могут быть проанализированы и сравнены с известными AppServices по мере того, как слова высказываются. Другими словами, анализ речи может происходить до того, как фраза произнесена или напечатана пользователем целиком. Если не сопоставлено ни одно из известных AppServices, тогда на этапе 730, цифровой персональный помощник 120 может открывать web-браузер, чтобы извлекать web-страницу поисковой машины с поисковой строкой, соответствующей нераспознанной произносимой фразе. Управление программы может быть перенесено к web-браузеру, так что пользователь может уточнять web-поиск и/или просматривать результаты. Тем не менее, если известные AppServices сопоставлены, тогда способ 700 может продолжаться на этапе 740.
[0079] На этапе 740 может быть выяснено, является или приложение AppService приоритетной или фоновой задачей. Например, определение команды может включать в себя атрибут, который определяет приложение AppService в качестве приоритетного или фонового приложения. Если приложение AppService является приоритетной задачей, на этапе 750 приложение AppService может быть запущено в приоритете и управление может быть перенесено к приложению AppService, чтобы совершать команду. Если приложение AppService является фоновой задачей, тогда способ 700 может продолжаться параллельными этапами 760 и 770.
[0080] На этапе 760 цифровой персональный помощник может предоставлять пользователю информацию касательно анализа речи. В частности, цифровой персональный помощник 120 может генерировать вывод для экрана хода выполнения пользовательского интерфейса цифрового персонального помощника 120. Вывод может быть определен в элементе <Feedback>, вложенном в элемент <Command>, определения команды, например. Вывод может быть текстовой строкой и может непрерывно обновляться по мере того, как пользователь продолжает говорить.
[0081] На этапе 770 цифровой персональный помощник 120 может прогревать приложение AppService, не ожидая окончания высказывания пользователя. Прогрев приложения AppService может включать в себя распределение памяти, упреждающую выборку инструкций, создание сеанса связи, извлечение информации из базы данных, пуск нового потока исполнения, повышение прерывания или другие пригодные операции для конкретного приложения. Приложение может быть прогрето на основе упреждающей функции. Например, инструкции, соответствующие упреждающей функции, могут быть выбраны даже если функция достоверно неизвестна. Посредством прогрева приложения до того, как пользователь завершает произносимую команду, потенциально может быть уменьшено время ответа пользователю.
[0082] На этапе 780 цифровой персональный помощник 120 может продолжать осуществлять синтаксический разбор частичного результата распознавания речи до тех пор, пока не завершится высказывание. Конец высказывания может быть обнаружен на основе синтаксически разобранной команды и/или на основе паузы пользователя в течение более чем предварительно установленного количества времени. Например, конец команды «MovieAppService, добавить MovieX в мою очередь» может быть обнаружен, когда распознается слово «очередь». В качестве другого примера, конец команды, «TextApp, отправить текстовое сообщение моей жене о том, что я опоздаю домой на ужин», может быть более сложно обнаружить, так как команда заканчивается элементом данных неизвестной длины. Следовательно, пауза может быть использована, чтобы указывать цифровому персональному помощнику 120 о том, что команда заершена.
[0083] На этапе 790, конец произносимой команды может быть обнаружен и итоговый результат распознавания речи может быть пропущен к приложению. Приложение и цифровой персональный помощник 120 могут осуществлять связь друг с другом, чтобы совершать произносимую команду, как описано со ссылкой на более ранние Фигуры.
Вычислительные системы
[0084] Фиг. 8 изображает обобщенный пример пригодной вычислительной системы 800, в которой могут быть реализованы описываемые нововведения. Вычислительная система 800 не предполагает каких-либо ограничений в отношении объема использования или функциональности, поскольку нововведения могут быть реализованы в различных общего назначения или особого назначения вычислительных системах.
[0085] Со ссылкой на Фиг. 8, вычислительная система 800 включает в себя один или более блоки 810, 815 обработки и память 820, 825. На Фиг. 8, данная базовая конфигурация 830 включена внутри пунктирной линии. Блоки 810, 815 обработки исполняют исполняемые компьютером инструкции. Блок обработки может быть центральным блоком обработки (CPU) общего назначения, процессором в проблемно-ориентированно интегральной микросхеме (ASIC), или любым другим типом процессора. В многопроцессорной системе, несколько блоков обработки исполняют исполняемые компьютером инструкции, чтобы увеличить мощность обработки. Например, Фиг. 8 показывает центральный блок 810 обработки, как впрочем и блок обработки графики или блок 815 совместной обработки. Вещественная память 820, 825 может быть энергозависимой памятью (например, регистрами, кэшем, RAM), энергонезависимой памятью (например, ROM, EEPROM, флэш-памятью, и т.д.), или некоторым сочетанием двух видов, доступ к которой может быть осуществлен посредством блока(ов) обработки. Память 820, 825 хранит программное обеспечение 880, реализующее одно или более нововведения, описываемые в данном документе, в форме исполняемых компьютером инструкций, пригодных для исполнения посредством блока(ов) обработки.
[0086] Вычислительная система может иметь дополнительные признаки. Например, вычислительная система 800 включает в себя хранилище 840, одно или более устройства 850 ввода, одно или более устройства 860 вывода, и одно или более соединения 870 связи. Механизм взаимного соединения (не показано), такой как шина, контроллер, или сеть осуществляет взаимное соединение компонентов вычислительной системы 800. Как правило, программное обеспечение операционной системы (не показано) обеспечивает рабочую среду для другого программного обеспечения, исполняемого на вычислительной системе 800, и координирует активности компонентов вычислительной системы 800.
[0087] Вещественное хранилище 840 может быть съемным или несъемным, и включает в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD, или любой другой носитель информации, который может быть использован, чтобы хранить информацию, и доступ к которому может быть осуществлен внутри вычислительной системы 800. Хранилище 840 хранит инструкции для программного обеспечения 880, реализующего одно или более нововведения, описываемые в данном документе.
[0088] Устройство(а) 850 ввода может быть устройством сенсорного ввода, таким как клавиатура, мышь, перо, или шаровой манипулятор, устройством голосового ввода, сканирующим устройством, или другим устройством, которое обеспечивает ввод в вычислительную систему 800. Применительно к кодированию видео, устройство(а) 850 ввода может быть камерой, видеокартой, картой TV-тюнера, или сходным устройством, которое осуществляет принятие видео ввода в аналоговой или цифровой форме, или CD-ROM или CD-RW, который считывает образцы видео в вычислительную систему 800. Устройство(а) 860 вывода может быть дисплеем, принтером, громкоговорителем, устройством записи CD, или другим устройством, которое обеспечивает вывод из вычислительной системы 800.
[0089] Соединение(я) 870 связи обеспечивают связь через средство связи с другим вычислительным объектом. Средство связи переправляет информацию, такую как исполняемые компьютером инструкции, аудио или видео ввод или вывод, или другие данные в модулированном сигнале данных. Модулированный сигнал данных является сигналом, одна или более характеристики которого установлены или изменены таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, средства связи могут использовать электрический, оптический, RF, или другой носитель.
[0090] Нововведения могут быть описаны в общем контексте исполняемых компьютером инструкций, таких как те, что включаются в программные модули, исполняемые в вычислительной системе на целевом действительном или виртуальном процессоре. В целом, программные модули включают в себя подпрограммы, программы, библиотеки, объекты, классы, компоненты, структуры данных, и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Функциональность программных модулей может быть объединена или разбита между программными модулями, как того требуется в разнообразных вариантах осуществления. Исполняемые компьютером инструкции для программных модулей, могут быть исполнены внутри локальной или распределенной вычислительной системы.
[0091] Понятия «система» и «устройство» используются взаимозаменяемо в данном документе. За исключением того, когда контекст четко не указывает обратного, ни одно из понятий не накладывает какого-либо ограничения на тип вычислительной системы или вычислительного устройства. В целом, вычислительная система или вычислительное устройство может быть локальным или распределенным, и может включать в себя любое сочетание аппаратного обеспечения особого назначения и/или аппаратного обеспечения общего назначения с программным обеспечением, реализующим описываемую в данном документе функциональность.
[0092] В целях представления, подробное описание использует понятия, подобные «устанавливать» и «использовать», чтобы описывать компьютерные операции в вычислительной системе. Эти понятия являются высокоуровневыми абстракциями для операций, выполняемых компьютером, и их не следует путать с действиями, которые выполняет человек. Фактические компьютерные операции, соответствующие этим понятиям, варьируются в зависимости от реализации.
Мобильное устройство
[0093] Фиг. 9 является схемой системы, изображающей примерное мобильное устройство 900, включающее в себя многообразие опциональных компонентов аппаратного и программного обеспечения, показанных в целом в позиции 902. Любые компоненты 902 в мобильном устройстве могут осуществлять связь с любым другим компонентом, несмотря на то, что не все соединения показаны, для простоты иллюстрации. Мобильное устройство может быть любым из многообразия вычислительных устройств (например, сотовым телефоном, интеллектуальным телефоном, переносным компьютером, Персональным Цифровым Помощником (PDA), и т.д.) и может обеспечивать беспроводную двухстороннюю связь с одной или более сетями 904 мобильной связи, такой как сотовая, спутниковая, или другая сеть.
[0094] Иллюстрируемое мобильное устройство 900 может включать в себя контроллер или процессор 910 (например, сигнальный процессор, микропроцессор, ASIC, или другую схему логики управления и обработки) для выполнения таких задач как кодирование сигнала, обработка данных, обработка ввода/вывода, управление питанием, и/или другие функции. Операционная система 912 может управлять распределением и использование компонентов 902 и поддерживать цифровой персональный помощник 120 и одну или более прикладные программы 914. Прикладные программы могут включать в себя общие мобильные вычислительные приложения (например, приложения работы с электронной почтой, календари, средства администрирования контактов, web-браузеры, приложения обмена сообщениями, приложения для просмотра фильмов, приложения банковского обслуживания), или любое другое вычислительное приложение. Прикладные программы 914 могут включать в себя приложения с задачами, которые могут быть исполнены без монитора посредством цифрового персонального помощника 120. Например, задачи могут быть определены в структуре 140 данных команд. Функциональность 913 для осуществления доступа к магазину приложений, также может быть использована для получения и обновления прикладных программ 914.
[0095] Иллюстрируемое мобильное устройство 900 может включать в себя память 920. Память 920 может включать в себя несъемную память 922 и/или съемную память 924. Несъемная память 922 может включать в себя RAM, ROM, флэш-память, жесткий диск, или другие общеизвестные технологии хранилища памяти. Съемная память 924 может включать в себя флэш-память или карту Модуля Идентификации Абонента (SIM), которая хорошо известна в системах связи GSM, или другие общеизвестные технологии хранилища памяти, такие как «интеллектуальные карты». Память 920 может быть использована для хранения данных и/или кода для выполнения операционной системы 912 и приложений 914. Примерные данные могут включать в себя web-страницы, текст, изображения, звуковые файлы, видеоданные, или другие наборы данных, которые должны быть отправлены к и/или приняты от одного или более сетевых серверов или других устройств через одну или более проводную или беспроводную сети. Память 920 может быть использована, чтобы хранить идентификатор абонента, такой как Международный Идентификационный Номер Оборудования Подвижного Абонента (IMSI), и идентификатор оборудования, такой как Международный Идентификатор Мобильного Оборудования (IMEI). Такие идентификаторы могут быть переданы сетевому серверу, чтобы идентифицировать пользователей и оборудование.
[0096] Мобильное устройство 900 может поддерживать одно или более устройства 930 ввода, такие как сенсорный экран 932, микрофон 934, камера 936, физическая клавиатура 938 и/или шаровой манипулятор 940, и одно или более устройства 950 вывода, такие как громкоговоритель 952 и дисплей 954. Другие возможные устройства вывода (не показано) могут включать в себя пьезоэлектрические или другие тактильные устройства вывода. Некоторые устройства могут обслуживать более чем одну функцию ввода/вывода. Например, сенсорный экран 932 и дисплей могут быть объединены в единое устройство ввода/вывода.
[0097] Устройства 930 ввода могут включать в себя Естественный Пользовательский интерфейс (NUI). NUI является любой технологией интерфейса, которая позволяет пользователю взаимодействовать с устройством «естественным» образом, свободно от искусственных ограничения, накладываемых устройствами ввода, такими как мыши, клавиатуры, пульты дистанционного управления, и подобное. Примеры способов NUI включают в себя те, что основаны на распознавании речи, распознавании касания и стилуса, распознавании жеста как по экрану, так и смежно с экраном, жестами по воздуху, отслеживании головы или глаза, голосе и речи, зрении, касании, жестах, и машинном интеллекте. Другие примеры NUI включают в себя обнаружение жеста движением, используя акселерометры/гироскопы, распознавание лица, 3D дисплеи, отслеживание головы, глаза, и взгляда, системы многонаправленной дополненной реальности и виртуальной реальности, все из чего обеспечивает более естественный интерфейс, как впрочем и технологии для регистрации активности мозга, используя электроды регистрации электрического поля (EEG и связанные способы). Следовательно, в одном конкретном примере, операционная система 912 или приложения 914 могут содержать программное обеспечение распознавания речи как часть голосового пользовательского интерфейса, который позволяет пользователю оперировать устройством 900 через голосовые команды. Кроме того, устройство 900 может содержать устройства вывода и программное обеспечение, которые обеспечивают взаимодействие пользователя через пространственные жесты пользователя, как например обнаружение и интерпретацию жестов, чтобы предоставлять ввод в игровое приложение.
[0098] Беспроводной модем 960 может быть соединен с антенной (не показано) и может обеспечивать двухстороннюю связь между процессором 910 и внешними устройства, как будет понятно в области техники. Модем 960 показан в общем и может включать в себя сотовый модем для осуществления связи с сетью 904 мобильной связи и/или другие основанные на радиосвязи модемы (например, Bluetooth 964 или Wi-Fi 962). Беспроводной модем 960, как правило, выполнен с возможностью осуществления связи с одной или более сотовыми сетями, такими как сеть GSM, для голосовой связи и связи передачи данных, внутри единой сотовой сети, между сотовыми сетями, или между мобильным устройством и телефонной коммутируемой сетью общего пользования (PSTN).
[0099] Мобильное устройство может дополнительно включать в себя, по меньшей мере, один порт 980 ввода/вывода, источник 982 питания, приемник 984 спутниковой навигационной системы, такой как приемник Глобальной Системы Позиционирования (GPS), акселерометр 986, и/или физический соединитель 990, который может быть портом USB, портом IEEE 1394 (FireWire), и/или портом RS-232. Иллюстрируемые компоненты 902 не являются требуемыми или включающими все, поскольку любые компоненты могут быть удалены или другие компоненты могут быть добавлены.
Среда с облачной поддержкой
[0100] Фиг. 10 иллюстрирует обобщенный пример пригодной среды 1000 с облачной поддержкой, в которой могут быть реализованы описываемые варианты осуществления, методики, и технологии. В примерной среде 1000, разнообразные типы услуг (например, вычислительные услуги) предоставляются облаком 1010. Например, облако 1010 может содержать совокупность вычислительных устройств, которые могут быть расположены центрально или распределено, которая предоставляет основанные на облаке услуги разнообразных типов пользователям и устройствам, соединенным через сеть, такую как Интернет. Среда 1000 реализации может быть использована разнообразными путями, чтобы выполнять вычислительные задачи. Например, некоторые задачи (например, обработка ввода пользователя и представление пользовательского интерфейса) могут быть выполнены на локальных вычислительных устройствах (например, соединенных устройствах 1030, 1040, 1050), тогда как другие задачи (например, хранение данных, которые должны быть использованы в последующей обработке), могут быть выполнены в облаке 1010.
[0101] В примерной среде 1000, облако 1010 предоставляет услуги для соединенных устройств 1030, 1040, 1050 с многообразием возможностей экрана. Соединенное устройство 1030 представляет собой устройство с экраном 1035 компьютера (например, экраном среднего размера). Например, соединенное устройство 1030 может быть персональным компьютером, таким как настольный компьютер, лэптоп, ноутбук, нетбук, или подобное. Соединенное устройство 1040 представляет собой устройство с экраном 1045 мобильного устройства (например, экраном небольшого размера). Например, соединенное устройство 1040 может быть мобильным телефоном, интеллектуальным телефоном, персональным цифровым помощником, планшетным компьютером, и подобным. Соединенное устройство 1050 может быть экраном телевизора (например, интеллектуального телевизора) или другим устройством, соединенным с телевизором (например, абонентской телевизионной приставкой или игровой консолью) или подобным. Одно или более соединенные устройства 1030, 1040, 1050 могут включать в себя возможности сенсорного экрана. Сенсорные экраны могут осуществлять принятие ввода разными способами. Например, емкостные сенсорные экраны обнаруживают сенсорный ввод, когда объект (например, кончик пальца или стилус) нарушает или прерывает электрический ток, протекающий по поверхности. В качестве другого примера, сенсорные экраны могут использовать оптические датчики, чтобы обнаруживать сенсорный ввод, когда прерываются лучи от оптических датчиков. Физический контакт с поверхностью экрана необязателен для того, чтобы ввод был обнаружен некоторыми сенсорными экранами. Устройства без возможностей экрана также могут быть использованы в примерной среде 1000. Например, облако 1010 может предоставлять услуги одному или более компьютерам (например, серверным компьютерам) без дисплеев.
[0102] Услуги могут быть предоставлены облаком 1010 через поставщиков 1020 услуги, или через других поставщиков онлайновых услуг (не изображено). Например, облачные услуги могут быть подогнаны под размер экрана, возможность дисплея, и/или возможность сенсорного экрана конкретного соединенного устройства (например, соединенных устройств 1030, 1040, 1050).
[0103] В примерной среде 1000, облако 1010 предоставляет технологии и решения, описываемые в данном документе, разнообразным соединенным устройствам 1030, 1040, 1050, используя, по меньшей мере частично, поставщиков 1020 услуги. Например, поставщики 1020 услуги могут предоставлять централизованное решение для разнообразных основанных на облаке услуг. Поставщики 1020 услуги могут осуществлять администрирование подписок на услугу для пользователей и/или устройств (например, для соединенных устройств 1030, 1040, 1050 и/или их соответствующих пользователей).
Примерные реализации
[0104] Несмотря на то, что операции некоторых раскрываемых способов описываются в конкретном, последовательном порядке для удобного представления, должно быть понятно, что данный способ описания охватывает перестановку, за исключением того, когда конкретная очередность не требуется конкретным языком, изложенным ниже. Например, операции, описанные последовательно, могут в некоторых случаях быть переставлены или выполнены параллельно. Более того, для простоты, приложенные фигуры могут не показывать разнообразные пути, которыми раскрываемые способы могут быть использованы совместно с другими способами.
[0105] Любой из раскрываемых способов может быть реализован в качестве реализуемых компьютером инструкций или компьютерного программного продукта, хранящегося на одном или более машиночитаемых запоминающих носителях информации и исполняемых на вычислительном устройстве (например, любом доступном вычислительном устройстве, включая интеллектуальные телефоны или другие мобильные устройства, которые включают в себя вычислительное аппаратное обеспечение). Машиночитаемые запоминающие носители информации являются любыми доступными вещественными носителями информации, доступ к которым может быть осуществлен внутри вычислительной среды (например, одним или более оптическими мультимедийными дисками, такими как DVD или CD, компонентами энергозависимой памяти (такой как DRAM или SRAM), или компонентами энергонезависимой памяти (такой как флэш-память или накопители на жестком диске)). В качестве примера и со ссылкой на Фиг. 8, машиночитаемые запоминающие носители информации включают в себя память 820 и 825, и хранилище 840. В качестве примера и со ссылкой на Фиг. 9, машиночитаемые запоминающие носители информации включают в себя память и хранилище 920, 922, и 924. Понятие машиночитаемые запоминающие носители информации не включает в себя сигналы и несущие волны. В дополнение, понятие машиночитаемые запоминающие носители информации не включает в себя соединения связи (например, 870, 960, 962, и 964).
[0106] Любая из машиночитаемых инструкций для реализации раскрываемых методик, как впрочем и любые данные, создаваемые и используемые во время реализации раскрываемых вариантов осуществления, могут быть сохранены на одном или более машиночитаемых запоминающих носителях информации. Исполняемые компьютером инструкции могут быть частью, например, выделенного приложения программного обеспечения или приложения программного обеспечения, доступ к которому осуществляется или которое загружается через web-браузер или другое приложение программного обеспечения (такое как приложения удаленного вычисления). Такое программное обеспечение может быть исполнено, например, на одном локальном компьютере (например, любом пригодном имеющемся на рынке компьютере) или в сетевой среде (например, через Интернет, глобальную сеть, локальную сеть, сеть типа клиент-сервер (такая как сеть облачных вычислений), или другую такую сеть), используя один или более сетевые компьютеры.
[0107] Для ясности, описываются лишь некоторые выбранные аспекты основанных на программном обеспечении реализаций. Другие подробности, которые являются общеизвестными в области техники, опущены. Например, следует понимать, что раскрываемая технология не ограничивается любым конкретным компьютерным языком или программой. Например, раскрываемая технология может быть реализована программным обеспечением, написанным на C++, Java, Perl, JavaScript, Adobe Flash, или любом другом пригодном языке программирования. Подобным образом, раскрываемая технология не ограничивается любым конкретным компьютером или типом аппаратного обеспечения. Некоторые подробности пригодных компьютеров и аппаратного обеспечения являются общеизвестными и не требуется их подробное изложение в данном раскрытии.
[0108] Кроме того, любой из основанных на программном обеспечении вариантов осуществления (содержащий, например, исполняемые компьютером инструкции для предписания компьютеру выполнять любой из раскрываемых способов) может быть выгружен, загружен, или к нему может быть осуществлен удаленный доступ через пригодное средство связи. Такое пригодное средство связи включает в себя, например, Интернет, Глобальную Паутину, интрасеть, приложения программного обеспечения, кабель (включая оптоволоконный кабель), магнитную связь, электромагнитную связь (включая RF, микроволновую, и инфракрасную связь), электронную связь, или другое такое средство связи.
[0109] Раскрываемые способы, устройство, и системы не должны толковаться в качестве ограничивающих любым образом. Вместо этого, настоящее раскрытие направлено на новые и неочевидные признаки и аспекты разнообразных раскрываемых вариантов осуществления, отдельно или в разнообразных сочетаниях и суб-сочетаниях с другими. Раскрываемые способы, устройство, и системы как не ограничиваются каким-либо конкретным аспектом или признаком или их сочетанием, так и не требуется раскрываемыми вариантами осуществления того, чтобы присутствовало любое одно или более конкретные преимущества или решались проблемы.
[0110] Технологии из любого примера могут быть объединены с технологиями, описанными в любом одном или более других примерах. В виду множества возможных вариантов осуществления, к которым могут быть применены принципы раскрываемой технологии, следует понимать, что иллюстрируемые варианты осуществления являются примерами раскрываемой технологии и не должны рассматриваться в качестве ограничения объема раскрываемой технологии.

Claims (45)

1. Вычислительное устройство, содержащее:
блок обработки данных;
память и
один или более микрофонов;
цифровой персональный помощник с речевым управлением, выполненный с возможностью осуществлять операции, содержащие:
прием речевого ввода, сгенерированного пользователем, через один или более микрофонов;
выполнение распознавания речи, используя речевой ввод, чтобы выявить произносимую команду, при этом произносимая команда содержит запрос на выполнение задачи стороннего приложения, и данная задача идентифицируется с использованием структуры данных, которая определяет задачи сторонних приложений, являющиеся активируемыми произносимой командой, причем сторонние приложения содержат задачи, которые приспособлены исполняться с использованием пользовательских интерфейсов сторонних приложений, и задачи, которые приспособлены исполняться без монитора, без использования пользовательских интерфейсов сторонних приложений, и упомянутая структура данных определяет то, как упомянутая задача приспособлена исполняться цифровым персональным помощником;
использование упомянутой структуры данных для выбора между исполнением упомянутой задачи стороннего приложения без монитора и исполнением этой задачи с использованием пользовательского интерфейса стороннего приложения;
предписание стороннему приложению исполняться в качестве фонового процесса, чтобы исполнять без монитора упомянутую задачу, когда выбрано исполнение без монитора данной задачи стороннего приложения;
прием от стороннего приложения ответа, указывающего состояние, ассоциированное с упомянутой задачей;
предоставление, посредством пользовательского интерфейса цифрового персонального помощника с речевым управлением, ответа пользователю на основе принятого состояния, ассоциированного с задачей, так что ответ происходит в контексте пользовательского интерфейса цифрового персонального помощника с речевым управлением без демонстрации пользовательского интерфейса стороннего приложения.
2. Вычислительное устройство по п.1, в котором упомянутое использование структуры данных для выбора между исполнением задачи стороннего приложения без монитора и исполнением задачи с использованием пользовательского интерфейса стороннего приложения содержит установление того, что эта структура данных определяет упомянутую задачу в качестве фоновой задачи.
3. Вычислительное устройство по п.1, в котором упомянутое использование структуры данных для выбора между исполнением задачи стороннего приложения без монитора и исполнением задачи с использованием пользовательского интерфейса стороннего приложения содержит установление того, что пользователь использует вычислительное устройство в режиме «свободные руки».
4. Вычислительное устройство по п.1, в котором операции дополнительно содержат инициирование последовательности подготовки стороннего приложения при выполнении распознавания речи и перед завершением выявления произносимой команды.
5. Вычислительное устройство по п.4, в котором последовательность подготовки включает в себя выделение участка памяти, упреждающую выборку инструкций, создание сеанса связи, извлечение информации из базы данных, пуск нового потока исполнения или выдачу прерывания.
6. Вычислительное устройство по п.1, в котором упомянутая структура данных, которая определяет задачи сторонних приложений, которые являются активируемыми произносимой командой, включает в себя соотнесение состояний, ассоциированных с задачами, с ответами пользователю.
7. Вычислительное устройство по п.1, в котором операции дополнительно содержат:
пуск таймера, когда стороннему приложению предписывается исполняться в качестве фонового процесса; и
прекращение фонового процесса, если таймер истекает.
8. Вычислительное устройство по п.1, в котором ответ от стороннего приложения указывает состояние подтверждения и ответ пользователю на основе состояния подтверждения приглашает пользователя ответить с помощью ответа да или нет.
9. Способ совершения задачи приложения с голосовой поддержкой в контексте цифрового персонального помощника с голосовым управлением, реализуемый посредством вычислительного устройства, содержащего микрофон, при этом способ содержит этапы, на которых:
принимают, посредством цифрового персонального помощника с голосовым управлением, цифровой голосовой ввод, сгенерированный пользователем, при этом цифровой голосовой ввод принимается через микрофон;
выполняют обработку естественного языка, используя цифровой голосовой ввод, чтобы выявить голосовую команду пользователя, при этом голосовая команда пользователя содержит запрос на выполнение предварительно определенной функции стороннего приложения с голосовой поддержкой, и эта предварительно определенная функция идентифицируется с использованием структуры данных, которая определяет функции, поддерживаемые доступными сторонними приложениями с голосовой поддержкой, используя голосовой ввод, причем сторонние приложения с голосовой поддержкой содержат предварительно определенные функции, которые приспособлены исполняться с использованием пользовательских интерфейсов сторонних приложений с голосовой поддержкой, и предварительно определенные функции, которые приспособлены исполняться без монитора, без использования пользовательских интерфейсов сторонних приложений с голосовой поддержкой, и упомянутая структура данных определяет то, как упомянутая предварительно определенная функция приспособлена исполняться цифровым персональным помощником;
в качестве реакции на определение того, что голосовая команда пользователя содержит запрос на выполнение упомянутой предварительно определенной функции стороннего приложения, используют упомянутую структуру данных для выбора между исполнением этой предварительно определенной функции стороннего приложения с голосовой поддержкой без монитора и исполнением данной предварительно определенной функции с использованием пользовательского интерфейса стороннего приложения с голосовой поддержкой;
предписывают стороннему приложению с голосовой поддержкой исполнять упомянутую предварительно определенную функцию в качестве фонового процесса, без появления пользовательского интерфейса стороннего приложения с голосовой поддержкой на дисплее вычислительного устройства;
принимают от стороннего приложения с голосовой поддержкой ответ, указывающий состояние, ассоциированное с упомянутой предварительно определенной функцией; и
предоставляют, посредством пользовательского интерфейса цифрового персонального помощника с голосовым управлением, ответ пользователю на основе принятого состояния, ассоциированного с упомянутой предварительно определенной функцией, так что ответ происходит в контексте пользовательского интерфейса цифрового персонального помощника с голосовым управлением без демонстрации пользовательского интерфейса стороннего приложения с голосовой поддержкой.
10. Способ по п.9, дополнительно содержащий этап, на котором инициируют последовательность подготовки стороннего приложения с голосовой поддержкой при выполнении обработки естественного языка и перед завершением выявления голосовой команды пользователя.
11. Способ по п.10, в котором инициирование последовательности подготовки содержит этап, на котором отправляют упреждающую функцию стороннему приложению с голосовой поддержкой.
12. Способ по п.9, в котором состояние, ассоциированное с упомянутой предварительно определенной функцией, выбирается из состояния подготовки, начального состояния, состояния выполнения, состояния подтверждения, состояния устранения неоднозначности или итогового состояния.
13. Способ по п.9, в котором упомянутая структура данных является расширяемой через схему команды, используемую для связывания запросов от пользователя с предварительно определенными функциями одного или более сторонних приложений с голосовой поддержкой.
14. Способ по п.9, в котором упомянутая структура данных содержит:
первое соотнесение голосовых команд с функциями, поддерживаемыми доступными сторонними приложениями с голосовой поддержкой; и
второе соотнесение состояний, принимаемых от функций, с ответами, предоставляемыми пользователю от цифрового персонального помощника с голосовым управлением.
15. Способ по п.9, в котором ответы, предоставляемые пользователю из цифрового персонального помощника с голосовым управлением, выбираются из следующих типов: отображаемый текст, текст, преобразованный в речь, внешний идентификатор информационного ресурса (URI), в виде внешней ссылки, URI в виде web-ссылки, Язык Гипертекстовой Разметки (HTML), шаблон списка, физический адрес и телефонный номер.
16. Способ по п.9, в котором стороннее приложение с голосовой поддержкой представляет собой удаленную web-услугу.
17. Способ по п.9, в котором упомянутое выполнение обработки естественного языка с использованием цифрового голосового ввода для выявления голосовой команды пользователя содержит этап, на котором разрешают контекстно-зависимую информацию таким образом, что голосовая команда пользователя является контекстно-независимой.
18. Машиночитаемый носитель информации, хранящий машиноисполняемые инструкции для предписания вычислительному устройству выполнять операции для совершения задачи приложения с голосовой поддержкой в контексте цифрового персонального помощника с голосовым управлением, причем операции содержат:
прием, посредством цифрового персонального помощника с голосовым управлением, цифрового голосового ввода, сгенерированного пользователем, при этом цифровой голосовой ввод принимается через микрофон;
выполнение обработки естественного языка, используя цифровой голосовой ввод, чтобы выявить голосовую команду пользователя, при этом голосовая команда пользователя содержит запрос на выполнение задачи приложения с голосовой поддержкой, и данная задача идентифицируется с использованием расширяемой структуры данных, которая соотносит голосовые команды пользователя с задачами приложений с голосовой поддержкой, причем приложения с голосовой поддержкой содержат задачи, которые приспособлены исполняться с использованием пользовательских интерфейсов приложений с голосовой поддержкой, и задачи, которые приспособлены исполняться без монитора, без использования пользовательских интерфейсов приложений с голосовой поддержкой, и упомянутая структура данных определяет то, как упомянутая задача приспособлена исполняться цифровым персональным помощником;
в качестве реакции на выявление голосовой команды пользователя, использование упомянутой структуры данных для выбора между исполнением упомянутой задачи приложения с голосовой поддержкой в качестве приоритетной задачи или в качестве фоновой задачи;
когда выбрано исполнение упомянутой задачи в качестве фоновой задачи, предписание приложению с голосовой поддержкой исполнять данную задачу в качестве фоновой задачи и в контексте цифрового персонального помощника с голосовым управлением без демонстрации пользовательского интерфейса приложения с голосовой поддержкой;
прием от приложения с голосовой поддержкой ответа, указывающего состояние, ассоциированное с упомянутой задачей; и
предоставление ответа пользователю на основе принятого состояния, ассоциированного с задачей, причем данный ответ предоставляется в контексте цифрового персонального помощника с голосовым управлением без демонстрации пользовательского интерфейса приложения с голосовой поддержкой, когда установлено, что упомянутая задача является фоновой задачей.
19. Машиночитаемый носитель информации по п.18, в котором операции дополнительно содержат инициирование последовательности подготовки приложения с голосовой поддержкой при выполнении обработки естественного языка и перед завершением выявления голосовой команды пользователя.
RU2017124103A 2015-01-09 2015-12-29 Совершение задачи без монитора в цифровом персональном помощнике RU2710984C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/593,584 2015-01-09
US14/593,584 US9959129B2 (en) 2015-01-09 2015-01-09 Headless task completion within digital personal assistants
PCT/US2015/067759 WO2016111881A1 (en) 2015-01-09 2015-12-29 Headless task completion within digital personal assistants

Publications (3)

Publication Number Publication Date
RU2017124103A RU2017124103A (ru) 2019-01-09
RU2017124103A3 RU2017124103A3 (ru) 2019-07-17
RU2710984C2 true RU2710984C2 (ru) 2020-01-14

Family

ID=55305053

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017124103A RU2710984C2 (ru) 2015-01-09 2015-12-29 Совершение задачи без монитора в цифровом персональном помощнике

Country Status (18)

Country Link
US (1) US9959129B2 (ru)
EP (2) EP3243199B1 (ru)
JP (1) JP6666920B2 (ru)
KR (1) KR102490776B1 (ru)
CN (1) CN107111516B (ru)
AU (1) AU2015375326B2 (ru)
BR (1) BR112017013524B1 (ru)
CA (2) CA2970725C (ru)
CL (1) CL2017001755A1 (ru)
CO (1) CO2017007028A2 (ru)
IL (1) IL252458B (ru)
MX (1) MX2017008926A (ru)
MY (1) MY186956A (ru)
NZ (2) NZ770836A (ru)
PH (1) PH12017550012A1 (ru)
RU (1) RU2710984C2 (ru)
SG (1) SG11201705282XA (ru)
WO (1) WO2016111881A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2788321C1 (ru) * 2022-05-23 2023-01-17 Общество с ограниченной ответственностью фирма "Интерсвязь" Система обеспечения связи конечного потребителя с поставщиком услуг при помощи виртуального ассистента

Families Citing this family (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
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
US11087424B1 (en) 2011-06-24 2021-08-10 Google Llc Image recognition-based content item selection
US8688514B1 (en) 2011-06-24 2014-04-01 Google Inc. Ad selection using image data
US10972530B2 (en) * 2016-12-30 2021-04-06 Google Llc Audio-based data structure generation
US10630751B2 (en) * 2016-12-30 2020-04-21 Google Llc Sequence dependent data message consolidation in a voice activated computer network environment
US10956485B2 (en) 2011-08-31 2021-03-23 Google Llc Retargeting in a search environment
US10586127B1 (en) 2011-11-14 2020-03-10 Google Llc Extracting audiovisual features from content elements on online documents
US11093692B2 (en) 2011-11-14 2021-08-17 Google Llc Extracting audiovisual features from digital components
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
EP3809407A1 (en) 2013-02-07 2021-04-21 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
US11030239B2 (en) 2013-05-31 2021-06-08 Google Llc Audio based entity-action pair based selection
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9703757B2 (en) 2013-09-30 2017-07-11 Google Inc. Automatically determining a size for a content item for a web page
US10431209B2 (en) 2016-12-30 2019-10-01 Google Llc Feedback controller for data transmissions
US10614153B2 (en) 2013-09-30 2020-04-07 Google Llc Resource size-based content item selection
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9898170B2 (en) * 2014-12-10 2018-02-20 International Business Machines Corporation Establishing user specified interaction modes in a question answering dialogue
US11127055B1 (en) * 2015-02-27 2021-09-21 State Farm Mutual Automobile Insurance Company System and method for navigating an automated process using audio and tactile feedback
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
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
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10650067B2 (en) 2015-08-13 2020-05-12 Samsung Electronics Co., Ltd. Cloud-enabled architecture for on-demand native application crawling
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
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
KR20170072652A (ko) * 2015-12-17 2017-06-27 삼성전자주식회사 디스플레이 장치 및 디스플레이 방법
US10079021B1 (en) * 2015-12-18 2018-09-18 Amazon Technologies, Inc. Low latency audio interface
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10120954B2 (en) 2015-12-31 2018-11-06 Samsung Electronics Co., Ltd. Transformation and presentation of on-demand native application crawling results
US10229677B2 (en) * 2016-04-19 2019-03-12 International Business Machines Corporation Smart launching mobile applications with preferred user interface (UI) languages
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
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US11093834B2 (en) * 2016-07-06 2021-08-17 Palo Alto Research Center Incorporated Computer-implemented system and method for predicting activity outcome based on user attention
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10395652B2 (en) * 2016-09-20 2019-08-27 Allstate Insurance Company Personal information assistant computing system
US11204787B2 (en) * 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11010601B2 (en) 2017-02-14 2021-05-18 Microsoft Technology Licensing, Llc Intelligent assistant device communicating non-verbal cues
US10467509B2 (en) 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Computationally-efficient human-identifying smart assistant computer
US11100384B2 (en) 2017-02-14 2021-08-24 Microsoft Technology Licensing, Llc Intelligent device user interactions
US10574825B2 (en) * 2017-02-15 2020-02-25 Microsoft Technology Licensing, Llc Assisted-communication with intelligent personal assistant
US11323665B2 (en) * 2017-03-31 2022-05-03 Ecolink Intelligent Technology, Inc. Method and apparatus for interaction with an intelligent personal assistant
KR102339819B1 (ko) * 2017-04-05 2021-12-15 삼성전자주식회사 프레임워크를 이용한 자연어 표현 생성 방법 및 장치
US10726056B2 (en) * 2017-04-10 2020-07-28 Sap Se Speech-based database access
US11170768B2 (en) * 2017-04-17 2021-11-09 Samsung Electronics Co., Ltd Device for performing task corresponding to user utterance
KR102414122B1 (ko) * 2017-04-19 2022-06-29 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 그 동작 방법
US20180316634A1 (en) * 2017-04-26 2018-11-01 Microsoft Technology Licensing, Llc Extending application functionality via conversational interfaces
KR102298947B1 (ko) * 2017-04-28 2021-09-08 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
KR102380717B1 (ko) * 2017-04-30 2022-03-31 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 이 전자 장치의 제어 방법
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
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
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11436417B2 (en) 2017-05-15 2022-09-06 Google Llc Providing access to user-controlled resources by automated assistants
US10127227B1 (en) * 2017-05-15 2018-11-13 Google Llc Providing access to user-controlled resources by automated assistants
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US11048995B2 (en) * 2017-05-16 2021-06-29 Google Llc Delayed responses by computational assistant
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
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10679192B2 (en) * 2017-05-25 2020-06-09 Microsoft Technology Licensing, Llc Assigning tasks and monitoring task performance based on context extracted from a shared contextual graph
US10769138B2 (en) 2017-06-13 2020-09-08 International Business Machines Corporation Processing context-based inquiries for knowledge retrieval
KR102365649B1 (ko) 2017-06-28 2022-02-22 삼성전자주식회사 화면 제어 방법 및 이를 지원하는 전자 장치
US10449440B2 (en) * 2017-06-30 2019-10-22 Electronic Arts Inc. Interactive voice-controlled companion application for a video game
US10366691B2 (en) * 2017-07-11 2019-07-30 Samsung Electronics Co., Ltd. System and method for voice command context
US11004444B2 (en) * 2017-09-08 2021-05-11 Amazon Technologies, Inc. Systems and methods for enhancing user experience by communicating transient errors
US10621317B1 (en) 2017-09-14 2020-04-14 Electronic Arts Inc. Audio-based device authentication system
US10423873B2 (en) * 2017-12-01 2019-09-24 International Business Machines Corporation Information flow analysis for conversational agents
US11113026B2 (en) * 2017-12-08 2021-09-07 Toonimo, Inc. System and method for voice-directed website walk-through
US10629192B1 (en) 2018-01-09 2020-04-21 Electronic Arts Inc. Intelligent personalized speech recognition
US20190213528A1 (en) * 2018-01-10 2019-07-11 Microsoft Technology Licensing, Llc Digital assistant task management
US10643632B2 (en) * 2018-01-12 2020-05-05 Wells Fargo Bank, N.A. Automated voice assistant personality selector
CN117348988A (zh) * 2018-01-12 2024-01-05 谷歌有限责任公司 用于暂停和恢复虚拟助理的系统、方法以及装置
US20210064640A1 (en) * 2018-01-17 2021-03-04 Sony Corporation Information processing apparatus and information processing method
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
CN108521500A (zh) * 2018-03-13 2018-09-11 努比亚技术有限公司 一种语音场景控制方法、设备及计算机可读存储介质
KR102617265B1 (ko) 2018-03-13 2023-12-26 삼성전자주식회사 사용자 음성 입력을 처리하는 장치
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
CN110321201A (zh) * 2018-03-29 2019-10-11 努比亚技术有限公司 一种后台程序处理方法、终端及计算机可读存储介质
BR102019007123A2 (pt) * 2018-04-16 2019-10-29 Panasonic Avionics Corp assistentes digitais e métodos associados para um veículo de transporte
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US10782986B2 (en) 2018-04-20 2020-09-22 Facebook, Inc. Assisting users with personalized and contextual communication content
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US11307880B2 (en) 2018-04-20 2022-04-19 Meta Platforms, Inc. Assisting users with personalized and contextual communication content
US10824432B2 (en) * 2018-04-30 2020-11-03 Servicenow, Inc. Systems and methods for providing multiple console sessions that enable line-by-line execution of scripts on a server application
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
EP3610375B1 (en) 2018-05-07 2024-04-10 Google LLC Platform selection for performing requested actions in audio-based computing environments
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
JP7155294B2 (ja) * 2018-05-07 2022-10-18 グーグル エルエルシー 接続デバイスを制御するための合成グラフィカルアシスタントインターフェースを提供するための方法、システムおよび装置
US11087761B2 (en) 2018-05-07 2021-08-10 Google Llc Platform selection for performing requested actions in audio-based computing environments
US11487501B2 (en) * 2018-05-16 2022-11-01 Snap Inc. Device control using audio data
KR20190136832A (ko) 2018-05-31 2019-12-10 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 음성 명령을 프린팅 서비스를 지원하는 텍스트 코드 블록들로 변환
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
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
DK201870355A1 (en) * 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
AU2019100576C4 (en) * 2018-06-03 2020-01-30 Apple Inc. Accelerated task performance
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
DK201870358A1 (en) * 2018-06-03 2020-01-03 Apple Inc. ACCELERATED TASK PERFORMANCE
WO2020032927A1 (en) 2018-08-07 2020-02-13 Google Llc Assembling and evaluating automated assistant responses for privacy concerns
WO2020032563A1 (en) * 2018-08-07 2020-02-13 Samsung Electronics Co., Ltd. System for processing user voice utterance and method for operating same
KR102607666B1 (ko) * 2018-08-08 2023-11-29 삼성전자 주식회사 전자 장치에서 사용자 의도 확인을 위한 피드백 제공 방법 및 장치
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
US11205422B2 (en) 2018-10-02 2021-12-21 International Business Machines Corporation Methods and systems for managing chatbots with data access
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
JP7135099B2 (ja) 2018-11-21 2022-09-12 グーグル エルエルシー 異種のデータソースへのクエリからの応答の統合
KR20200066933A (ko) * 2018-12-03 2020-06-11 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10878805B2 (en) * 2018-12-06 2020-12-29 Microsoft Technology Licensing, Llc Expediting interaction with a digital assistant by predicting user responses
WO2020139408A1 (en) * 2018-12-28 2020-07-02 Google Llc Supplementing voice inputs to an automated assistant according to selected suggestions
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11380214B2 (en) * 2019-02-19 2022-07-05 International Business Machines Corporation Memory retention enhancement for electronic text
CN114041283A (zh) * 2019-02-20 2022-02-11 谷歌有限责任公司 利用事件前和事件后输入流来接洽自动化助理
JP7280066B2 (ja) * 2019-03-07 2023-05-23 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
CN112262370A (zh) * 2019-05-06 2021-01-22 谷歌有限责任公司 响应于语音命令在应用上渲染视觉组件
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
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
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US20220191162A1 (en) * 2019-05-28 2022-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Network nodes and methods performed therein for handling messages
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
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
EP4270172A3 (en) * 2019-06-05 2024-01-10 Google LLC Action validation for digital assistant-based applications
US20200388280A1 (en) 2019-06-05 2020-12-10 Google Llc Action validation for digital assistant-based applications
US10926173B2 (en) 2019-06-10 2021-02-23 Electronic Arts Inc. Custom voice control of video game character
US10901689B1 (en) * 2019-07-11 2021-01-26 International Business Machines Corporation Dynamic augmented reality interface creation
EP3970000A1 (en) * 2019-07-19 2022-03-23 Google LLC Condensed spoken utterances for automated assistant control of an intricate application gui
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11861674B1 (en) 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
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
CN111261156A (zh) * 2019-12-30 2020-06-09 北京梧桐车联科技有限责任公司 语音采集方法、装置及计算机可读存储介质
US11907298B2 (en) * 2020-02-04 2024-02-20 Intuition Robotics, Ltd. System and method thereof for automatically updating a decision-making model of an electronic social agent by actively collecting at least a user response
US11782986B2 (en) 2020-03-27 2023-10-10 Trushant Mehta Interactive query based network communication through a media device
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11556707B2 (en) 2020-06-18 2023-01-17 Google Llc Fulfillment of actionable requests ahead of a user selecting a particular autocomplete suggestion for completing a current user input
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
US11587568B2 (en) * 2020-12-08 2023-02-21 Google Llc Streaming action fulfillment based on partial hypotheses
CN112698872A (zh) * 2020-12-21 2021-04-23 北京百度网讯科技有限公司 语音数据处理的方法、装置、设备及存储介质
US11947783B2 (en) * 2021-01-25 2024-04-02 Google Llc Undoing application operation(s) via user interaction(s) with an automated assistant
US11978449B2 (en) 2021-03-02 2024-05-07 Samsung Electronics Co., Ltd. Electronic device for processing user utterance and operation method therefor
US20220293128A1 (en) * 2021-03-10 2022-09-15 Comcast Cable Communications, Llc Systems and methods for improved speech and command detection
US20220366338A1 (en) * 2021-05-13 2022-11-17 At&T Intellectual Property I, L.P. Contextual presentation of multiple steps in performing a task

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003050668A2 (en) * 2001-12-13 2003-06-19 Koninklijke Philips Electronics N.V. Gui with voice control system
RU2349970C2 (ru) * 2003-01-09 2009-03-20 Моторола, Инк. Блок разрешения диалога голосового браузера для системы связи
US8595642B1 (en) * 2007-10-04 2013-11-26 Great Northern Research, LLC Multiple shell multi faceted graphical user interface
US20140365227A1 (en) * 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3725566B2 (ja) * 1992-12-28 2005-12-14 株式会社東芝 音声認識インターフェース
DE102005016853A1 (de) * 2005-04-12 2006-10-19 Siemens Ag Verfahren zur Kontrolle von sprachgesteuerten Applikationen und zugehöriges Kontrollsystem
US9064010B2 (en) * 2006-12-13 2015-06-23 Quickplay Media Inc. Encoding and transcoding for mobile media
US20130176328A1 (en) * 2009-12-25 2013-07-11 Nokia Corporation Method and apparatus for persistent display of navigation content
US20120209413A1 (en) 2011-02-14 2012-08-16 Microsoft Corporation Background Audio on Mobile Devices
US9063629B2 (en) * 2011-10-31 2015-06-23 Nokia Technologies Oy Responding to a received message in a locked user interaction mode
CN102510426A (zh) 2011-11-29 2012-06-20 安徽科大讯飞信息科技股份有限公司 个人助理应用访问方法及系统
US9052197B2 (en) 2012-06-05 2015-06-09 Apple Inc. Providing navigation instructions while device is in locked mode
CN103593230B (zh) 2012-08-13 2017-05-10 百度在线网络技术(北京)有限公司 移动终端的后台任务控制方法及移动终端
US10276157B2 (en) * 2012-10-01 2019-04-30 Nuance Communications, Inc. Systems and methods for providing a voice agent user interface
US9384732B2 (en) 2013-03-14 2016-07-05 Microsoft Technology Licensing, Llc Voice command definitions used in launching application with a command
US9008283B2 (en) * 2013-03-15 2015-04-14 Genesys Telecommunications Laboratories, Inc. Customer portal of an intelligent automated agent for a contact center
KR101505127B1 (ko) * 2013-03-15 2015-03-26 주식회사 팬택 음성 명령에 의한 오브젝트 실행 장치 및 방법
US9658740B2 (en) * 2013-03-15 2017-05-23 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
CN103257787B (zh) 2013-05-16 2016-07-13 小米科技有限责任公司 一种语音助手应用的开启方法和装置
US9749209B2 (en) * 2013-11-01 2017-08-29 The Nielsen Company (Us), Llc Methods and apparatus to credit background applications
US9741343B1 (en) * 2013-12-19 2017-08-22 Amazon Technologies, Inc. Voice interaction application selection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003050668A2 (en) * 2001-12-13 2003-06-19 Koninklijke Philips Electronics N.V. Gui with voice control system
RU2349970C2 (ru) * 2003-01-09 2009-03-20 Моторола, Инк. Блок разрешения диалога голосового браузера для системы связи
US8595642B1 (en) * 2007-10-04 2013-11-26 Great Northern Research, LLC Multiple shell multi faceted graphical user interface
US20140365227A1 (en) * 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2788321C1 (ru) * 2022-05-23 2023-01-17 Общество с ограниченной ответственностью фирма "Интерсвязь" Система обеспечения связи конечного потребителя с поставщиком услуг при помощи виртуального ассистента

Also Published As

Publication number Publication date
KR102490776B1 (ko) 2023-01-19
MX2017008926A (es) 2017-10-11
MY186956A (en) 2021-08-26
CA3158979A1 (en) 2016-07-14
WO2016111881A1 (en) 2016-07-14
IL252458B (en) 2019-11-28
EP3243199B1 (en) 2019-06-19
AU2015375326A1 (en) 2017-06-15
PH12017550012A1 (en) 2017-10-18
KR20170103801A (ko) 2017-09-13
SG11201705282XA (en) 2017-07-28
US9959129B2 (en) 2018-05-01
BR112017013524A2 (pt) 2018-01-02
EP3584787A1 (en) 2019-12-25
AU2015375326B2 (en) 2020-08-27
NZ732357A (en) 2022-10-28
CO2017007028A2 (es) 2017-09-29
NZ770836A (en) 2022-10-28
IL252458A0 (en) 2017-07-31
CA2970725A1 (en) 2016-07-14
CL2017001755A1 (es) 2018-02-16
JP6666920B2 (ja) 2020-03-18
JP2018511095A (ja) 2018-04-19
CA2970725C (en) 2023-05-23
CN107111516B (zh) 2021-07-30
RU2017124103A3 (ru) 2019-07-17
EP3584787B1 (en) 2022-02-23
BR112017013524B1 (pt) 2023-03-07
US20160203002A1 (en) 2016-07-14
RU2017124103A (ru) 2019-01-09
EP3243199A1 (en) 2017-11-15
CN107111516A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
RU2710984C2 (ru) Совершение задачи без монитора в цифровом персональном помощнике
EP3436970B1 (en) Application integration with a digital assistant
CN107112015B (zh) 发现第三方启用语音的资源的能力
KR102476621B1 (ko) 사용자, 자동화된 어시스턴트 및 컴퓨팅 서비스 간의 다중 모드 상호 작용
US11347801B2 (en) Multi-modal interaction between users, automated assistants, and other computing services
US10811005B2 (en) Adapting voice input processing based on voice input characteristics
US11749276B2 (en) Voice assistant-enabled web application or web page
JP2019050019A (ja) 提案される音声ベースのアクションクエリの提供
CN111033492A (zh) 为自动化助手提供命令束建议
US10860289B2 (en) Flexible voice-based information retrieval system for virtual assistant
US11200893B2 (en) Multi-modal interaction between users, automated assistants, and other computing services
KR20240027140A (ko) 통신 세션에서의 디지털 어시스턴트 상호작용