DE112019000018T5 - Anheben, um zu sprechen - Google Patents

Anheben, um zu sprechen Download PDF

Info

Publication number
DE112019000018T5
DE112019000018T5 DE112019000018.7T DE112019000018T DE112019000018T5 DE 112019000018 T5 DE112019000018 T5 DE 112019000018T5 DE 112019000018 T DE112019000018 T DE 112019000018T DE 112019000018 T5 DE112019000018 T5 DE 112019000018T5
Authority
DE
Germany
Prior art keywords
virtual assistant
assistant session
input
user
electronic device
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE112019000018.7T
Other languages
English (en)
Inventor
Stephen O. Lemay
Michael R. BASTIAN
Roman Holenstein
Minwoo Jeong
Charles MAALOUF
Brandon J. NEWENDORP
Heriberto NIETO
Timothy Paek
Joanna PETERSON
Shawn SCULLY
Srikrishna Sridhar
Brandt M. WESTING
Shiwen ZHAO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DKPA201870384A external-priority patent/DK179959B1/en
Priority claimed from US16/032,487 external-priority patent/US10928918B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE112019000018T5 publication Critical patent/DE112019000018T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72433User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for voice messaging, e.g. dictaphones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • 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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • 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/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/163Indexing scheme relating to constructional details of the computer
    • G06F2200/1637Sensing arrangement for detection of housing movement or orientation, e.g. for controlling scrolling or cursor movement on the display of an handheld computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04105Pressure sensors for measuring the pressure or force exerted on the touch surface without providing the touch position
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/40Electronic components, circuits, software, systems or apparatus used in telephone systems using speech recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/22Details of telephonic subscriber devices including a touch pad, a touch sensor or a touch detector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/74Details of telephonic subscriber devices with voice recognition means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Es werden Systeme und Verfahren zum Betrieb eines intelligenten automatisierten Assistenten bereitgestellt. Ein beispielhafter Prozess schließt das Erfassen einer Eingabe, die eine Bewegung einer elektronischen Vorrichtung repräsentiert, und das Abtasten einer Audioeingabe mit einem Mikrofon der elektronischen Vorrichtung ein. Der beispielhafte Prozess schließt ferner ein, dass auf Grundlage der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt wird, ob eine virtuelle Assistentensitzung initiiert werden soll. Gemäß einer Bestimmung, die virtuelle Assistentensitzung zu initiieren, schließt der beispielhafte Prozess das Initiieren der virtuellen Assistentensitzung ein. Gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, schließt der beispielhafte Prozess das Unterlassen des Initiierens der virtuellen Assistentensitzung ein.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung Nr. 62/668,154 mit dem Titel „RAISE TO SPEAK“, eingereicht am 7. Mai 2018, gegenüber der vorläufigen US-Anmeldung Nr. 62/679,798 mit dem Titel „RAISE TO SPEAK“, eingereicht am 2. Juni 2018, gegenüber der US-Patentanmeldung Nr. 16/032,487 mit dem Titel „RAISE TO SPEAK“, eingereicht am 11. Juli 2018, und gegenüber der dänischen Patentanmeldung Nr. PA 2018 70384 mit dem Titel „RAISE TO SPEAK“, eingereicht am 12. Juni 2018. Die Inhalte aller dieser Anmeldungen sind hiermit durch Bezugnahme in ihrer Gesamtheit eingeschlossen.
  • GEBIET
  • Dies bezieht sich im Allgemeinen auf intelligente automatisierte Assistenten und genauer auf das Initiieren eines sprachbasierten Dienstes, wie eines intelligenten automatisierten Assistenten.
  • HINTERGRUND
  • Intelligente automatisierte Assistenten (oder digitale Assistenten) stellen eine nützliche Schnittstelle zwischen menschlichen Benutzern und elektronischen Vorrichtungen bereit. Solche Assistenten ermöglichen es Benutzern, mit Vorrichtungen oder Systemen über natürliche Sprache in gesprochenen und/oder Textformen zu interagieren. Beispielsweise kann ein Benutzer eine Spracheingabe mit einer Benutzeranfrage für einen digitalen Assistenten, der auf einer elektronischen Vorrichtung betrieben wird, bereitstellen. Der digitale Assistent kann die Benutzerabsicht aus der Spracheingabe interpretieren und die Benutzerabsicht in Aufgaben umsetzen. Die Aufgaben können dann durch das Ausführen von einem oder mehreren Diensten der elektronischen Vorrichtung durchgeführt werden, und dem Benutzer kann eine relevante Ausgabe in Reaktion auf die Benutzeranfrage zurückgegeben werden.
  • Beim Betrieb des digitalen Assistenten wird Strom verbraucht, der bei Handvorrichtungen und tragbaren Vorrichtungen, die mit Akkus betrieben werden und auf denen diese digitalen Assistenten häufig ausgeführt werden, eine eingeschränkte Ressource darstellt. Dementsprechend ist es wünschenswert, einen digitalen Assistenten auf eine energieeffiziente Weise zu initiieren und zu betreiben.
  • ZUSAMMENFASSUNG
  • Beispielhafte Verfahren sind hierin offenbart. Ein beispielhaftes Verfahren schließt bei einer elektronischen Vorrichtung mit einem Mikrofon und einer Anzeige ein: Erfassen einer Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, und Abtasten einer Audioeingabe mit dem Mikrofon. Das Verfahren schließt ferner ein, dass auf der Grundlage der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt wird, ob eine virtuelle Assistentensitzung initiiert werden soll. Das Verfahren schließt ferner ein, gemäß einer Bestimmung zur Initiierung der virtuelle Assistentensitzung, die virtuellen Assistentensitzung zu initiieren und gemäß einer Bestimmung zur nicht Initiierung der virtuelle Assistentensitzung, auf das Initiieren der virtuellen Assistentensitzung zu verzichten.
  • Beispielhafte nichtflüchtige computerlesbare Medien sind hierin offenbart. Ein beispielhaftes nichtflüchtiges computerlesbares Speichermedium speichert ein oder mehrere Programme. Das eine oder die mehreren Programme umfassen Anweisungen, die, wenn sie von einem oder mehreren Prozessoren einer elektronischen Vorrichtung mit einem Mikrofon und einer Anzeige ausgeführt werden, bewirken, dass die elektronische Vorrichtung: eine Eingabe erfasst, die eine Bewegung der elektronischen Vorrichtung repräsentiert, eine Audioeingabe mit dem Mikrofon erfasst, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt, ob eine virtuelle Assistentensitzung initiiert werden soll, gemäß der Bestimmung, dass die virtuelle Assistentensitzung initiiert werden soll, die virtuelle Assistentensitzung initiiert und gemäß der Bestimmung, dass die virtuelle Assistentensitzung nicht initiiert werden soll, auf das Initiieren der virtuelle Assistentensitzung verzichtet.
  • Beispielhafte elektronische Vorrichtungen sind hierin offenbart. Eine beispielhafte elektronische Vorrichtung umfasst ein Mikrofon, eine Anzeige, einen oder mehrere Prozessoren, einen Speicher und ein oder mehrere Programme, wobei das eine oder die mehreren Programme im Speicher gespeichert und konfiguriert sind, um von einem oder mehreren Prozessoren ausgeführt zu werden, wobei das eine oder die mehreren Programme Anweisungen einschließen zum: Erfassen einer Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, Abtasten, mit dem Mikrofon, einer Audioeingabe, Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine virtuelle Assistentensitzung gemäß einer Bestimmung zur Initiierung der virtuelle Assistentensitzung initiiert werden soll, Initiieren der virtuellen Assistentensitzung und gemäß einer Bestimmung zur nicht Initiierung der virtuelle Assistentensitzung, das Verzichten auf das Initiieren der virtuellen Assistentensitzung.
  • Eine beispielhafte elektronische Vorrichtung umfasst Mittel zum: Erfassen von Eingaben, die eine Bewegung der elektronischen Vorrichtung repräsentieren, Abtasten einer Audioeingabe, Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine virtuelle Assistentensitzung gemäß einer Bestimmung zur Initiierung der virtuelle Assistentensitzung initiiert werden soll, Initiieren der virtuellen Assistentensitzung und gemäß einer Bestimmung zur nicht Initiierung der virtuelle Assistentensitzung, das Verzichten auf das Initiieren der virtuellen Assistentensitzung.
  • Das Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert (z. B. „Bewegungseingabe“), ob eine virtuelle Assistentensitzung initiiert werden soll, bietet eine natürliche und effiziente Möglichkeit, einen virtuellen Assistenten zu initiieren und mit ihm zu interagieren. Um beispielsweise einen virtuellen Assistenten zu initiieren und eine Aufgabe durch den virtuellen Assistenten basierend auf einer gesprochenen Anforderung ausführen zu lassen, hebt ein Benutzer einfach eine Vorrichtung in die Nähe seines Mundes an und äußert die Anforderung ungefähr zur gleichen Zeit (z. B. ohne dass die Anforderung einen gesprochenen Auslöser wie „Hey Siri“ beinhaltet). Die auf diese Weise ermöglichte Interaktion mit virtuellen Assistenten ermöglicht eine effiziente Interaktion mit virtuellen Assistenten (z. B. ist vor jeder Interaktion kein gesprochener Auslöser erforderlich) und eine schnelle Reaktion des virtuellen Assistenten auf gesprochene Anfragen. Darüber hinaus verhindert die Verwendung von Audioeingabe und Bewegungseingabe zum Initiieren einer virtuellen Assistentensitzung eine versehentliche Aktivierung des virtuellen Assistenten, die entweder auf Audioeingabe oder Bewegungseingabe allein basiert. Dies verringert die Wahrscheinlichkeit, versehentlich einen virtuellen Assistenten zu initiieren, und spart Batterieleistung, die ansonsten aufgrund des nicht erwünschten Betriebs eines virtuellen Assistenten verbraucht werden würde. Auf diese Weise wird die Schnittstelle der Benutzervorrichtung effizienter gestaltet (z. B. durch Reduzierung der Anzahl der Audioeingaben, die der Benutzer bereitstellt, durch Verringerung der Reaktionszeit des virtuellen Assistenten, durch Verhinderung einer unbeabsichtigten Aktivierung des virtuellen Assistenten), was zusätzlich den Stromverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht, die Vorrichtung schneller und effizienter zu nutzen.
  • Figurenliste
    • 1 ist ein Blockdiagramm, das ein System und eine Umgebung für die Implementierung eines digitalen Assistenten gemäß verschiedenen Beispielen veranschaulicht.
    • 2A ist ein Blockdiagramm, das eine tragbare Multifunktionsvorrichtung veranschaulicht, bei der der clientseitige Abschnitt eines digitalen Assistenten gemäß verschiedenen Beispielen implementiert ist.
    • 2B ist ein Blockdiagramm, das beispielhafte Komponenten für die Ereignisbehandlung gemäß verschiedenen Beispielen veranschaulicht.
    • 3 veranschaulicht eine tragbare Multifunktionsvorrichtung, bei der der clientseitige Bereich eines digitalen Assistenten gemäß verschiedenen Beispielen implementiert wird.
    • 4 ist ein Blockdiagramm einer beispielhaften Multifunktionsvorrichtung mit einem Bildschirm und einer berührungsempfindlichen Oberfläche gemäß verschiedenen Beispielen.
    • 5A veranschaulicht eine beispielhafte Benutzerschnittstelle für ein Anwendungsmenü auf einer tragbaren Multifunktionsvorrichtung gemäß verschiedenen Beispielen.
    • 5B veranschaulicht eine beispielhafte Benutzerschnittstelle für eine Multifunktionsvorrichtung mit einer berührungsempfindlichen Oberfläche, die von dem Bildschirm separat ist, gemäß verschiedenen Beispielen.
    • 6A veranschaulicht eine persönliche elektronische Vorrichtung gemäß verschiedenen Beispielen.
    • 6B ist ein Blockdiagramm, das eine persönliche elektronische Vorrichtung gemäß verschiedenen Beispielen veranschaulicht.
    • 7A ist ein Blockdiagramm, das ein digitales Assistenzsystem oder einen Serverabschnitt davon gemäß verschiedenen Beispielen veranschaulicht.
    • 7B veranschaulicht die Funktionen des in 7A gezeigten digitalen Assistenten gemäß verschiedenen Beispielen.
    • 7C veranschaulicht einen Bereich einer Ontologie gemäß verschiedenen Beispielen.
    • 8A-D veranschaulichen beispielhafte Techniken zum Initiieren einer virtuellen Assistentensitzung bei einer elektronischen Vorrichtung, die auf Audioeingabe und einer Eingabe basiert, die die Bewegung der elektronischen Vorrichtung repräsentiert.
    • 8E-F veranschaulichen beispielhafte Techniken zum Deaktivieren einer virtuellen Assistentensitzung.
    • 9 veranschaulicht ein Blockdiagramm eines Systems, das konfiguriert ist, um Audioeingaben und Bewegungseingaben gemäß einigen Beispielen zu verarbeiten.
    • 10A-D veranschaulichen einen Prozess zum Betreiben eines digitalen Assistenten gemäß verschiedenen Beispielen.
    • 11 veranschaulicht einen Prozess zum Übertragen von Kommunikation gemäß verschiedenen Beispielen.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung von Beispielen wird auf die beigefügten Zeichnungen Bezug genommen, in denen zur Veranschaulichung spezifische Beispiele gezeigt werden, die umgesetzt werden können. Es sei klargestellt, dass andere Beispiele verwendet und strukturelle Änderungen vorgenommen werden können, ohne vom Umfang der verschiedenen Beispiele abzuweichen.
  • Wie erörtert, bezieht sich die vorliegende Offenbarung auf Techniken zum Initiieren einer virtuellen Assistentensitzung basierend auf Audioeingabe und Bewegungseingabe. Um beispielsweise eine virtuelle Assistentensitzung auf einer am Handgelenk tragbaren Vorrichtung (z. B. einer Smart-Watch) zu initiieren, hebt ein Benutzer, der die Vorrichtung trägt, die Vorrichtung in die Nähe des Mundes des Benutzers an und gibt Audioeingaben (z. B. „Wie ist das Wetter in Palo Alto“), wenn (oder kurz davor oder danach) die Vorrichtung in die Nähe des Mundes des Benutzers gehoben wird. In einigen Beispielen beinhaltet die Audioeingabe keinen gesprochenen Auslöser (z. B. „Hey Siri“) zum Initiieren eines virtuellen Assistenten. Eine virtuelle Assistentensitzung wird auf der Vorrichtung auf der Grundlage der erfassten Bewegungseingabe und der abgetasteten Audioeingabe initiiert, und die initiierte virtuelle Assistentensitzung antwortet auf die Audioeingabe (z. B. durch Bereitstellen der Antwort „Es sind 70 Grad Fahrenheit und sonnig“). Dementsprechend wird eine intuitive und effiziente Art der Initiierung und Interaktion mit virtuellen Assistenten-Sitzungen bereitgestellt.
  • Obwohl in der folgenden Beschreibung die Begriffe „erstes“, „zweites“ usw. verwendet werden, um verschiedene Elemente zu beschreiben, sollten diese Elemente durch die Begriffe nicht eingeschränkt sein. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Zum Beispiel kann eine erste Eingabe als eine zweite Eingabe bezeichnet werden, und gleichermaßen kann eine zweite Eingabe als eine erste Eingabe bezeichnet werden, ohne vom Umfang der verschiedenen beschriebenen Beispiele abzuweichen. Die erste Eingabe und die zweite Eingabe sind beides Eingaben und in einigen Fällen separate und verschiedene Eingaben.
  • Die in der Beschreibung der verschiedenen, hierin beschriebenen Beispiele verwendete Terminologie dient lediglich der Beschreibung bestimmter Beispiele und soll nicht als Einschränkung verstanden werden. So wie sie in der Beschreibung der verschiedenen beschriebenen Beispiele und der beigefügten Ansprüche verwendet werden, sollen die Singularformen „ein“, „eine“, „eines“ und „die“, „der“, „das“ auch die Pluralformen einschließen, es sei denn der Kontext gibt ausdrücklich Gegenteiliges an. Es versteht sich auch, dass der Begriff „und/oder“, so wie er hier verwendet wird, sich auf jegliche und alle möglichen Kombinationen von einem oder mehreren der damit zusammenhängenden, aufgeführten Begriffe bezieht und diese einschließt. Es versteht sich ferner, dass die Begriffe „einschließen“, „einschließend“, „umfasst“ und/oder „umfassend“, wenn sie in dieser Patentschrift verwendet werden, die Gegenwart von aufgeführten Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, aber die Gegenwart oder das Hinzufügen von einem oder mehreren Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Der Begriff „wenn“ kann in seiner Bedeutung je nach Kontext als „während“ oder „bei“ oder „als Reaktion auf das Feststellen“ oder „als Reaktion auf das Erfassen“ ausgelegt werden. Auf ähnliche Weise kann die Wendung „wenn festgestellt wird“ oder „wenn [eine aufgeführte Bedingung oder ein aufgeführtes Ereignis] erfasst wird“ so ausgelegt werden, dass sie je nach Kontext „bei Bestimmung“ oder „als Reaktion auf das Bestimmen“ oder „bei Erfassen [der aufgeführten Bedingung oder des aufgeführten Ereignisses]“ oder „als Reaktion auf das Erfassen [der aufgeführten Bedingung oder des aufgeführten Ereignisses]“ bedeutet.
  • System und Umgebung
  • 1 stellt ein Blockdiagramm eines Systems 100 gemäß verschiedenen Beispielen dar. In einigen Beispielen implementiert das System 100 einen digitalen Assistenten. Die Begriffe „digitaler Assistent“, „virtueller Assistent“, „intelligenter automatisierter Assistent“ oder „automatischer digitaler Assistent“ beziehen sich auf jegliches Informationsverarbeitungssystem, das Eingabe natürlicher Sprache in gesprochener und/oder Textform interpretiert, um die Benutzerabsicht abzuleiten, und führt Aktionen auf der Grundlage der abgeleiteten Benutzerabsicht aus. Um beispielsweise auf eine abgeleitete Benutzerabsicht zu reagieren, führt das System einen oder mehrere der folgenden Schritte aus: Identifizieren eines Task-Flows mit Schritten und Parametern, die dazu bestimmt sind, die abgeleitete Benutzerabsicht zu erfüllen, Eingeben spezifischer Anforderungen aus der abgeleiteten Benutzerabsicht in den Task-Flow; Ausführen des Task-Flows durch Aufrufen von Programmen, Verfahren, Diensten, API oder Ähnlichem; und Erzeugen von Ausgabeantworten an den Benutzer in einer hörbaren (z. B. Sprache) und/oder visuellen Form.
  • Insbesondere ist ein digitaler Assistent in der Lage, eine Benutzeranforderung mindestens teilweise in der Form eines Befehls, einer Anforderung, einer Aussage, Erzählung und/oder Anfrage in natürlicher Sprache zu akzeptieren. In der Regel sucht die Benutzeranforderung entweder eine informationelle Antwort oder Ausführung eines Tasks von dem digitalen Assistenten. Eine zufriedenstellende Antwort auf die Benutzeranfrage beinhaltet eine Bereitstellung der angefragten informationellen Antwort, eine Durchführung der angefragten Aufgabe oder eine Kombination der beiden. Zum Beispiel stellt ein Benutzer dem digitalen Assistenten eine Frage wie: „Wo bin ich gerade?“ Basierend auf dem aktuellen Standort des Benutzers antwortet der digitale Assistent: „Sie sind im Central Park in der Nähe des Westtors“. Der Benutzer fordert auch die Durchführung einer Aufgabe an, indem er zum Beispiel sagt: „Bitte lade meine Freunde zu der Geburtstagsparty meiner Freundin nächste Woche ein.“ Als Reaktion darauf kann der digitale Assistent die Anforderung bestätigen und sagen: „Ja, mache ich sofort.“. Anschließend kann er für den Benutzer eine entsprechende Kalendereinladung an alle Freunde des Benutzers senden, die im elektronischen Adressbuch des Benutzers angegeben sind. Während der Ausführung eines angeforderten Tasks interagiert der digitale Assistent gelegentlich mit dem Benutzer in einem kontinuierlichen Dialog, der mehrere Informationsaustausche über einen verlängerten Zeitraum beinhaltet. Es gibt zahlreiche andere Wege des Interagierens mit einem digitalen Assistenten, um Informationen oder die Durchführung verschiedener Aufgaben anzufordern. Zusätzlich zum Bereitstellen verbaler Antworten und dem Ausüben programmierter Aktionen stellt der digitale Assistent auch Antworten in anderen visuellen oder akustischen Formen bereit, z. B. als Text, Warnungen, Musik, Videos, Animationen usw.
  • Wie in 1 gezeigt, wird in einigen Beispielen ein digitaler Assistent gemäß einem Client-Server-Modell implementiert. Der digitale Assistent beinhaltet einen clientseitigen Abschnitt 102, (nachstehend „DA-Client 102“), der auf der Benutzervorrichtung 104 ausgeführt wird, und einen serverseitigen Abschnitt 106 (nachstehend „DA-Server 106“), der auf einem Serversystem 108 ausgeführt wird. Der DA-Client 102 kommuniziert mit dem DA-Server 106 durch ein oder mehrere Netzwerke 110. Der DA-Client 102 stellt clientseitige Funktionalitäten bereit, wie etwa zum Benutzer gerichtete Eingabe- und Ausgabeverarbeitung und Kommunikation mit dem DA-Server 106. Der DA-Server 106 stellt serverseitige Funktionalitäten für eine beliebige Anzahl von DA-Clients 102 bereit, die jeweils auf einer jeweiligen Benutzervorrichtung 104 vorhanden sind.
  • In einigen Beispielen beinhaltet der DA-Server 106 eine clientseitige E/A-Schnittstelle 112, ein oder mehrere Verarbeitungsmodule 114, Daten und Modelle 116 und eine E/A-Schnittstelle mit externen Diensten 118. Die clientseitige E/A-Schnittstelle 112 erleichtert die clientseitige Eingabe- und Ausgabeverarbeitung für DA-Server 106. Ein oder mehrere Verarbeitungsmodule 114 verwenden Daten und Modelle 116 zur Verarbeitung der Spracheingabe und Bestimmung der Intention des Benutzers auf der Basis der natürlichen Spracheingabe. Des Weiteren führen ein oder mehrere Verarbeitungsmodule 114 Aufgaben auf der Basis der gefolgerten Benutzerintention durch. In einigen Beispielen kommuniziert der DA-Server 106 mit externen Diensten 120 über das bzw. die Netzwerk(e) 110, um Aufgaben zu erfüllen oder Informationen zu beschaffen. Die E/A-Schnittstelle mit externen Diensten 118 erleichtert solche Kommunikationen.
  • Benutzervorrichtung 104 kann jede geeignete elektronische Vorrichtung sein. In manchen Beispielen ist die Benutzervorrichtung 104 eine tragbare Multifunktionsvorrichtung (z. B. Vorrichtung 200, nachfolgend unter Bezugnahme auf 2A beschrieben), eine Multifunktionsvorrichtung (z. B. Vorrichtung 400, nachfolgend unter Bezugnahme auf 4 beschrieben) oder eine persönliche elektronische Vorrichtung (z. B. Vorrichtung 600, nachfolgend unter Bezugnahme auf 6A-B beschrieben). Eine tragbare Multifunktionsvorrichtung ist zum Beispiel ein Mobiltelefon, das auch andere Funktionen wie PDA- und/oder Musikwiedergabefunktionen beinhaltet. Spezifische Beispiele für tragbare Multifunktionsvorrichtungen schließen die Apple Watch®-, iPhone®-, iPod Touch®- und iPad®-Vorrichtungen von Apple Inc., Cupertino, Kalifornien, ein. Andere Beispiele von tragbaren Multifunktionsvorrichtungen schließen, ohne Einschränkung, Ohrhörer/Kopfhörer, Lautsprecher und Laptop- oder Tablet-Computer ein. Des Weiteren ist die Benutzervorrichtung 104 in einigen Beispielen eine nicht tragbare Multifunktionsvorrichtung. Konkret ist die Benutzervorrichtung 104 ein Desktop-Computer, eine Spielekonsole, ein Lautsprecher, ein Fernseher oder eine TV-Set-Top-Box. In einigen Beispielen schließt die Benutzervorrichtung 104 eine berührungsempfindliche Oberfläche ein (z. B. einen Touchscreen und/oder ein Touchpad). Zudem schließt die Benutzervorrichtung 104 wahlweise eine oder mehrere physische Benutzerschnittstellenvorrichtungen, wie etwa eine physische Tastatur, eine Maus und/oder einen Joystick, ein. Verschiedene Beispiele für elektronische Vorrichtungen wie Multifunktionsvorrichtungen sind nachfolgend detaillierter beschrieben.
  • Beispiele für Kommunikationsnetzwerke 110 schließen LANs (Local Area Networks) und WANs (Wide Area Networks) wie das Internet ein. Die Kommunikationsnetzwerke 110 werden unter Verwendung aller bekannten Netzwerkprotokolle, einschließlich verschiedener drahtgebundener oder drahtloser Protokolle wie beispielsweise Ethernet, USB (Universal Serial Bus), FIREWIRE, GSM (Global System for Mobile Communications), EDGE (Enhanced Data GSM Environment), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), Bluetooth, Wi-Fi, VoIP (Voice over Internet Protocol), Wi-MAX oder aller anderen geeigneten Kommunikationsprotokolle umgesetzt.
  • Das Serversystem 108 wird auf einer oder mehreren eigenständigen Datenverarbeitungsvorrichtungen oder einem verteilten Netzwerk von Computern implementiert. In einigen Beispielen setzt das Serversystem 108 auch verschiedene virtuelle Vorrichtungen und/oder Service-Drittanbieter (z. B. Cloud-Service-Drittanbietern) ein, um die zugrundeliegenden Rechenressourcen und/oder Infrastrukturressourcen des Serversystems 108 bereitzustellen.
  • In einigen Beispielen kommuniziert die Benutzervorrichtung 104 mit dem DA-Server 106 über eine zweite Benutzervorrichtung 122. Die zweite Benutzervorrichtung 122 ist der Benutzervorrichtung 104 ähnlich oder identisch mit dieser. Die zweite Benutzervorrichtung 122 ist beispielsweise den unten beschriebenen Vorrichtungen 200, 400 oder 600 mit Bezug auf 2A, 4 und 6A-B ähnlich. Die Benutzervorrichtung 104 ist so konfiguriert, dass sie kommunikativ über eine direkte Kommunikationsverbindung wie Bluetooth, NFC, BTLE oder Ähnliches oder über ein Kabel- oder Wireless-Netzwerk wie ein lokales WLAN-Netzwerk mit der zweiten Benutzervorrichtung 122 gekoppelt ist. In einigen Beispielen ist die zweite Benutzervorrichtung 122 so konfiguriert, dass sie als Proxy zwischen der Benutzervorrichtung 104 und dem DA-Server 106 fungiert. Der DA-Client 102 der Benutzervorrichtung 104 ist beispielsweise so konfiguriert, dass er Informationen (z. B. eine Benutzeranfrage, die von Benutzervorrichtung 104 empfangen wurde) über eine zweite Benutzervorrichtung 122 an DA-Server 106 überträgt. Der DA-Server 106 verarbeitet die Informationen und gibt relevante Daten (z. B. Dateninhalt als Reaktion auf die Benutzeranfrage) über eine zweite Benutzervorrichtung 122 an die Benutzervorrichtung 104 zurück.
  • In einigen Beispielen ist die Benutzervorrichtung 104 so konfiguriert, dass sie abgekürzte Anfragen nach Daten an die zweite Benutzervorrichtung 122 kommuniziert, um die Menge der von Benutzervorrichtung 104 übertragenen Daten zu reduzieren. Die zweite Benutzervorrichtung 122 ist so konfiguriert, dass sie ergänzende Informationen bestimmt, um sie der abgekürzten Anfrage hinzuzufügen und eine vollständige Anfrage zur Übertragung an den DA-Server 106 zu erzeugen. Diese Systemarchitektur kann für den Vorteil sorgen, dass die Benutzervorrichtung 104 bei begrenzten Kommunikationsfunktionen und/oder eingeschränkter Batterie-/Akkuleistung (z. B. eine Uhr oder eine ähnliche kompakte elektronische Vorrichtung) auf Dienste zugreifen kann, die vom DA-Server 106 mithilfe der zweiten Benutzervorrichtung 122 bereitgestellt werden, die größere Kommunikationsfunktionen und/oder Batterie-/Akkuleistung besitzt (z. B. ein Mobiltelefon, ein Laptop-Computer, ein Tablet-Computer oder dergleichen), als Proxy für den DA-Server 106. Auch wenn in 1 nur zwei Benutzervorrichtungen 104 und 122 dargestellt werden, sollte angenommen werden, dass das System 100 in manchen Beispielen jede Anzahl und jeden Typ von Benutzervorrichtungen einschließt, die in dieser Proxy-Konfiguration zur Kommunikation mit dem DA-Serversystem 106 konfiguriert werden.
  • Obwohl der in 1 dargestellte digitale Assistent sowohl einen clientseitigen Abschnitt (z. B. DA-Client 102) als auch einen serverseitigen Abschnitt (z. B. DA-Server 106) einschließt, sind in einigen Ausführungsformen die Funktionen eines digitalen Assistenten als eigenständige Anwendung, die auf einer Benutzervorrichtung installiert ist, implementiert. Zusätzlich können die Aufteilungen von Funktionalitäten zwischen den Client- und Server-Abschnitten des digitalen Assistenten in verschiedenen Implementierungen variieren. Zum Beispiel ist der DA-Client in manchen Beispielen ein Thin-Client, der nur benutzerseitige Eingabe- und Ausgabeverarbeitungsfunktionen bereitstellt und alle anderen Funktionalitäten des digitalen Assistenten an einen Backend-Server delegiert.
  • Elektronische Vorrichtungen
  • Die Aufmerksamkeit richtet sich nun auf Ausführungsformen für elektronische Vorrichtungen zur Implementierung des clientseitigen Abschnitts eines digitalen Assistenten. 2A zeigt ein Blockdiagramm, das eine tragbare Multifunktionsvorrichtung 200 mit einem berührungsempfindlichen Anzeigesystem 212 gemäß manchen Ausführungsformen veranschaulicht. Die berührungsempfindliche Anzeige 212 wird der Zweckmäßigkeit wegen manchmal „Touchscreen“ genannt und ist manchmal als „berührungsempfindliches Anzeigesystem“ bekannt oder wird so genannt. Die Vorrichtung 200 schließt einen Speicher 202 (der wahlweise ein oder mehrere computerlesbare Datenspeichermedien einschließt), eine Speichersteuervorrichtung 222, eine oder mehrere Verarbeitungseinheiten (CPUs) 220, eine Peripherieeinheitenschnittstelle 218, eine HF-Schaltung 208, eine Audioschaltung 210, einen Lautsprecher 211, ein Mikrofon 213, ein Eingabe/Ausgabe- bzw. E/A-Teilsystem 206, weitere Eingabesteuervorrichtungen 216 und einen externen Anschluss 224 ein. Die Vorrichtung 200 schließt wahlweise einen oder mehrere optische Sensoren 264 ein. Die Vorrichtung 200 schließt wahlweise einen oder mehrere Kontaktintensitätssensoren 265 zum Erfassen einer Intensität von Kontakten auf der Vorrichtung 200 (z. B. einer berührungsempfindlichen Oberfläche, wie beispielsweise dem berührungsempfindlichen Anzeigesystem 212 der Vorrichtung 200) ein. Die Vorrichtung 200 schließt wahlweise einen oder mehrere Tastausgabeerzeuger 267 zum Erzeugen von Tastausgaben auf der Vorrichtung 200 (z. B. Erzeugen von Tastausgaben auf einer berührungsempfindlichen Oberfläche, wie etwa dem berührungsempfindlichen Bildschirmsystem 212 der Vorrichtung 200 oder Touchpad 455 der Vorrichtung 400) ein. Diese Komponenten kommunizieren wahlweise über einen oder mehrere Kommunikationsbusse oder Signalleitungen 203.
  • Wie in der Patentschrift und den Ansprüchen verwendet, bezieht sich der Begriff „Intensität“ eines Kontakts auf einer berührungsempfindlichen Oberfläche auf die Kraft oder den Druck (Kraft pro Flächeneinheit) eines Kontakts (z. B. eines Fingerkontakts) auf der berührungsempfindlichen Oberfläche oder auf einen Ersatz (Stellvertreter) für die Kraft oder den Druck eines Kontakts auf der berührungsempfindlichen Oberfläche. Die Intensität eines Kontakts weist einen Bereich von Werten auf, der mindestens vier bestimmte Werte und noch typischer Hunderte von bestimmten Werten (z. B. mindestens 256) einschließt. Die Intensität eines Kontakts wird wahlweise unter Verwendung verschiedener Ansätze und verschiedener Sensoren oder Kombinationen von Sensoren festgestellt (oder gemessen). Beispielsweise werden ein oder mehrere Kraftsensoren unterhalb oder neben der berührungsempfindlichen Oberfläche wahlweise verwendet, um die Kraft an verschiedenen Punkten auf der berührungsempfindlichen Oberfläche zu messen. In einigen Implementierungen werden Kraftmessungen von mehreren Kraftsensoren kombiniert (z. B. ein gewichteter Durchschnitt), um eine geschätzte Kraft eines Kontakts festzustellen. Auf ähnliche Weise wird die druckempfindliche Spitze eines Eingabestifts wahlweise dazu verwendet, um einen Druck des Eingabestifts auf der berührungsempfindlichen Oberfläche festzustellen. Alternativ dazu werden die Größe des auf der berührungsempfindlichen Oberfläche erfassten Kontaktbereichs und/oder Veränderungen daran, die Kapazität der berührungsempfindlichen Oberfläche in der Nähe des Kontakts und/oder Veränderungen daran und/oder der Widerstand der berührungsempfindlichen Oberfläche in der Nähe des Kontakts und/oder Veränderungen daran wahlweise als Ersatz für die Kraft oder den Druck des Kontakts auf der berührungsempfindlichen Oberfläche verwendet. In einigen Implementierungen werden die Ersatzmessungen für Kontaktkraft oder Kontaktdruck direkt dazu verwendet, um festzustellen, ob ein Intensitätsschwellenwert überschritten wurde (z. B. wird der Intensitätsschwellenwert in Einheiten beschrieben, die den Ersatzmessungen entsprechen). In manchen Implementierungen werden die Ersatzmessungen für eine Kontaktkraft oder einen Kontaktdruck in eine geschätzte Kraft oder einen geschätzten Druck umgewandelt, und die geschätzte Kraft oder der geschätzte Druck wird verwendet, um zu festzustellen, ob ein Intensitätsschwellenwert überschritten wurde (z. B. handelt es sich bei dem Intensitätsschwellenwert um einen in Einheiten des Drucks gemessenen Druckschwellenwert). Ein Verwenden der Intensität eines Kontakts als eine Eigenschaft einer Benutzereingabe erlaubt einen Benutzerzugriff auf eine zusätzliche Vorrichtungsfunktionalität, die andernfalls durch den Benutzer auf einer Vorrichtung verringerter Größe mit begrenzter Grundfläche für ein Anzeigen von Affordanzen (z. B. auf einer berührungsempfindlichen Anzeige) und/oder ein Empfangen von Benutzereingaben (z. B. über eine berührungsempfindliche Anzeige, eine berührungsempfindliche Oberfläche oder eine physischer/mechanische Steuerung, wie beispielsweise einen Knopf oder eine Schaltfläche oder Taste) nicht zugänglich ist.
  • Wie in der Beschreibung und in den Ansprüchen verwendet, bezieht sich der Begriff „taktile Ausgabe“ oder „Tastausgabe“ auf eine physische Verschiebung einer Vorrichtung in Bezug auf eine vorherige Position der Vorrichtung, auf eine physische Verschiebung einer Komponente (z. B. einer berührungsempfindlichen Oberfläche) einer Vorrichtung in Bezug auf eine andere Komponente (z. B. das Gehäuse) der Vorrichtung oder auf das Verschieben der Komponente in Bezug auf einen Masseschwerpunkt der Vorrichtung, der von einem Benutzer anhand seines Tastsinns erfasst wird. Beispielsweise wird in Situationen, in denen die Vorrichtung oder die Komponente der Vorrichtung mit einer Oberfläche eines Benutzers in Kontakt kommt, die berührungsempfindlich ist (z. B. einem Finger, einer Handfläche oder einem anderen Abschnitt der Hand eines Benutzers), die durch die physische Verschiebung erzeugte Tastausgabe vom Benutzer als taktile Empfindung interpretiert, die einer wahrgenommenen Veränderung physikalischer Eigenschaften der Vorrichtung oder der Komponente der Vorrichtung entspricht. Beispielsweise wird die Bewegung einer berührungsempfindlichen Oberfläche (z. B. eines berührungsempfindlichen Bildschirms oder Trackpads) vom Benutzer wahlweise als ein „Abwärtsklick“ oder ein „Aufwärtsklick“ einer physischen Betätigungsschaltfläche interpretiert. In einigen Fällen spürt ein Benutzer eine taktile Empfindung wie einen „Abwärtsklick“ oder einen „Aufwärtsklick“, selbst wenn keine Bewegung einer physischen Betätigungsschaltfläche mit der berührungsempfindlichen Oberfläche assoziiert ist, die durch die Bewegungen des Benutzers physisch niedergedrückt (z. B. verschoben) wird. Als weiteres Beispiel wird die Bewegung der berührungsempfindlichen Oberfläche vom Benutzer wahlweise als „Rauigkeit“ der berührungsempfindlichen Oberfläche interpretiert oder empfunden, selbst wenn sich die Glätte der berührungsempfindlichen Oberfläche nicht verändert. Wenngleich solche Interpretationen der Berührung seitens eines Benutzers jeweils von den Sinneswahrnehmungen der einzelnen Benutzer abhängen, gibt es viele Sinneswahrnehmungen bei der Berührung, die eine große Mehrheit der Benutzer gemeinsam haben. Wenn eine Tastausgabe als einer bestimmten Sinneswahrnehmung eines Benutzers entsprechend beschrieben wird (z. B. ein „Aufwärtsklick“, ein „Abwärtsklick“, „Rauigkeit“), entspricht, sofern nichts anderes erwähnt wird, die erzeugte Tastausgabe folglich der physischen Verschiebung der Vorrichtung oder einer Komponente davon, die die beschriebene Sinneswahrnehmung für einen typischen (oder durchschnittlichen) Benutzer erzeugt.
  • Es sollte sich verstehen, dass die Vorrichtung 200 nur ein Beispiel einer tragbaren Multifunktionsvorrichtung ist, und dass die Vorrichtung 200 wahlweise mehr oder weniger Komponenten als gezeigt aufweist, wahlweise zwei oder mehr Komponenten kombiniert oder wahlweise eine andere Konfiguration oder Anordnung der Komponenten aufweist. Die verschiedenen, in 2A gezeigten Komponenten sind in Hardware, Software oder einer Kombination aus sowohl Hardware als auch Software implementiert, einschließlich einer oder mehrerer Signalverarbeitungsschaltungen und/oder anwendungsspezifischer integrierter Schaltungen (Application Specific Integrated Circuits).
  • Der Speicher 202 schließt ein oder mehrere computerlesbare Datenspeichermedien ein. Die computerlesbaren Datenspeichermedien sind beispielsweise gegenständlich und nichtflüchtig. Der Speicher 202 schließt Hochgeschwindigkeitsdirektzugriffsspeicher und auch einen nichtflüchtigen Speicher, wie etwa eine oder mehrere Magnetplattenspeicher, Flash-Speicher oder andere nichtflüchtige Festkörperspeicher, ein. Die Speichersteuervorrichtung 222 steuert den Zugriff auf den Speicher 202 durch andere Komponenten der Vorrichtung 200.
  • In einigen Beispielen wird ein nichtflüchtiges, computerlesbares Speichermedium 202 verwendet, um Anweisungen (z. B. zum Durchführen von Aspekten der unten beschriebenen Prozesse) zur Verwendung durch ein oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungseinrichtung oder einer Anweisungsausführungsvorrichtung, z. B. einem computerbasierten System, einem prozessorbasierten System oder einem anderen System, das die Anweisungen aus dem Anweisungsausführungssystem, der Anweisungsausführungseinrichtung oder der Anweisungsausführungsvorrichtung abrufen kann, zu speichern und die Anweisungen auszuführen. In anderen Beispielen werden die Anweisungen (z. B. zum Durchführen von Aspekten der unten beschriebenen Prozesse) auf einem nichtflüchtigen computerlesbaren Speichermedium (nicht gezeigt) des Serversystems 108 gespeichert oder zwischen dem nichtflüchtigen computerlesbaren Speichermedium von Speicher 202 und dem nichtflüchtigen computerlesbaren Speichermedium des Serversystems 108 aufgeteilt.
  • Die Peripherieeinheitenschnittstelle 218 wird dazu verwendet, um Eingabe- und Ausgabeperipherieeinheiten der Vorrichtung an die CPU 220 und den Speicher 202 zu koppeln. Der eine oder die mehreren Prozessoren 220 führen verschiedene, im Speicher 202 gespeicherte Softwareprogramme und/oder Anweisungssätze aus, um verschiedene Funktionen für die Vorrichtung 200 durchzuführen und Daten zu verarbeiten. In einigen Ausführungsformen sind die Peripherieeinheitenschnittstelle 218, die CPU 220 und die Speichersteuerung 222 auf einem einzelnen Chip, wie etwa Chip 204, implementiert. In einigen anderen Ausführungsformen sind sie auf separaten Chips implementiert.
  • Die HF-Schaltung (Hochfrequenz-Schaltung) 208 empfängt und sendet HF-Signale, die auch als elektromagnetische Signale bezeichnet werden. Die HF-Schaltung 208 wandelt elektrische Signale in elektromagnetische Signale bzw. elektromagnetische Signale in elektrische Signale um und kommuniziert mittels der elektromagnetischen Signale mit Kommunikationsnetzwerken und anderen Kommunikationsvorrichtungen. Die HF-Schaltung 208 schließt wahlweise bekannte Schaltungen zum Ausführen dieser Funktionen, einschließlich unter anderem eines Antennensystems, eines HF-Sender-Empfängers, eines oder mehrerer Verstärker, eines Tuners, eines oder mehrerer Oszillatoren, eines digitalen Signalprozessors, eines Codec-Chipsatzes, einer Teilnehmeridentitätsmodulkarte (Subscriber Identity Module card, SIM-Karte), Speicher und so weiter ein. Die HF-Schaltung 208 kommuniziert mittels drahtloser Kommunikation wahlweise mit Netzwerken, wie etwa dem Internet, das auch als World Wide Web (WWW) bezeichnet wird, einem Intranet und/oder einem drahtlosen Netzwerk, wie etwa einem Mobiltelefonnetzwerk, einem drahtlosen lokalen Netzwerk (LAN) und/oder einem innerstädtischen Netzwerk (MAN) und anderen Vorrichtungen. Die HF-Schaltung 208 schließt wahlweise eine allgemein bekannte Schaltung zum Erfassen von Nahfeldkommunikationsfeldern (Near Field Communication (NFC-Feldern)) ein, wie beispielsweise durch einen Kommunikationsfunk mit kurzer Reichweite. Die drahtlose Kommunikation verwendet wahlweise jegliche von mehreren Kommunikationsstandards, Kommunikationsprotokollen und -technologien, insbesondere von Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), Evolution Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA), Long Term Evolution (LTE), Nahfeldkommunikation (Near Field Communication, NFC), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi) (z. B. IEEE 802.11a, IEEE 802.11b, IEEE 802.11 g, IEEE 802.1In und/oder IEEE 802.11ac), Voice over Internet Protocol (VoIP), Wi-MAX, einem Protokoll für E-Mails (z. B. Internet Message Access Protocol (IMAP) und/oder Post Office Protocol (POP)), Instant Messaging (z. B. Extensible Messaging and Presence Protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS) und/oder Short Message Service (SMS), oder jegliches andere, geeignete Kommunikationsprotokoll, einschließlich von zum Zeitpunkt der Einreichung dieses Dokuments noch nicht entwickelten Kommunikationsprotokollen.
  • Die Audioschaltung 210, der Lautsprecher 211 und das Mikrofon 213 stellen eine Audioschnittstelle zwischen einem Benutzer und einer Vorrichtung 200 bereit. Die Audioschaltung 210 empfängt Audiodaten von der Peripherieschnittstelle 218, wandelt die Audiodaten in ein elektrisches Signal um und überträgt die elektrischen Signale an den Lautsprecher 211. Der Lautsprecher 211 wandelt das elektrische Signal in vom Menschen hörbare Schallwellen um. Die Audioschaltung 210 empfängt auch elektrische Signale, die vom Mikrofon 213 aus Schallwellen umgewandelte werden. Die Audioschaltung 210 wandelt die elektrischen Signale in Audiodaten um und überträgt die Audiodaten zur Verarbeitung an die Peripherieeinheitenschnittstelle 218. Audiodaten werden von der Peripherieeinheitenschnittstelle 218 aus dem Speicher 202 und/oder der HF-Schaltung 208 abgerufen und/oder dorthin übermittelt. In manchen Ausführungsformen schließt die Audioschaltung 210 auch einen Kopfhöreranschluss ein (z. B. 312, 3). Der Kopfhöreranschluss stellt eine Schnittstelle zwischen der Audioschaltung 210 und nicht fest eingebauten Eingabe/Ausgabe-Peripherieeinheiten bereit, wie etwa Nur-Ausgabe-Kopfhörer oder Kopfhörer sowohl mit Ausgabe (z. B. ein Kopfhörer für ein oder beide Ohren) als auch mit Eingabe (z. B. ein Mikrofon).
  • Das E/A-Teilsystem 206 koppelt Eingabe/Ausgabe-Peripherieeinheiten auf der Vorrichtung 200, wie etwa den Touchscreen 212 und andere Eingabesteuervorrichtungen 216, an die Peripherieeinheitenschnittstelle 218. Das E/A-Teilsystem 206 schließt wahlweise eine Anzeigesteuerung 256, eine Steuerung für optische Sensoren 258, eine Intensitätssensorsteuerung 259, eine Steuerung für haptisches Feedback 261 und eine oder mehrere Eingabesteuerungen 260 für andere Eingabe- oder Steuervorrichtungen ein. Die eine oder die mehreren Eingabesteuerungen 260 empfangen/senden elektrische Signale von/an andere(n) Eingabesteuervorrichtungen 216. Die anderen Eingabesteuervorrichtungen 216 schließen wahlweise physische Schaltflächen (z. B. Drucktasten, Wipptasten usw.), Wählscheiben, Schiebeschalter, Joysticks, Click Wheels und so weiter ein. In manchen alternativen Ausführungsformen sind die eine oder die mehreren Eingabesteuerungen 260 wahlweise mit beliebigen (oder keinem) der Folgenden gekoppelt: einer Tastatur, einem Infrarotanschluss, einem USB-Anschluss und einer Zeigevorrichtung, wie beispielsweise einer Maus. Die eine oder mehreren Schaltflächen oder Tasten (z. B. 308, 3) schließen wahlweise eine Aufwärts-/Abwärtstaste für eine Lautstärkesteuerung des Lautsprechers 211 und/oder des Mikrofons 213 ein. Die eine oder die mehreren Schaltflächen oder Tasten schließen wahlweise eine Drucktaste ein (z. B. 306, 3).
  • Ein schnelles Drücken der Drucktaste hebt eine Sperre des Touchscreens 212 auf oder beginnt einen Prozess, bei dem Gesten auf dem Touchscreen zum Entsperren der Vorrichtung verwendet werden, welcher in der am 23. Dezember 2005 eingereichten US-Patentanmeldung Nr. 11/322,549 , „Unlocking a Device by Performing Gestures on an Unlock Image“, US-Pat. Nr. 7,657,849 beschrieben ist, die hier durch Bezugnahme in ihrer Gesamtheit aufgenommen wird. Ein längeres Drücken der Drucktaste (z. B. 306) schaltet den Strom für die Vorrichtung 200 ein- oder aus. Der Benutzer ist in der Lage, eine Funktionalität einer oder mehrerer der Schaltflächen individuell anzupassen. Der Touchscreen 212 wird verwendet, um virtuelle Tasten oder Softtasten oder Softschaltflächen und ein oder mehrere Softtastaturen zu implementieren.
  • Der berührungsempfindliche Bildschirm 212 stellt eine Eingabeschnittstelle und eine Ausgabeschnittstelle zwischen der Vorrichtung und einem Benutzer bereit. Die Anzeigesteuerung 256 empfängt und/oder sendet elektrische Signale von dem/an den Touchscreen 212. Der Touchscreen 212 zeigt dem Benutzer eine visuelle Ausgabe an. Die visuellen Ausgaben schließen Grafiken, Text, Symbole, Video und eine beliebige Kombination davon (insgesamt als „Grafiken“ bezeichnet) ein. In einigen Ausführungsformen entsprechen einige oder alle der visuellen Ausgaben den Benutzerschnittstellenobjekten.
  • Der Touchscreen 212 besitzt eine berührungsempfindliche Oberfläche, einen Sensor oder einen Satz von Sensoren, der oder die Eingaben vom Benutzer auf Grundlage von haptischem und/oder taktilem Kontakt annimmt bzw. annehmen. Der Touchscreen 212 und die Anzeigesteuerung 256 (zusammen mit beliebigen zugeordneten Modulen und/oder Sätzen von Anweisungen im Speicher 202) erfassen einen Kontakt (und eine Bewegung oder ein Abbrechen des Kontakts) auf dem Touchscreen 212 und wandeln den erfassten Kontakt in eine Interaktion mit Benutzerschnittstellenobjekten um (z. B. eine oder mehrere Softkeys, Symbole, Webseiten oder Bilder), die auf dem Touchscreen 212 angezeigt werden. In einer beispielhaften Ausführungsform entspricht ein Kontaktpunkt zwischen dem Touchscreen 212 und dem Benutzer einem Finger des Benutzers.
  • Der Touchscreen 212 verwendet LCD-Technologie (Flüssigkristallanzeige), LPD-Technologie (Lichtemittierende Polymeranzeige) oder LED-Technologie (Lichtemittierende Diode), wenngleich in anderen Ausführungsformen andere Bildschirmtechnologien verwendet werden können. Der Touchscreen 212 und die Anzeigesteuerung 256 erfassen den Kontakt und jegliche Bewegung oder ein Abbrechen des Kontakts unter Verwendung mehrerer bereits bekannter oder noch zu entwickelnder Berührungssensortechnologien, einschließlich, aber nicht beschränkt auf kapazitive, resistive, infrarot und akustische Oberflächenwellentechnologien sowie andere Näherungssensoranordnungen oder anderer Elemente zum Feststellen eines oder mehrerer Kontaktpunkte auf dem Touchscreen 212. In einer beispielhaften Ausführungsform wird eine Technologie eines gegenseitigen, projiziertkapazitiven Erfassens verwendet, wie beispielsweise die, die im iPhone® und iPod Touch® von Apple Inc. aus Cupertino, Kalifornien, zu finden ist.
  • Eine berührungsempfindliche Anzeige in manchen Ausführungsformen des Touchscreens 212 ist analog zu berührungsempfindlichen Multi-Touchpads, die in den folgenden US-Patenten beschrieben sind: 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.) und/oder 6,677,932 (Westerman) und/oder US-Patentveröffentlichung 2002/0015024A1 , von denen jedes hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird. Der Touchscreen 212 zeigt jedoch visuelle Ausgaben aus der Vorrichtung 200 an, wohingegen berührungsempfindliche Touchpads keine visuellen Ausgaben bereitstellen.
  • Eine berührungsempfindliche Anzeige ist in manchen Ausführungsformen des Touchscreens 212 in den folgenden Anmeldungen beschrieben: (1) US-Patentanmeldung Nr. 11/381,313 , „Multipoint Touch Surface Controller“, eingereicht am 2. Mai 2006; (2) US-Patentanmeldung Nr. 10/840,862 , „Multipoint Touchscreen“, eingereicht am 6. Mai 2004; (3) US-Patentanmeldung Nr. 10/903,964 , „Gestures For Touch Sensitive Input Devices“, eingereicht am 30. Juli 2004; (4) US-Patentanmeldung Nr. 11/048,264 , „Gestures For Touch Sensitive Input Devices“, eingereicht am 31. Januar 2005; (5) US-Patentanmeldung Nr. 11/038,590 , „Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices“, eingereicht am 18. Januar 2005; (6) US-Patentanmeldung Nr. 11/228,758 , „Virtual Input Device Placement On A Touch Screen User Interface“, eingereicht am 16 September 2005; (7) US-Patentanmeldung Nr. 11/228,700 , „Operation Of A Computer With A Touch Screen Interface“, eingereicht am 16. September 2005; (8) US-Patentanmeldung Nr. 11/228,737 , „Activating Virtual Keys Of A Touch-Screen Virtual Keyboard“, eingereicht am 16. September 2005; und (9) US-Patentanmeldung Nr. 11/367,749 , „Multi-Functional Hand-Held Device“, eingereicht am 3. März 2006. Alle dieser Anmeldungen werden durch Bezugnahme hierin in ihrer Gesamtheit aufgenommen.
  • Der Touchscreen 212 weist beispielsweise eine Videoauflösung von mehr als 100 dpi auf. In manchen Ausführungsformen weist der Touchscreen eine Videoauflösung von ungefähr 160 dpi auf. Der Benutzer kann Kontakt mit dem Touchscreen 212 herstellen, indem er ein beliebiges geeignetes Objekt oder beliebige geeignete Gliedmaßen, wie etwa einen Eingabestift, einen Finger und dergleichen, verwendet. In manchen Ausführungsformen ist die Benutzerschnittstelle dazu ausgelegt, hauptsächlich mit auf Fingern basierenden Kontakten und Handbewegungen zu arbeiten, die aufgrund der größeren Kontaktfläche eines Fingers auf dem Touchscreen weniger akkurat als eine Eingabe mit dem Eingabestift sein können. In einigen Ausführungsformen übersetzt die Vorrichtung die grobe auf Fingern basierende Eingabe in eine präzise Position des Mauszeigers/Cursors oder in einen Befehl zum Ausführen der vom Benutzer gewünschten Aktionen.
  • In einigen Ausführungsformen schließt die Vorrichtung 200 zusätzlich zum Touchscreen ein (nicht gezeigtes) Touchpad zum Aktivieren oder Deaktivieren bestimmter Funktionen ein. In manchen Ausführungsformen ist das Touchpad ein berührungsempfindlicher Bereich der Vorrichtung, der im Gegensatz zum Touchscreen keine visuellen Ausgaben anzeigt. Das Touchpad ist eine berührungsempfindliche Oberfläche, die vom Touchscreen 212 separat ist, oder eine Verlängerung der vom Touchscreen gebildeten, berührungsempfindlichen Oberfläche.
  • Die Vorrichtung 200 schließt auch das Stromversorgungssystem 262 ein, um die verschiedenen Komponenten mit Strom zu versorgen. Das Stromversorgungssystem 262 schließt ein Stromverwaltungssystem, eine oder mehrere Stromquellen (z. B. Batterie, Wechselstrom (AC)), ein Aufladesystem, eine Stromausfallerfassungsschaltung, einen Stromrichter oder Wechselrichter, eine Energiestatusanzeige (z. B. eine Leuchtdiode (LED)) und beliebige andere Komponenten, die mit der Stromerzeugung, Stromverwaltung und Stromverteilung in tragbaren Vorrichtungen im Zusammenhang stehen, ein.
  • Die Vorrichtung 200 schließt außerdem einen oder mehrere optische Sensoren 264 ein. 2A zeigt einen optischen Sensor, der an die Steuerung für optische Sensoren 258 im E/A-Teilsystem 206 gekoppelt ist. Der optische Sensor 264 schließt Fototransistoren mit ladungsgekoppelten Bauteilen (Charge-Coupled Device, CCD) oder mit komplementären Metalloxid-Halbleitern (Complementary Metal-Oxide Semiconductor, CMOS) ein. Der optische Sensor 264 empfängt Licht aus der Umgebung, das durch eine oder mehrere Linsen projiziert wird und wandelt das Licht in Daten um, die ein Bild darstellen. Zusammen mit dem Bildgebungsmodul 243 (das auch als Kameramodul bezeichnet wird) nimmt der optische Sensor 264 Standbilder oder Videobilder auf. In einigen Ausführungsformen befindet sich ein optischer Sensor auf der Rückseite der Vorrichtung 200 gegenüber dem Touchscreen-Bildschirm 212 auf der Vorderseite der Vorrichtung, sodass der Touchscreen-Bildschirm als Bildsucher für die Standbild- und/oder Videobildaufnahme verwendet wird. In manchen Ausführungsformen befindet sich ein optischer Sensor auf der Vorderseite der Vorrichtung, sodass das Bild des Benutzers für Videokonferenzen erhalten wird, während der Benutzer die anderen Teilnehmer der Videokonferenz auf der Touchscreen-Anzeige sieht. In manchen Ausführungsformen kann die Position des optischen Sensors 264 durch den Benutzer geändert werden (z. B. durch Drehen der Linse und des Sensors im Vorrichtungsgehäuse), sodass ein einziger optischer Sensor 264 zusammen mit der Touchscreen-Anzeige sowohl für Videokonferenzen als auch für eine Stand- und/oder Videobilderfassung verwendet wird.
  • Die Vorrichtung 200 schließt wahlweise auch einen oder mehrere Kontaktintensitätssensoren 265 ein. 2A zeigt einen Kontaktintensitätssensor, der mit der Intensitätssensorsteuerung 259 im E/A-Teilsystem 206 gekoppelt ist. Der Kontaktintensitätssensor 265 schließt wahlweise einen oder mehrere piezoresistive Dehnungsmesser, kapazitive Kraftsensoren, elektrische Kraftsensoren, piezoelektrische Kraftsensoren, optische Kraftsensoren, kapazitive berührungsempfindliche Oberflächen oder andere Intensitätssensoren (z. B. Sensoren, die zum Messen der Kraft (oder des Drucks) eines Kontakts auf einer berührungsempfindlichen Oberfläche verwendet werden) ein. Der Kontaktintensitätssensor 265 empfängt Kontaktintensitätsinformationen (z. B. Druckinformationen oder eine Ersatzgröße für Druckinformationen) aus der Umgebung. In einigen Ausführungsformen ist mindestens ein Kontaktintensitätssensor zusammen mit oder neben einer berührungsempfindlichen Oberfläche (z. B. dem berührungsempfindlichen Bildschirmsystem 212) angeordnet. In manchen Ausführungsformen befindet sich mindestens ein Kontaktintensitätssensor auf der Rückseite der Vorrichtung 200 gegenüber der Touchscreen-Anzeige 212, die sich auf der Vorderseite der Vorrichtung 200 befindet.
  • Die Vorrichtung 200 schließt auch einen oder mehrere Näherungssensoren 266 ein. 2A zeigt einen Näherungssensor 266, der an die Peripherieeinheitenschnittstelle 218 gekoppelt ist. Alternativ dazu ist der Näherungssensor 266 an die Eingabesteuerung 260 im E/A-Teilsystem 206 gekoppelt. Der Näherungssensor 266 wird gemäß der Beschreibung in den US-Patentanmeldungen Nr. 11/241,839 „Proximity Detector In Handheld Device“; 11/240,788, „Proximity Detector In Handheld Device“; 11/620,702, „Using Ambient Light Sensor To Augment Proximity Sensor Output“; 11/586,862, „Automated Response To And Sensing Of User Activity In Portable Devices“; und 11/638,251, „Methods And Systems For Automatic Configuration Of Peripherals“ ausgeführt, die hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen werden. In manchen Ausführungsformen schaltet der Näherungssensor den Touchscreen 212 aus und deaktiviert ihn, wenn die Multifunktionsvorrichtung in der Nähe des Ohrs des Benutzers platziert wird (z. B. wenn der Benutzer ein Telefongespräch führt).
  • Die Vorrichtung 200 schließt wahlweise auch einen oder mehrere Tastausgabeerzeuger 267 ein. 2A zeigt einen Tastausgabeerzeuger, der mit der Steuervorrichtung für haptische Rückmeldung 261 im E/A-Teilsystem 206 gekoppelt ist. Der Tastausgabeerzeuger 267 schließt wahlweise eine oder mehrere elektroakustische Vorrichtungen, wie etwa Lautsprecher oder andere Audiokomponenten und/oder elektromechanische Vorrichtungen ein, die Energie in lineare Bewegung umwandeln, wie etwa einen Motor, einen Elektromagneten, ein elektroaktives Polymer, einen piezoelektrischen Aktor, einen elektrostatischen Aktor oder eine andere Tastausgabe erzeugende Komponente (z. B. eine Komponente, die elektrische Signale auf der Vorrichtung in Tastausgaben umwandelt). Der Kontaktintensitätssensor 265 empfängt vom haptischen Feedbackmodul 233 Anweisungen zum Erzeugen von Tastfeedback und erzeugt Tastausgaben auf der Vorrichtung 200, die von einem Benutzer der Vorrichtung 200 wahrgenommen werden können. In einigen Ausführungsformen ist mindestens ein Tastausgabeerzeuger zusammen mit oder neben einer berührungsempfindlichen Oberfläche (z. B. dem berührungsempfindlichen Bildschirmsystem 212) angeordnet und erzeugt wahlweise eine Tastausgabe, indem die berührungsempfindliche Oberfläche senkrecht (z. B. in eine Oberfläche der Vorrichtung 200 hinein oder aus ihr heraus) oder seitwärts (z. B. vorwärts und rückwärts in der gleichen Ebene wie eine Oberfläche der Vorrichtung 200) bewegt wird. In manchen Ausführungsformen befindet sich mindestens ein Tastausgabeerzeuger auf der Rückseite der Vorrichtung 200 gegenüber der Touchscreen-Anzeige 212, die sich auf der Vorderseite der Vorrichtung 200 befindet.
  • Die Vorrichtung 200 schließt auch einen oder mehrere Beschleunigungsmesser 268 ein. 2A zeigt einen Beschleunigungsmesser 268, der an die Peripherieeinheitenschnittstelle 218 gekoppelt ist. Alternativ dazu ist der Beschleunigungsmesser 268 an eine Eingabesteuerung 260 im E/A-Teilsystem 206 gekoppelt. Der Beschleunigungsmesser 268 arbeitet beispielsweise wie beschrieben in US-Patentveröffentlichung Nr. 20050190059, „Acceleration-based Theft Detection System for Portable Electronic Devices“ und US-Patentveröffentlichung Nr. 20060017692, „Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer“, welche beide durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen werden. In einigen Ausführungsformen werden Informationen auf der Touchscreen-Anzeige im Hochformat oder im Querformat angezeigt, basierend auf einer Analyse von Daten, die von dem einen oder den mehreren Beschleunigungsmessern empfangen wurden. Die Vorrichtung 200 schließt zusätzlich zu dem/den Beschleunigungsmessern) 268 wahlweise ein (nicht gezeigtes) Magnetometer und einen (nicht gezeigten) GPS-Empfänger (oder einen Globalen Navigationssatellitensystemempfänger oder einen Empfänger für ein anderes globales Navigationssystem) zum Erhalt von Informationen bezüglich der Position und der Ausrichtung (z. B. Hochformat oder Querformat) der Vorrichtung 200 ein.
  • In einigen Ausführungsformen umfassen die im Speicher 202 gespeicherten Softwarekomponenten das Betriebssystem 226, das Kommunikationsmodul (oder einen Anweisungssatz) 228, das Kontakt-/Bewegungsmodul (oder einen Anweisungssatz) 230, das Grafikmodul (oder einen Anweisungssatz) 232, das Texteingabemodul (oder einen Anweisungssatz) 234, das GPS-Modul (Globales Positionierungssystem-Modul) (oder einen Anweisungssatz) 235, ein Client-Modul für den digitalen Assistenten 229 und Anwendungen (oder einen Anweisungssatz) 236. Ferner speichert der Speicher 202 Daten und Modelle, wie Benutzerdaten und Modelle 231. Des Weiteren ist in manchen Ausführungsformen im Speicher 202 (2A) oder 470 (4) ein vorrichtungsbezogener/globaler interner Zustand 257 gespeichert, wie in 2A und 4 gezeigt. Der vorrichtungsbezogene/globale interne Zustand 257 beinhaltet einen oder mehrere von: dem aktiven Anwendungszustand, der anzeigt, ob und welche Anwendungen gegenwärtig aktiv sind; dem Anzeigezustand, der angibt, welche Anwendungen, Ansichten oder andere Informationen verschiedene Bereiche der Touchscreen-Anzeige 212 belegen; dem Sensorzustand, einschließlich Informationen, die von den verschiedenen Sensoren und Eingabesteuervorrichtungen 216 erhalten werden; und Positionsinformationen, die den Ort und/oder die Lage der Vorrichtung betreffen.
  • Das Betriebssystem 226 (z. B. Darwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWS oder ein eingebettetes Betriebssystem, wie beispielsweise VxWorks) schließt verschiedene Software-Komponenten und/oder Treiber zum Steuern und Verwalten von allgemeinen Systemaufgaben (z. B. Speicherverwaltung, Datenspeichervorrichtungssteuerung, Energieverwaltung usw.) ein und ermöglicht eine Kommunikation zwischen verschiedenen Hardware- und Software-Komponenten.
  • Das Kommunikationsmodul 228 ermöglicht die Kommunikation mit anderen Vorrichtungen über einen oder mehrere externe Anschlüsse 224 und schließt auch verschiedene Software-Komponenten zur Verarbeitung von Daten ein, die von der HF-Schaltung 208 und/oder vom externen Anschluss 224 empfangen wurden. Der externe Anschluss 224 (z. B. Universal Serial Bus (USB), FIREWIRE usw.) ist dafür ausgelegt, direkt an andere Vorrichtungen oder indirekt über ein Netzwerk (z. B. das Internet, WLAN usw.) gekoppelt zu werden. In manchen Ausführungsformen handelt es sich bei dem externen Anschluss um einen Mehrfachpinsteckverbinder (z. B. 30 Pins), welcher derselbe wie der oder ähnlich dem oder kompatibel mit dem 30-Pin-Steckverbinder ist, der auf iPod®-Vorrichtungen (iPod® ist eine Marke von Apple Inc.) verwendet wird.
  • Das Kontakt-/Bewegungsmodul 230 erfasst wahlweise einen Kontakt mit dem Touchscreen 212 (in Verbindung mit der Anzeigesteuerung 256) und anderen berührungsempfindlichen Vorrichtungen (z. B. einem Touchpad oder einem physischen Click Wheel). Das Kontakt-/Bewegungsmodul 230 schließt verschiedene Software-Komponenten zum Ausführen verschiedener Vorgänge ein, die mit dem Erfassen von Kontakt in Zusammenhang stehen, wie etwa Feststellen, ob es einen Kontakt gab (z. B. Erfassen eines stattfindenden Aufsetzens bzw. Andrückens eines Fingers), Feststellen einer Intensität des Kontakts (z. B. der Kraft oder des Drucks des Kontakts oder eines Ersatzes für die Kraft oder den Druck des Kontakts), Feststellen, ob eine Bewegung des Kontakts vorliegt, und Nachverfolgen der Bewegung über die berührungsempfindliche Oberfläche hinweg (z. B. Erfassen eines stattfindenden Ziehens des Fingers), und Feststellen, ob der Kontakt aufgehört hat (z. B. Erfassen eines stattfindenden Anhebens eines Fingers oder einer Unterbrechung des Kontakts). Das Kontakt-/Bewegungsmodul 230 empfängt Kontaktdaten von der berührungsempfindlichen Oberfläche. Das Feststellen von Bewegung des Kontaktpunkts, die von einer Reihe von Kontaktdaten dargestellt wird, schließt wahlweise das Feststellen von Schnelligkeit (Größenordnung), Geschwindigkeit (Größenordnung und Richtung) und/oder einer Beschleunigung (einer Veränderung der Größenordnung und/oder der Richtung) des Kontaktpunkts ein. Diese Vorgänge werden wahlweise auf einzelne Kontakte (z. B. Ein-Finger-Kontakte) oder auf mehrere gleichzeitige Kontakte (z. B. „Mehrfachberührung“/Mehr-Finger-Kontakte) angewandt. In manchen Ausführungsformen erfassen das Kontakt-/Bewegungsmodul 230 und die Anzeigesteuerung 256 Kontakt auf einem Touchpad.
  • In einigen Ausführungsformen verwendet das Kontakt-/Bewegungsmodul 230 einen Satz von einem oder mehreren Intensitätsschwellenwerten, um festzustellen, ob ein Vorgang von einem Benutzer ausgeführt wurde (z. B. um festzustellen, ob ein Benutzer auf ein Symbol „geklickt“ hat). In manchen Ausführungsformen wird mindestens ein Teilsatz der Intensitätsschwellenwerte gemäß Software-Parametern festgelegt (z. B. werden die Intensitätsschwellenwerte nicht durch die Aktivierungsschwellenwerte bestimmter physischer Aktoren festgelegt und können angepasst werden, ohne die physische Hardware der Vorrichtung 200 zu verändern). Zum Beispiel kann ein Maus-„Klick“-Schwellenwert einer Trackpad- oder Touchscreen-Anzeige auf jeden beliebigen eines breiten Bereichs vordefinierter Schwellenwerte eingestellt werden, ohne die Trackpad- oder Touchscreen-Anzeige-Hardware zu verändern. Zusätzlich werden in manchen Implementierungen einem Benutzer der Vorrichtung Software-Einstellungen zum Anpassen eines oder mehrerer des Satzes von Intensitätsschwellenwerten bereitgestellt (z. B. durch Anpassen einzelner Intensitätsschwellenwerte und/oder durch Anpassen einer Vielzahl von Intensitätsschwellenwerten auf einmal mit einem Klick-„Intensitäts“-Parameter auf Systemebene).
  • Das Kontakt-/Bewegungsmodul 230 erfasst wahlweise eine Eingabe durch eine Geste eines Benutzers. Unterschiedliche Gesten auf der berührungsempfindlichen Oberfläche haben unterschiedliche Kontaktmuster (z. B. unterschiedliche Bewegungen, Zeiten und/oder Intensitäten erfasster Kontakte). Folglich wird eine Geste wahlweise durch Erfassen eines bestimmten Kontaktmusters erfasst. Zum Beispiel schließt ein Erfassen einer Fingertippgeste ein Erfassen eines Finger-nach-unten-Ereignisses, gefolgt von einem Erfassen eines Finger-nach-oben- bzw. Abhebe-Ereignisses an derselben Position (oder im Wesentlichen derselben Position) wie das Finger-nach-unten-Ereignis (z. B. an der Position eines Symbols) ein. Als ein weiteres Beispiel schließt ein Erfassen einer Fingerwischgeste auf der berührungsempfindlichen Oberfläche ein Erfassen eines Finger-nach-unten-Ereignisses, gefolgt von einem oder mehreren Fingerziehereignissen und nachfolgend gefolgt von einem Erfassen eines Finger-nach-oben-Ereignisses (bzw. Abhebe-Ereignisses) ein.
  • Das Grafikmodul 232 schließt verschiedene bekannte Software-Komponenten zum Rendern und Anzeigen von Grafik auf dem Touchscreen 212 oder einer anderen Anzeige ein, einschließlich Komponenten zum Ändern der visuellen Auswirkung (z. B. Helligkeit, Transparenz, Sättigung, Kontrast oder einer anderen visuellen Eigenschaft) von Grafik, die angezeigt wird. Wie hierin verwendet, schließt der Begriff „Grafik“ jedes Objekt ein, das einem Benutzer angezeigt werden kann, einschließlich, jedoch ohne Einschränkung, von Text, Webseiten, Symbolen (wie beispielsweise Benutzerschnittstellenobjekte, einschließlich Softkeys), Digitalbildern, Videos, Animationen und dergleichen.
  • In manchen Ausführungsformen speichert das Grafikmodul 232 Daten, die zu verwendende Grafiken darstellen. Jeder Grafik wird wahlweise ein entsprechender Code zugewiesen. Das Grafikmodul 232 empfängt von Anwendungen usw. einen oder mehrere Codes, die Grafiken spezifizieren, die, falls erforderlich, zusammen mit Koordinatendaten und anderen Daten zu grafischen Eigenschaften angezeigt werden sollen, und erzeugt dann Bildschirmbilddaten zur Ausgabe an die Anzeigesteuerung 256.
  • Das haptische Feedbackmodul 233 schließt verschiedene Software-Komponenten zum Erzeugen von Anweisungen ein, die von dem/den Tastausgabeerzeuger(n) 267 verwendet werden, um Tastausgaben an einer oder mehreren Stellen auf der Vorrichtung 200 als Reaktion auf Benutzerinteraktionen mit der Vorrichtung 200 zu erzeugen.
  • Das Texteingabemodul 234, bei dem es sich in einigen Beispielen um eine Komponente des Grafikmoduls 232 handelt, stellt Bildschirmtastaturen zur Eingabe von Text bei verschiedenen Anwendungen (z.B. Kontakte 237, E-Mail 240, Instant Messaging 241, Browser 247 und jeder andere Anwendung bei der Texteingabe erforderlich ist) bereit.
  • Das GPS-Modul 235 bestimmt den Standort der Vorrichtung und stellt diese Informationen für verschiedene Anwendungen zur Verfügung (z. B. für das Telefon 238 zur Verwendung beim ortsabhängigen Wählen; für die Kamera 243 als Bild-/Video-Metadaten; und für Anwendungen, die ortsbezogene Dienste wie Wetter-Widgets, lokale Gelbe-Seiten-Widgets und Karten/Navigation-Widgets) anbieten.
  • Das Client-Modul des digitalen Assistenten 229 schließt verschiedene clientseitige Anweisungen für den digitalen Assistenten ein, um die clientseitigen Funktionalitäten des digitalen Assistenten bereitzustellen. Das Client-Modul des digitalen Assistenten 229 ist beispielsweise in der Lage, Spracheingaben, Texteingaben, Berührungseingaben und/oder Gesteneingaben über verschiedene Benutzerschnittstellen (z. B. Mikrofon 213, Beschleunigungsmesser 268, berührungsempfindliches Anzeigesystem 212, optische Sensoren 229, andere Eingabesteuervorrichtungen 216 usw.) der tragbaren Multifunktionsvorrichtung 200 zu akzeptieren. Das Client-Modul des digitalen Assistenten 229 ist auch in der Lage eine Ausgabe als Audio (z. B. Sprachausgabe), visuell und/oder in taktilen Formen über verschiedene Ausgabe-Schnittstellen der tragbaren Multifunktionsvorrichtung 200 (z. B. Lautsprecher 211, berührungsempfindliches Anzeigesystem 212, Tastausgabeerzeuger 267 usw.) bereitzustellen. Zum Beispiel wird die Ausgabe als Stimme, Ton, Warnungen, Textnachrichten, Menüs, Grafiken, Videos, Animationen, Vibrationen und/oder Kombinationen von zwei oder mehr der vorstehenden Elemente bereitgestellt. Während des Betriebs kommuniziert das Client-Modul des digitalen Assistenten 229 mit dem DA-Server 106 über die HF-Schaltung 208.
  • Benutzerdaten und Modelle 231 schließen verschiedene, mit dem Benutzer verknüpfte Daten ein (z. B. benutzerspezifische Vokabulardaten, Benutzerpräferenzdaten, benutzerspezifische Namensaussprachen, Daten aus dem elektronischen Adressbuch des Benutzers, Aufgabenlisten, Einkaufslisten usw.), um die clientseitigen Funktionalitäten des digitalen Assistenten bereitzustellen. Ferner schließen Benutzerdaten und Modelle 231 verschiedene Modelle (z. B. Spracherkennungsmodelle, statistische Sprachmodelle, natürliche Sprachverarbeitungsmodelle, Ontologie, Task-Flow-Modelle, Service-Modelle usw.) zur Verarbeitung von Benutzereingaben und zur Feststellung der Benutzerintention ein.
  • In einigen Beispielen nutzt das Client-Modul des digitalen Assistenten 229 die verschiedenen Sensoren, Teilsysteme und Peripherievorrichtungen der tragbaren Multifunktionsvorrichtung 200, um zusätzliche Informationen aus der Umgebung der tragbaren Multifunktionsvorrichtung 200 zusammenzutragen und einen Kontext im Zusammenhang mit einem Benutzer, einer aktuellen Benutzerinteraktion und/oder der aktuellen Benutzereingabe zu erstellen. In einigen Beispielen stellt das Client-Modul des digitalen Assistenten 229 die Kontextinformationen oder eine Teilmenge davon mit der Benutzereingabe an den DA-Server 106 des digitalen Assistenten bereit, um die Ableitung der Absicht des Benutzers zu unterstützen. In einigen Beispielen verwendet der digitale Assistent auch die Kontextinformationen, um zu bestimmen, wie Ausgaben an den Benutzer erstellt und übertragen werden. Kontextinformationen werden auch als Kontextdaten bezeichnet.
  • Bei einigen Beispielen schließen die Kontextinformationen, die möglicherweise mit der Benutzereingabe bereitgestellt werden, Sensorinformationen ein, z. B. in Bezug auf Beleuchtung, Umgebungsgeräusche, Umgebungstemperatur oder Bilder oder Videos der Umgebung. Bei einigen Beispielen können die Kontextinformationen außerdem den physischen Zustand der Vorrichtung beinhalten, z. B. Vorrichtungsausrichtung, Vorrichtungsstandort, Vorrichtungstemperatur, Leistungspegel, Geschwindigkeit, Beschleunigung, Bewegungsmuster oder Mobiltelefonsignalstärke usw. Bei einigen Beispielen werden auch Informationen in Bezug auf den Softwarestatus des DA-Servers 106, z. B. in Bezug auf ausgeführte Prozesse, installierte Programme, frühere und aktuelle Netzwerkaktivitäten, Hintergrunddienste, Fehlerprotokolle oder die Ressourcenauslastung der tragbaren Multifunktionsvorrichtung 200 als mit einer Benutzereingabe verknüpfte Kontextinformationen für den DA-Server 106 bereitgestellt.
  • In einigen Beispielen stellt das Client-Modul des digitalen Assistenten 229 selektiv Informationen (z. B. Benutzerdaten 231) bereit, die auf der tragbaren Multifunktionsvorrichtung 200 infolge von Anfragen vom DA-Server 106 gespeichert werden. In einigen Beispielen ruft das Client-Modul des digitalen Assistenten 229 auch zusätzliche Eingaben von einem Benutzer über einen Dialog in natürlicher Sprache oder andere Benutzerschnittstellen bei Anfrage durch den DA-Server 106 ab. Das Client-Modul des digitalen Assistenten 229 leitet die zusätzliche Eingabe an den DA-Server 106 weiter, um den DA-Server 106 bei der Ableitung der Absicht und/oder Erfüllung der in der Benutzeranfrage ausgedrückten Absicht des Benutzers zu unterstützen.
  • Eine detailliertere Beschreibung des digitalen Assistenten ist nachfolgend mit Bezugnahme auf 7A-C beschrieben. Es sollte sich verstehen, dass das Client-Modul des digitalen Assistenten 229 jede beliebige Anzahl von Untermodulen des nachfolgend beschriebenen Moduls des digitalen Assistenten 726 beinhalten kann.
  • Die Anwendungen 236 schließen die folgenden Module (oder Anweisungssätze) oder eine Teilmenge oder eine Übermenge davon ein:
    • • Kontaktemodul 237 (manchmal als Adressbuch oder Kontaktliste bezeichnet);
    • • Telefonmodul 238;
    • • Videokonferenzmodul 239;
    • • E-Mail-Client-Modul 240;
    • • Instant Messaging- bzw. IM-Modul 241;
    • • Trainingsunterstützungsmodul 242;
    • • Kameramodul 243 für Standbilder und/oder Videobilder;
    • • Bildverwaltungsmodul 244;
    • • Videowiedergabemodul;
    • • Musikwiedergabemodul;
    • • Browser-Modul 247;
    • • Kalendermodul 248;
    • • Widget-Module 249, die in einigen Beispielen eines oder mehrere der Folgenden einschließen: Wetter-Widget 249-1, Aktien-Widget 249-2, Taschenrechner-Widget 249-3, Wecker-Widget 249-4, Wörterbuch-Widget 249-5 und andere vom Benutzer erworbene sowie vom Benutzer erstellte Widgets 249-6;
    • • Widget-Erstellungsmodul 250 zum Erzeugen der vom Benutzer erstellten Widgets 249-6;
    • • Suchmodul 251;
    • • Video- und Musikwiedergabemodul 252, welches das Videowiedergabemodul und das Musikwiedergabemodul vereint;
    • • Notizenmodul 253;
    • • Kartenmodul 254; und/oder
    • • Online-Video-Modul 255.
  • Beispiele für andere Anwendungen 236, die im Speicher 202 gespeichert sind, schließen andere Textverarbeitungsanwendungen, andere Bildbearbeitungsanwendungen, Zeichnungsanwendungen, Präsentationsanwendungen, JAVA-fähige Anwendungen, Verschlüsselung, digitale Rechteverwaltung, Spracherkennung und Stimmreplikation ein.
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 wird das Kontaktmodul 237 zum Verwalten eines Adressbuchs oder einer Kontaktliste verwendet (z. B. gespeichert im anwendungsinternen Zustand 292 des Kontaktmoduls 237 im Speicher 202 oder im Speicher 470), einschließlich: Hinzufügen von Namen zu dem Adressbuch; Löschen von Namen aus dem Adressbuch; Zuordnen von Telefonnummern, E-Mail-Adressen, physischen Adressen oder anderen Informationen zu einem Namen; Zuordnen eines Bildes zu einem Namen; Klassifizieren und Sortieren von Namen; Bereitstellen von Telefonnummern oder E-Mail-Adressen, um die Kommunikation über Telefon 238, Videokonferenzmodul 239, E-Mail 240 oder IM 241 zu initiieren und/oder zu ermöglichen; und so weiter.
  • In Verbindung mit der HF-Schaltung 208, der Audioschaltung 210, dem Lautsprecher 211, dem Mikrofon 213, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 wird das Telefonmodul 238 verwendet, um eine Folge von Zeichen einzugeben, die einer Telefonnummer entsprechen, auf eine oder mehrere Telefonnummern im Kontakte-Modul 237 zuzugreifen, eine Telefonnummer zu modifizieren, die eingegeben wurde, eine entsprechende Telefonnummer zu wählen, ein Gespräch zu führen und eine Verbindung zu trennen oder aufzulegen, wenn das Gespräch beendet ist. Wie oben erwähnt, verwendet die drahtlose Kommunikation beliebige von einer Vielzahl von Kommunikationsstandards, -protokollen und -technologien.
  • In Verbindung mit der HF-Schaltung 208 der Audioschaltung 210, dem Lautsprecher 211, dem Mikrofon 213, dem Touchscreen 212, der Anzeigesteuerung 256, dem optischen Sensor 264, der Steuerung für optische Sensoren 258, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234, dem Kontaktemodul 237 und dem Telefonmodul 238 schließt das Videokonferenzmodul 239 ausführbare Anweisungen ein, um eine Videokonferenz zwischen einem Benutzer und einem oder mehreren anderen Teilnehmern gemäß Benutzeranweisungen zu starten, zu führen und zu beenden.
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 schließt das E-Mail-Client-Modul 240 ausführbare Anweisungen ein, um als Reaktion auf Benutzeranweisungen E-Mails zu erstellen, zu senden, zu empfangen und zu verwalten. In Verbindung mit dem Bildverwaltungsmodul 244 macht es das E-Mail-Client-Modul 240 sehr leicht, E-Mails mit Standbildern oder Videobildern, die mit dem Kameramodul 243 aufgenommen wurden, zu erstellen und zu versenden.
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 schließt das Instant Messaging-Modul 241 ausführbare Anweisungen zum Eingeben einer Zeichenfolge, die einer Sofortnachricht (instant message) entsprechen, zum Ändern zuvor eingegebener Zeichen, zum Übertragen einer entsprechenden Sofortnachricht (z. B. unter Verwendung eines Kurznachrichtendienst (Short Message Service -SMS)- oder eines Multimedianachrichtendienst (Multimedia Message Service - MMS)-Protokolls für telefoniebasierte Sofortnachrichten oder unter Verwendung von XMPP, SIMPLE oder IMPS für internetbasierte Sofortnachrichten), zum Empfangen von Sofortnachrichten und zum Ansehen von empfangenen Sofortnachrichten ein. In einigen Ausführungsformen schließen übermittelte und/oder empfangene Sofortnachrichten wahlweise Grafiken, Fotos, Audiodateien, Videodateien und/oder andere Anhänge ein, die von einem MMS und/oder einem Erweiterten Nachrichtendienst (Enhanced Messaging Service - EMS) unterstützt werden. Wie hier verwendet, bezieht sich „Instant Messaging“ sowohl auf telefoniebasierte Nachrichten (z. B. per SMS oder MMS gesendete Nachrichten) als auch auf internetbasierte Nachrichten (z. B. per XMPP, SIMPLE oder IMPS gesendete Nachrichten).
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234, dem GPS-Modul 235, dem Kartenmodul 254 und dem Musikwiedergabemodul schließt das Trainingsunterstützungsmodul 242 ausführbare Anweisungen zum Erstellen von Trainingseinheiten (z. B. mit Zeit-, Entfernungs- und/oder Kalorienverbrennungszielen); zur Kommunikation mit Trainingssensoren (Sportgeräten); zum Empfangen von Trainingssensordaten; zum Kalibrieren von Sensoren, die verwendet werden, um eine Trainingseinheit zu überwachen; zum Auswählen und Abspielen von Musik für eine Trainingseinheit; und zum Anzeigen, Speichern und Senden von Trainingseinheitsdaten ein.
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem/den optischen Sensor(en) 264, der Steuerung für optische Sensoren 258, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Bildverwaltungsmodul 244 schließt das Kameramodul 243 ausführbare Anweisungen zum Erfassen von Standbildern oder Videos (einschließlich eines Video-Streams) und zum Speichern derselben im Speicher 202, zum Ändern der Eigenschaften eines Standbildes oder Videos oder zum Löschen eines Standbildes oder Videos aus dem Speicher 202 ein.
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234 und dem Kameramodul 243 schließt das Bildverwaltungsmodul 244 ausführbare Anweisungen zum Anordnen, Verändern (z. B. Bearbeiten) oder zum anderweitigen Verarbeiten, Kennzeichnen, Löschen, Präsentieren (z. B. in einer digitalen Diashow oder einem digitalen Album) und Speichern von Stand- und/oder Videobildern ein.
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 schließt das Browser-Modul 247 ausführbare Anweisungen ein, um im Internet gemäß Benutzeranweisungen zu surfen, einschließlich dem Suchen von, Verknüpfen mit, Empfangen und Anzeigen von Webseiten oder Teilen davon sowie Anhängen und anderen Dateien, die mit Webseiten verknüpft sind.
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234, dem E-Mail-Client-Modul 240 und dem Browser-Modul 247 schließt das Kalendermodul 248 ausführbare Anweisungen ein, um Kalender und mit Kalendern verknüpfte Daten (z. B. Kalendereinträge, Aufgabenlisten usw.) gemäß Benutzeranweisungen zu erzeugen, anzuzeigen, zu modifizieren und zu speichern.
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234 und dem Browser-Modul 247 handelt es sich bei den Widget-Modulen 249 um Minianwendungen, die durch einen Benutzer heruntergeladen und verwendet werden können (z. B. das Wetter-Widget 249-1, das Aktien-Widget 249-2, das Taschenrechner-Widget 249-3, das Wecker-Widget 249-4 und das Wörterbuch-Widget 249-5) oder durch einen Benutzer erstellt werden können (z. B. das vom Benutzer erstellte Widget 249-6). In einigen Ausführungsformen schließt ein Widget eine HTML-Datei (Hypertext Markup Language-Datei), eine CSS-Datei (Cascading Style Sheets-Datei) und eine JavaScript-Datei ein. In einigen Ausführungsformen schließt ein Widget eine XML-Datei (Extensible Markup Language-Datei) und eine JavaScript-Datei (z. B. Yahoo!- Widgets) ein.
  • In Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234 und dem Browser-Modul 247 wird das Widget-Erstellungsmodul 250 durch einen Benutzer verwendet, um Widgets zu erzeugen (z. B. einen benutzerspezifizierten Abschnitt einer Webseite zu einem Widget zu machen).
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 schließt das Suchmodul 251 ausführbare Anweisungen ein, um gemäß Benutzeranweisungen nach Text-, Musik-, Ton-, Bild-, Video- und/oder anderen Dateien im Speicher 202 zu suchen, die einem oder mehreren Suchkriterien entsprechen (z. B. einem oder mehreren benutzerspezifizierten Suchbegriffen).
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, der Audioschaltung 210, dem Lautsprecher 211, der HF-Schaltung 208 und dem Browser-Modul 247 schließt das Video- und Musikwiedergabemodul 252 ausführbare Anweisungen ein, die es dem Benutzer ermöglichen, aufgezeichnete Musik- und andere Tondateien herunterzuladen und wiederzugeben, die in einem oder mehreren Dateiformaten gespeichert sind, wie beispielsweise MP3- oder AAC-Dateien, sowie ausführbare Anweisungen, um Videos (z. B. auf dem Touchscreen 212 oder einer externen verbundenen Anzeige über den externen Anschluss 224) anzuzeigen, zu präsentieren oder anderweitig wiederzugeben. In einigen Ausführungsformen schließt die Vorrichtung 200 wahlweise die Funktionalität eines MP3-Players, wie etwa einem iPod (Markenzeichen von Apple Inc.), ein.
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232 und dem Texteingabemodul 234 schließt das Notizenmodul 253 ausführbare Anweisungen ein, um gemäß Benutzeranweisungen Notizen, Aufgabenlisten und dergleichen zu erstellen und zu verwalten.
  • Das Kartenmodul 254 wird in Verbindung mit der HF-Schaltung 208, dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, dem Texteingabemodul 234, dem GPS-Modul 235 und dem Browser-Modul 247 verwendet, um Karten sowie den Karten zugeordnete Daten (z. B. Fahrtrichtungen, Daten über Geschäfte und andere Sehenswürdigkeiten an oder in der Nähe eines bestimmten Ortes und andere ortsbezogenen Daten) gemäß Benutzeranweisungen zu empfangen, anzuzeigen, zu modifizieren und zu speichern.
  • In Verbindung mit dem Touchscreen 212, der Anzeigesteuerung 256, dem Kontakt-/Bewegungsmodul 230, dem Grafikmodul 232, der Audioschaltung 210, dem Lautsprecher 211, der HF-Schaltung 208, dem Texteingabemodul 234, dem E-Mail-Client-Modul 240 und dem Browser-Modul 247 schließt das Online-Video-Modul 255 Anweisungen ein, die es dem Benutzer erlauben, auf eine E-Mail mit einem Link zu einem bestimmten Online-Video zuzugreifen, sie zu durchsuchen, zu empfangen (z. B. durch Streaming und/oder Download), wiederzugeben (z. B. auf dem Touchscreen oder einer externen verbundenen Anzeige über den externen Anschluss 224), zu senden und Online-Videos in einem oder mehreren Dateiformaten, wie beispielsweise H.264, anderweitig zu verwalten. In einigen Ausführungsformen wird das Instant Messaging-Modul 241 anstelle des E-Mail-Client-Moduls 240 verwendet, um einen Link zu einem bestimmten Online-Video zu senden. Eine zusätzliche Beschreibung der Online-Video-Anwendung sind in der am 20. Juni 2007 eingereichten, vorläufigen US-Patentanmeldung Nr. 60/936,562 , „Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos“ und der am 31. Dezember 2007 eingereichten US-Patentanmeldung Nr. 11/968,067 , „Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos“ zu finden, deren Inhalte hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen werden.
  • Jedes der vorstehend angegebenen Module und jede der vorstehend angegebenen Anwendungen entspricht einem Satz von ausführbaren Anweisungen zum Durchführen einer oder mehrerer vorstehend beschriebener Funktionen und der in dieser Anmeldung beschriebenen Verfahren (z. B. der computerimplementierten Verfahren und anderer hierin beschriebener Informationsverarbeitungsverfahren). Diese Module (z. B. Anweisungssätze) müssen nicht als separate Software-Programme, Prozeduren oder Module implementiert werden, und somit können verschiedene Teilmengen dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig neu angeordnet werden. Zum Beispiel kann das Videowiedergabemodul mit dem Musikwiedergabemodul in einem einzigen Modul kombiniert werden (z. B. dem Video- und Musikwiedergabemodul 252, 2A). In manchen Ausführungsformen speichert der Speicher 202 eine Teilmenge der oben aufgezeigten Module und Datenstrukturen. Des Weiteren speichert der Speicher 202 zusätzliche Module und Datenstrukturen, die vorstehend nicht beschrieben wurden.
  • In manchen Ausführungsformen handelt es sich bei der Vorrichtung 200 um eine Vorrichtung, bei der das Betreiben eines vordefinierten Satzes von Funktionen auf der Vorrichtung ausschließlich durch einen Touchscreen und/oder ein Touchpad ausgeführt wird. Durch Verwenden eines Touchscreens und/oder Touchpads als primäre Eingabesteuervorrichtung für den Betrieb der Vorrichtung 200 wird die Anzahl der physischen Eingabesteuervorrichtungen (wie etwa Drucktasten, Wählscheiben und dergleichen) auf Vorrichtung 200 verringert.
  • Der vordefinierte Satz von Funktionen, die ausschließlich durch einen Touchscreen und/oder ein Touchpad ausgeführt werden, schließt wahlweise das Navigieren zwischen Benutzerschnittstellen ein. In einigen Ausführungsformen navigiert das Touchpad, wenn es vom Benutzer berührt wird, die Vorrichtung 200 von jeglicher Benutzerschnittstelle, die auf Vorrichtung 200 angezeigt wird, zu einem Haupt-, Home- oder Hauptverzeichnismenü. In solchen Ausführungsformen wird eine „Menüschaltfläche“ unter Verwendung eines Touchpads implementiert. In einigen weiteren Ausführungsformen ist die Menüschaltfläche eine physische Drucktaste oder eine andere physische Eingabesteuervorrichtung anstelle eines Touchpads.
  • 2B ist ein Blockdiagramm, das beispielhafte Komponenten zum Ereignisabwickeln gemäß einigen Ausführungsformen veranschaulicht. In einigen Ausführungsformen schließt der Speicher 202 (2A) oder 470 (4) einen Ereignissortierer 270 (z. B. im Betriebssystem 226) und eine entsprechende Anwendung 236-1 (z. B. eine beliebige der vorgenannten Anwendungen 237-251, 255, 480-490) ein.
  • Der Ereignissortierer 270 empfängt Ereignisinformationen und bestimmt die Anwendung 236-1 und die Anwendungsansicht 291 der Anwendung 236-1, an die die Ereignisinformationen gesendet werden sollen. Der Ereignissortierer 270 schließt einen Ereignismonitor 271 und ein Ereignisweitergabemodul 274 ein. In manchen Ausführungsformen schließt die Anwendung 236-1 den internen Anwendungszustand 292 ein, der die aktuelle Anwendungsansicht oder Anwendungsansichten angibt, die auf der berührungsempfindlichen Anzeige 212 angezeigt werden, wenn die Anwendung aktiv ist oder ausgeführt wird. In manchen Ausführungsformen wird der vorrichtungsbezogene/globale interne Zustand 257 durch den Ereignissortierer 270 verwendet, um festzustellen, welche Anwendung oder Anwendungen aktuell aktiv sind, und der interne Anwendungszustand 292 wird durch den Ereignissortierer 270 verwendet, um die Anwendungsansichten 291 festzustellen, denen Ereignisinformationen zu liefern sind.
  • In manchen Ausführungsformen schließt der interne Anwendungsstatus 292 zusätzliche Informationen, wie etwa eine oder mehrere der Folgenden ein:
    • Wiederaufnahmeinformationen zur Verwendung, wenn die Ausführung der Anwendung 236-1 wiederaufgenommen wird, Benutzeroberflächenstatusinformationen, die angeben, dass Informationen bereits angezeigt werden oder bereit sind zur Anzeige durch die Anwendung 236-1, einen Statuspuffer, um es dem Benutzer zu ermöglichen, zu einem vorherigen Status oder einer vorherigen Ansicht der Anwendung 236-1 zurückzukehren, und/oder einen Wiederherstellen/Rückgängigmachen-Puffer für zuvor vom Benutzer ausgeführte Handlungen.
  • Der Ereignismonitor 271 empfängt Ereignisinformationen von der Peripherieeinheitenschnittstelle 218. Ereignisinformationen schließen Informationen bezüglich eines Teilereignisses (z. B. eine Berührung eines Benutzers auf der berührungsempfindlichen Anzeige 212 als Teil einer Multi-Touch-Geste, d. h. einer Handbewegung mit mehreren Berührungen) ein. Die Peripherieeinheitenschnittstelle 218 übermittelt Informationen, die sie vom E/A-Teilsystem 206 oder von einem Sensor, wie einem Näherungssensor 266, Beschleunigungsmesser(n) 268 und/oder Mikrofon 213 (über die Audioschaltung 210), erhält. Informationen, die die Peripherieeinheitenschnittstelle 218 vom E/A-Teilsystem 206 empfängt, schließen Informationen von der berührungsempfindlichen Anzeige 212 oder von einer berührungsempfindlichen Oberfläche ein.
  • In manchen Ausführungsformen sendet der Ereignismonitor 271 in vorgegebenen Intervallen Anfragen an die Peripherieeinheitenschnittstelle 218. Als Reaktion darauf übermittelt die Peripherieeinheitenschnittstelle 218 Ereignisinformationen. In anderen Ausführungsformen übermittelt die Peripherieeinheitenschnittstelle 218 nur Ereignisinformationen, wenn es ein signifikantes Ereignis gibt (z. B. Empfangen einer Eingabe über einem vorbestimmten Lärmschwellenwert und/oder länger als eine vorbestimmte Dauer).
  • In manchen Ausführungsformen schließt der Ereignissortierer 270 auch ein Trefferansichtbestimmungsmodul 272 und/oder ein Bestimmungsmodul 273 einer Einrichtung zum Erfassen aktiver Ereignisse ein.
  • Das Trefferansichtbestimmungsmodul 272 stellt Software-Prozeduren bereit, um festzustellen, wo ein Teilereignis innerhalb einer oder mehrere Ansichten stattgefunden hat, wenn die berührungsempfindliche Anzeige 212 mehr als eine einzige Ansicht anzeigt. Die Ansichten bestehen aus Steuerungen und anderen Elementen, die ein Benutzer auf der Anzeige sehen kann.
  • Ein weiterer Aspekt der mit einer Anwendung assoziierten Benutzeroberfläche ist ein Satz von Ansichten, die hier mitunter als Anwendungsansichten oder Benutzeroberflächenfenster bezeichnet werden, und in denen Informationen angezeigt werden und auf Berührung basierende Gesten stattfinden. Die Anwendungsansichten (einer jeweiligen Anwendung), bei denen eine Berührung erfasst wird, entsprechen programmatischen Ebenen innerhalb einer programmatischen oder Ansichtshierarchie der Anwendung. Beispielsweise wird die niedrigste Ebene der Ansicht, in der eine Berührung erfasst wird, als Trefferansicht bezeichnet, und der Satz von Ereignissen, die als korrekte Eingaben erkannt werden, wird mindestens teilweise basierend auf der Trefferansicht der ursprünglichen Berührung, die eine auf Berührung basierende Geste einleitet, festgestellt.
  • Das Trefferansichtbestimmungsmodul 272 empfängt Informationen bezüglich Teilereignissen einer auf Berührung basierenden Geste. Wenn eine Anwendung verschiedene, in einer Hierarchie geordnete Ansichten aufweist, identifiziert das Trefferansichtbestimmungsmodul 272 eine Trefferansicht als die niedrigste Ansicht in der Hierarchie, die das Teilereignis handhaben sollte. Unter den meisten Umständen handelt es sich bei der Trefferansicht um die Ansicht der untersten Ebene, in der ein initiierenden Teilereignis auftritt (z. B. das erste Teilereignis in der Folge von Teilereignissen, die ein Ereignis oder potenzielles Ereignis bilden). Sobald die Trefferansicht durch das Trefferansichtbestimmungsmodul 272 identifiziert wurde, empfängt die Trefferansicht typischerweise alle Teilereignisse bezüglich derselben Berührungs- oder Eingabequelle, für die sie als die Trefferansicht identifiziert wurde.
  • Das Bestimmungsmodul 273 der Einrichtung zum Bestimmen eines aktiven Ereignisses bestimmt, welche Ansicht oder welche Ansichten innerhalb einer Ansichtshierarchie eine bestimmte Folge von Teilereignissen empfangen sollten. In manchen Ausführungsformen bestimmt das Bestimmungsmodul 273 der Einrichtung zum Bestimmen eines aktiven Ereignisses, dass nur die Trefferansicht eine bestimmte Folge von Teilereignissen empfangen sollte. In anderen Ausführungsformen bestimmt das Bestimmungsmodul 273 der Einrichtung zum Bestimmen eines aktiven Ereignisses, dass alle Ansichten, die die physische Stelle eines Teilereignisses umfassen, aktiv beteiligte Ansichten sind, und bestimmt somit, dass alle aktiv beteiligten Ansichten eine bestimmte Folge von Teilereignissen empfangen sollten. In anderen Ausführungsformen würden selbst dann, wenn Berührungsteilereignisse ausschließlich auf den mit einer bestimmten Ansicht assoziierten Bereich beschränkt wären, in der Hierarchie höher gestellte Ansichten immer noch aktive beteiligte Ansichten verbleiben.
  • Das Ereignisweitergabemodul 274 gibt die Ereignisinformationen an eine Ereigniserkennungseinrichtung (z. B. die Ereigniserkennungseinrichtung 280) weiter. In Ausführungsformen, die das Bestimmungsmodul 273 der Einrichtung zum Bestimmen eines aktiven Ereignisses umfassen, liefert das Ereignisweitergabemodul 274 die Ereignisinformationen an eine Ereigniserkennungseinrichtung, die vom Bestimmungsmodul 273 der Einrichtung zum Bestimmen eines aktiven Ereignisses bestimmt wird. In manchen Ausführungsformen speichert das Ereignisweitergabemodul 274 die Ereignisinformationen in einer Ereigniswarteschlange, die durch einen entsprechenden Ereignisempfänger 282 abgerufen wird.
  • In manchen Ausführungsformen schließt das Betriebssystem 226 den Ereignissortierer 270 ein. Alternativ dazu schließt die Anwendung 236-1 den Ereignissortierer 270 ein. In noch weiteren Ausführungsformen ist der Ereignissortierer 270 ein eigenständiges Modul oder Abschnitt eines anderen im Speicher 202 gespeicherten Moduls, wie etwa eines Kontakt-/Bewegungsmoduls 230.
  • In manchen Ausführungsformen schließt die Anwendung 236-1 eine Vielzahl von Ereignishandhabungseinrichtungen 290 und eine oder mehrere Anwendungsansichten 291 ein, von denen jede Befehle zum Handhaben von Berührungsereignissen einschließt, die innerhalb einer betreffenden Ansicht der Benutzeroberfläche der Anwendung stattfinden. Jede Anwendungsansicht 291 der Anwendung 236-1 schließt eine oder mehrere Ereigniserkennungseinrichtungen 280 ein. In der Regel schließt eine jeweilige Anwendungsansicht 291 eine Vielzahl von Ereigniserkennungseinrichtungen 280 ein. In anderen Ausführungsformen sind eine oder mehrere Ereigniserkennungseinrichtungen 280 Teil eines separaten Moduls, wie etwa eines (nicht gezeigten) Benutzeroberflächenkits oder eines Objekts einer höheren Ebene, von dem die Anwendung 236-1 Verfahren und andere Eigenschaften übernimmt. In manchen Ausführungsformen schließt eine betreffende Ereignishandhabungseinrichtung 290 eine oder mehrere der Folgenden ein: eine Datenaktualisierungseinrichtung 276, eine Objektaktualisierungseinrichtung 277, eine GUI-Aktualisierungseinrichtung 278 und/oder Ereignisdaten 279, die vom Ereignissortierer 270 empfangen werden. Die Ereignishandhabungseinrichtung 290 verwendet oder ruft eine Datenaktualisierungseinrichtung 276, eine Objektaktualisierungseinrichtung 277 oder eine GUI-Aktualisierungseinrichtung 278 auf, um den internen Anwendungszustand 292 zu aktualisieren. Alternativ dazu schließen eine oder mehrere der Anwendungsansichten 291 einen oder mehrere entsprechende Ereignishandhabungseinrichtungen 290 ein. Auch sind in einigen Ausführungsformen die Datenaktualisierungseinrichtung 276 und/oder die Objektaktualisierungseinrichtung 277 und/oder die GUI-Aktualisierungseinrichtung 278 in einer jeweiligen Anwendungsansicht 291 eingeschlossen.
  • Eine entsprechende Ereigniserkennungseinrichtung 280 empfängt Ereignisinformationen (z. B. die Ereignisdaten 279) vom Ereignissortierer 270 und identifiziert ein Ereignis aus den Ereignisinformationen. Die Ereigniserkennungseinrichtung 280 schließt einen Ereignisempfänger 282 und einen Ereignisvergleicher 284 ein. In manchen Ausführungsformen schließt die Ereigniserkennungseinrichtung 280 auch mindestens eine Teilmenge von: Metadaten 283 und Ereigniszustellungsanweisungen 288 (die Teilereignis-Zustellungsanweisungen beinhalten) ein.
  • Der Ereignisempfänger 282 empfängt Ereignisinformationen vom Ereignissortierer 270. Die Ereignisinformationen schließen Informationen bezüglich eines Teilereignisses, beispielsweise einer Berührung oder einer Berührungsbewegung, ein. Je nach dem Teilereignis schließen die Ereignisinformationen auch zusätzliche Informationen, wie etwa die Position, an der das Teilereignisses stattfindet, ein. Wenn das Teilereignis die Bewegung einer Berührung betrifft, schließen die Ereignisinformationen auch Schnelligkeit und Richtung des Teilereignisses ein. In manchen Ausführungsformen schließen Ereignisse das Drehen der Vorrichtung von einer Ausrichtung in eine andere (z. B. von einer Hochformatausrichtung in eine Querformatausrichtung oder umgekehrt), und die Ereignisinformationen schließen entsprechende Informationen bezüglich der aktuellen Ausrichtung der Vorrichtung (auch als räumliche Lage der Vorrichtung bezeichnet) ein.
  • Der Ereignisvergleicher 284 vergleicht die Ereignisinformationen mit vordefinierten Ereignis- oder Teilereignisdefinitionen und bestimmt, basierend auf dem Vergleich, ein Ereignis oder ein Teilereignis oder bestimmt oder aktualisiert den Status eines Ereignisses oder eines Teilereignisses. In manchen Ausführungsformen schließt der Ereignisvergleicher 284 Ereignisdefinitionen 286 ein. Die Ereignisdefinitionen 286 enthalten Definitionen von Ereignissen (z. B. vordefinierte Abfolgen von Teilereignissen), beispielsweise Ereignis 1 (287-1), Ereignis 2 (287-2) und andere. In manchen Ausführungsformen schließen Teilereignisse in einem Ereignis (287) zum Beispiel Berührungsbeginn, Berührungsende, Berührungsbewegung, Berührungsabbruch und mehrfaches Berühren ein. In einem Beispiel ist die Definition für Ereignis 1 (287-1) ein doppeltes Tippen auf ein angezeigtes Objekt. Das doppelte Tippen umfasst zum Beispiel eine erste Berührung (Berührungsbeginn) auf dem angezeigten Objekt für eine vorbestimmte Phase, ein erstes Abheben (Berührungsende) für eine vorbestimmte Phase, eine zweite Berührung (Berührungsbeginn) auf dem angezeigten Objekt für eine vorbestimmte Phase und ein zweites Abheben (Berührungsende) für eine vorbestimmte Phase. In einem weiteren Beispiel ist die Definition für Ereignis 2 (287-2) ein Ziehen auf einem angezeigten Objekt. Das Ziehen umfasst zum Beispiel eine Berührung (oder einen Kontakt) auf dem angezeigten Objekt für eine vorbestimmte Phase, eine Bewegung der Berührung über die berührungsempfindliche Anzeige 212 und ein Abheben der Berührung (Berührungsende). In manchen Ausführungsformen schließt das Ereignis auch Informationen für eine oder mehrere assoziierte Ereignishandhabungseinrichtungen 290 ein.
  • In manchen Ausführungsformen schließt die Ereignisdefinition 287 eine Definition eines Ereignisses für ein betreffendes Benutzerschnittstellenobjekt ein. In manchen Ausführungsformen führt der Ereignisvergleicher 284 einen Treffertest durch, um zu bestimmen, welches Benutzerschnittstellenobjekt mit einem Teilereignis assoziiert ist. In einer Anwendungsansicht, in der drei Benutzerschnittstellenobjekte auf der berührungsempfindlichen Anzeige 212 angezeigt werden, führt beispielsweise der Ereignisvergleicher 284 Treffertest durch, wenn eine Berührung auf der berührungsempfindlichen Anzeige 212 erfasst wird, um zu bestimmen, welches der drei Benutzerschnittstellenobjekte mit der Berührung (Teilereignis) verknüpft ist. Wenn jedes angezeigte Objekt mit einer betreffenden Ereignishandhabungseinrichtung 290 assoziiert ist, verwendet der Ereignisvergleicher das Ergebnis des Treffertests, um zu bestimmen, welche Ereignishandhabungseinrichtung 290 aktiviert werden sollte. Beispielsweise wählt der Ereignisvergleicher 284 eine Ereignishandhabungseinrichtung aus, die mit dem Teilereignis und dem den Treffertest auslösenden Objekt assoziiert ist.
  • In manchen Ausführungsformen schließt die Definition für ein jeweiliges Ereignis (287) auch verzögerte Aktionen ein, die eine Lieferung der Ereignisinformationen verzögern, bis bestimmt wurde, ob die Abfolge von Teilereignissen dem Ereignistyp der Ereigniserkennungseinrichtung entspricht oder nicht.
  • Wenn eine betreffende Ereigniserkennungseinrichtung 280 bestimmt, dass die Abfolge von Teilereignissen keinem der Ereignisse in den Ereignisdefinitionen 286 entspricht, gibt die betreffende Ereigniserkennungseinrichtung 280 einen Ereignis-unmöglich-Status, einen Ereignis-fehlgeschlagen-Status oder einen Ereignis-beendet-Status ein und lässt anschließend nachfolgende Teilereignisse der auf Berührung basierenden Geste außer Acht. In dieser Situation fahren, sofern vorhanden, andere Ereigniserkennungseinrichtungen, die für die Trefferansicht aktiv bleiben, mit der Nachverfolgung und Verarbeitung von Teilereignissen einer stattfindenden, auf Berührung basierenden Geste fort.
  • In manchen Ausführungsformen schließt eine betreffende Ereigniserkennungseinrichtung 280 Metadaten 283 mit konfigurierbaren Eigenschaften, Hinweissymbolen und/oder Listen ein, die angeben, wie das Ereigniszustellungssystem die Zustellung von Teilereignissen zu Einrichtungen zum Bestimmen aktiv beteiligter Ereignisse ausführen sollte. In manchen Ausführungsformen schließen die Metadaten 283 konfigurierbare Eigenschaften, Hinweissymbole und/oder Listen ein, die angeben, wie Ereigniserkennungseinrichtungen miteinander kommunizieren, oder wie ihnen ermöglicht wird, miteinander zu kommunizieren. In manchen Ausführungsformen schließen die Metadaten 283 konfigurierbare Eigenschaften, Hinweissymbole und/oder Listen ein, die angeben, ob Teilereignisse an variierende Ebenen in der ansichts- oder in der programmbezogenen Hierarchie zugestellt werden.
  • In manchen Ausführungsformen aktiviert eine betreffende Ereigniserkennungseinrichtung 280 die mit einem Ereignis assoziierten Ereignishandhabungseinrichtung 290, wenn ein oder mehrere bestimmte Teilereignisse eines Ereignisses erkannt werden. In manchen Ausführungsformen stellt eine betreffende Ereigniserkennungseinrichtung 280 der Ereignishandhabungseinrichtung 290 mit dem Ereignis verknüpfte Ereignisinformationen zu. Das Aktivieren einer Ereignishandhabungseinrichtung 290 unterscheidet sich vom Senden (und vom verzögerten Senden) von Teilereignissen an eine betreffende Trefferansicht. In manchen Ausführungsformen wirft die Ereigniserkennungseinrichtung 280 ein mit dem erkannten Ereignis assoziiertes Hinweissymbol aus, und die mit dem Hinweissymbol assoziierte Ereignishandhabungseinrichtung 290 nimmt das Hinweissymbol auf und führt einen vordefinierten Prozess aus.
  • In manchen Ausführungsformen schließen die Ereigniszustellungsanweisungen 288 Teilereigniszustellungsanweisungen, die Ereignisinformationen bezüglich eines Teilereignisses zustellen, ein, ohne eine Ereignishandhabungseinrichtung zu aktivieren. Stattdessen stellen die Teilereigniszustellungsanweisungen den mit der Abfolge von Teilereignissen oder mit den aktiv beteiligten Ansichten verknüpften Ereignishandhabungseinrichtungen Ereignisinformationen zu. Die mit der Abfolge von Teilereignissen oder mit den aktiv beteiligten Ansichten assoziierten Ereignishandhabungseinrichtungen empfangen die Ereignisinformationen und führen einen vordefinierten Prozess aus.
  • In manchen Ausführungsformen erzeugt und aktualisiert die Datenaktualisierungseinrichtung 276 in der Anwendung 236-1 verwendete Daten. Zum Beispiel aktualisiert die Datenaktualisierungseinrichtung 276 die im Kontaktemodul 237 verwendete Telefonnummer oder speichert eine im Videowiedergabemodul verwendete Videodatei. In einigen Ausführungsformen erstellt und aktualisiert die Objektaktualisierungseinrichtung 277 in der Anwendung 236-1 verwendete Objekte. Beispielsweise erzeugt die Objektaktualisierungseinrichtung 277 ein neues Benutzerschnittstellenobjekt oder aktualisiert die Position eines Benutzerschnittstellenobjektes. Die GUI-Aktualisierungseinrichtung 278 aktualisiert die GUI. Beispielsweise bereitet das GUI-Aktualisierungseinrichtung 278 Anzeigeformationen vor und sendet sie zur Anzeige auf einer berührungsempfindlichen Anzeige an das Grafikmodul 232.
  • In manchen Ausführungsformen schließen die eine oder die mehreren Ereignishandhabungseinrichtungen 290 die Datenaktualisierungseinrichtung 276, die Objektaktualisierungseinrichtung 277 und die GUI-Aktuahsierungseinrichtung 278 ein oder hat Zugang zu diesen. In manchen Ausführungsformen sind die Datenaktualisierungseinrichtung 276, die Objektaktualisierungseinrichtung 277 und die GUI-Aktualisierungseinrichtung 278 in einem einzigen Modul einer entsprechenden Anwendung 236-1 oder Anwendungsansicht 291 eingeschlossen. In anderen Ausführungsformen sind sie in zwei oder mehr Softwaremodulen eingeschlossen.
  • Es versteht sich, dass die vorstehende Erläuterung hinsichtlich einer Ereignishandhabung von Benutzerberührungen auf berührungsempfindlichen Anzeigen auch für andere Formen von Benutzereingaben zum Betreiben von Multifunktionsvorrichtungen 200 mit Eingabevorrichtungen gilt, von denen nicht alle auf Touchscreens initiiert werden.
  • Beispielsweise Mausbewegungen und Maustastendrücke, die wahlweise auf einzelne oder mehrere Tastendrücke oder Griffe abgestimmt sind; Kontaktbewegungen wie Tippen, Ziehen, Scrollen usw. auf Touchpads; Stift-Eingaben; Bewegung der Vorrichtung; mündliche Anweisungen; erfasste Augenbewegungen; biometrische Eingaben; und/oder eine beliebige Kombination davon werden wahlweise als Eingaben verwendet, die Teilereignissen entsprechen, die ein zu erkennendes Ereignis definieren.
  • 3 stellt eine tragbare Multifunktionsvorrichtung 200 mit einem Touchscreen 212 gemäß manchen Ausführungsformen dar. Der Touchscreen zeigt wahlweise eine oder mehrere Grafiken innerhalb der Benutzerschnittstelle (UI) 300 an. In dieser Ausführungsform sowie in anderen nachstehend beschriebenen Ausführungsformen wird es einem Benutzer ermöglicht, eine oder mehrere der Grafiken auszuwählen, indem er eine Geste auf den Grafiken ausführt, beispielsweise mit einem oder mehreren Fingern 302 (in der Figur nicht maßstabsgetreu dargestellt) oder einem oder mehreren Eingabestiften 303 (in der Figur nicht maßstabsgetreu dargestellt). In einigen Ausführungsformen findet die Auswahl von einer oder mehreren Grafiken statt, wenn der Benutzer den Kontakt mit der einen oder den mehreren Grafiken abbricht. In einigen Ausführungsformen schließt die Handbewegung eine oder mehrere Tippbewegungen, eine oder mehrere Wischbewegungen (von links nach rechts, rechts nach links, aufwärts und/oder abwärts) und/oder eine Rollbewegung eines Fingers (von rechts nach links, links nach rechts, aufwärts und/oder abwärts) ein, der Kontakt mit der Vorrichtung 200 aufgenommen hat. In einigen Implementierungen oder in manchen Fällen wird durch einen versehentlichen Kontakt mit einer Grafik die Grafik nicht ausgewählt. Beispielsweise wird durch eine Wischgeste, die über ein Anwendungssymbol wischt, wahlweise nicht die entsprechende Anwendung gewählt, wenn die der Auswahl entsprechende Geste ein Tippen ist.
  • Die Vorrichtung 200 kann auch eine oder mehrere physische Tasten, wie etwa eine „Home“- oder eine Menütaste 304, einschließen. Wie zuvor beschrieben, wird die Menütaste 304 verwendet, um zu einer beliebigen Anwendung 236 in einem Satz von Anwendungen zu navigieren, die auf der Vorrichtung 200 ausgeführt werden. Alternativ dazu ist in einigen Ausführungsformen die Menütaste als Softkey in einer GUI implementiert, der auf dem Touchscreen 212 angezeigt wird.
  • In einer Ausführungsform schließt die Vorrichtung 200 den Touchscreen 212, die Menütaste 304, die Drucktaste 306 zum Ein-/Ausschalten und Sperren der Vorrichtung, die eine oder die mehreren Lautstärkeregelungstaste(n) 308, den SIM (Subscriber Identity Module)-Kartenschlitz 310, den Kopfhöreranschluss 312 und den externen Docking-/Ladeanschluss 224 ein. Die Drucktaste 306 wird wahlweise verwendet, um die Vorrichtung ein- und auszuschalten, indem die Taste gedrückt wird und die Taste für ein vordefiniertes Zeitintervall im gedrückten Zustand gehalten wird; um die Vorrichtung zu sperren, indem die Taste gedrückt und losgelassen wird, bevor das vordefinierte Zeitintervall verstrichen ist; und/oder zum Entriegeln der Vorrichtung oder zum Initiieren eines Entriegelungsvorgangs. In einer alternativen Ausführungsform nimmt die Vorrichtung 200 auch gesprochene Eingaben zur Aktivierung oder Deaktivierung einiger Funktionen durch das Mikrofon 213 an. Die Vorrichtung 200 schließt wahlweise auch einen oder mehrere Kontaktintensitätssensoren 265 zum Erfassen der Intensität von Kontakten auf dem Touchscreen 212 und/oder einen oder mehrere Tastausgabeerzeuger 267 zum Erzeugen von Tastausgaben für einen Benutzer der Vorrichtung 200 ein.
  • 4 ist ein Blockdiagramm einer beispielhaften Multifunktionsvorrichtung mit einer Anzeige und einer berührungsempfindlichen Oberfläche gemäß einigen Ausführungsformen. Vorrichtung 400 muss nicht tragbar sein. In einigen Ausführungsformen handelt es sich bei der Vorrichtung 400 um einen Laptop-Computer, einen Desktop-Computer, einen Tablet-Computer, eine Medienwiedergabevorrichtung, ein Navigationsgerät, eine pädagogische Vorrichtung (wie etwa ein Lernspielzeug eines Kindes), ein Spielsystem oder eine Steuervorrichtung (z. B. ein Heim- oder gewerblicher Regler). Die Vorrichtung 400 schließt typischerweise eine oder mehrere Verarbeitungseinheiten (CPUs) 410, eine oder mehrere Netzwerk- oder andere Kommunikationsschnittstellen 460, den Speicher 470 und einen oder mehrere Kommunikationsbusse 420 zum Verbinden dieser Komponenten miteinander ein. Die Kommunikationsbusse 420 schließen wahlweise eine Schaltung (manchmal als ein Chipsatz bezeichnet) ein, die die Kommunikation zwischen den Systemkomponenten miteinander verbindet und steuert. Die Vorrichtung 400 schließt die Eingabe/AusgabeSchnittstelle (E/A-Schnittstelle) 430 ein, die die Anzeige 440 umfasst, bei der es sich in der Regel um eine Touchscreen-Anzeige handelt. Die E/A-Schnittstelle 430 schließt wahlweise auch eine Tastatur und/oder eine Maus (oder andere Zeigevorrichtung) 450 und ein Touchpad 455, einen Tastausgabeerzeuger 457 zum Erzeugen von Tastausgaben auf der Vorrichtung 400 (z. B. ähnlich dem einen oder mehreren vorstehend unter Bezugnahme auf 2A beschriebenen Tastausgabeerzeugern 267), Sensoren 459 (z. B. optische, Beschleunigungs-, Näherungs-, berührungsempfindliche und/oder Kontaktintensitätssensoren ähnlich dem oder den vorstehend unter Bezugnahme auf 2A beschriebenen Kontaktintensitätssensoren 265) ein. Der Speicher 470 schließt Hochgeschwindigkeitsdirektzugriffsspeicher, wie etwa DRAM, SRAM, DDR-RAM oder andere Festkörperspeichervorrichtungen mit wahlfreiem Zugriff; sowie wahlweise nichtflüchtigen Speicher, wie zum Beispiel eine oder mehrere Magnetplattenspeicher, optische Plattenspeicher, Flash-Speicher oder andere nichtflüchtige Festkörperspeicher, ein. Der Speicher 470 schließt wahlweise eine oder mehrere Datenspeichervorrichtungen ein, die von der/den CPU(s) 410 entfernt angeordnet sind. In manchen Ausführungsformen sind im Speicher 470 Programme, Module und Datenstrukturen oder ein Teilsatz davon analog zu den im Speicher 202 der tragbaren Multifunktionsvorrichtung 200 (2A) gespeicherten Programmen, Modulen und Datenstrukturen gespeichert. Ferner speichert der Speicher 470 wahlweise zusätzliche Programme, Module und Datenstrukturen, die im Speicher 202 der tragbaren Multifunktionsvorrichtung 200 nicht vorhanden sind. Zum Beispiel sind im Speicher 470 der Vorrichtung 400 wahlweise ein Zeichnungsmodul 480, ein Präsentationsmodul 482, ein Textverarbeitungsmodul 484, ein Webseitenerstellungsmodul 486, ein Modul zur Erstellung von Disks 488 und/oder ein Tabellenkalkulationsmodul 490 gespeichert, während diese Module im Speicher 202 der tragbaren Multifunktionsvorrichtung 200 (2A) wahlweise nicht gespeichert sind.
  • Jedes der vorstehend angegebenen Elemente in 4 ist in machen Beispielen in einem oder mehreren der zuvor erwähnten Speichervorrichtungen gespeichert. Jedes der vorstehend angegebenen Module entspricht einem Satz von Anweisungen zum Durchführen einer vorstehend beschriebenen Funktion. Die vorstehend angegebenen Module oder Programme (z. B. Sätze von Anweisungen) müssen nicht als separate Software-Programme, Prozeduren oder Module implementiert sein, und somit werden verschiedene Teilmengen dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig neu angeordnet. In manchen Ausführungsformen speichert der Speicher 470 eine Teilmenge der oben angegebenen Module und Datenstrukturen. Ferner speichert der Speicher 470 zusätzliche Module und Datenstrukturen, die vorstehend nicht beschrieben wurden.
  • Die Aufmerksamkeit wird nun auf Ausführungsformen von Benutzerschnittstellen gerichtet, die zum Beispiel auf der tragbaren Multifunktionsvorrichtung 200 implementiert sind.
  • 5A stellt eine beispielhafte Benutzerschnittstelle für ein Menü von Anwendungen auf der tragbaren Multifunktionsvorrichtung 200 gemäß manchen Ausführungsformen dar. Ähnliche Benutzerschnittstellen sind auf der Vorrichtung 400 implementiert. In einigen Ausführungsformen schließt die Benutzerschnittstelle 500 die folgenden Elemente oder eine Teilmenge oder eine Übermenge davon ein:
  • Ein oder mehrere Signalstärkeindikatoren 502 zur drahtlosen Kommunikation, wie etwa Mobilfunk- und Wi-Fi-Signale;
    • • Zeit 504;
    • • Bluetooth-Anzeige 505;
    • • Batteriestatusanzeige 506;
    • • Leiste 508 mit Symbolen für häufig verwendete Anwendungen, wie:
      • ◯ Symbol 516 für das Telefonmodul 238, das als „Telefon“ gekennzeichnet ist und wahlweise einen Indikator 514 der Anzahl von verpassten Anrufen oder Sprachnachrichten beinhaltet;
      • ◯ Symbol 518 für das E-Mail-Client-Modul 240, das als „E-Mail“ gekennzeichnet ist und wahlweise einen Indikator 510 der Anzahl von ungelesenen E-Mails beinhaltet;
      • ◯ Symbol 520 für das Browsermodul 247, das als „Browser“ gekennzeichnet ist; und
      • ◯ Symbol 522 für das Modul zur Wiedergabe von Video und Musik 252, das auch als iPod (Markenzeichen von Apple Inc.)-Modul 252 bezeichnet wird und als „iPod“ gekennzeichnet ist; und
    • • Symbole für andere Anwendungen, wie etwa:
      • ◯ Symbol 524 für das IM-Modul 241, das als „Nachrichten“ gekennzeichnet ist;
      • ◯ Symbol 526 für das Kalendermodul 248, das als „Kalender“ gekennzeichnet ist;
      • ◯ Symbol 528 für das Bildverwaltungsmodul 244, das als „Fotos“ gekennzeichnet ist;
      • ◯ Symbol 530 für das Kameramodul 243, das als „Kamera“ gekennzeichnet ist;
      • ◯ Symbol 532 für das Online-Video-Modul 255, das als „Online-Video“ gekennzeichnet ist;
      • ◯ Symbol 534 für das Aktien-Widget 249-2, das als „Aktien“ gekennzeichnet ist;
      • ◯ Symbol 536 für das Kartenmodul 254, das als „Maps“ gekennzeichnet ist;
      • ◯ Symbol 538 für das Wetter-Widget 249-1, das als „Wetter“ gekennzeichnet ist;
      • ◯ Symbol 540 für das Wecker-Widget 249-4, das als „Wecker“ gekennzeichnet ist;
      • ◯ Symbol 542 für das Trainingsunterstützungsmodul 242, das als „Trainingsunterstützung“ gekennzeichnet ist;
      • ◯ Symbol 544 für das Notizenmodul 253, das als „Notizen“ gekennzeichnet ist; und
      • ◯ Symbol 546 für eine Einstellungsanwendung oder ein Einstellungsmodul, die bzw. das mit „Einstellungen“ gekennzeichnet ist und Zugriff auf Einstellungen für die Vorrichtung 200 und ihre verschiedenen Anwendungen 236 bereitstellt.
  • Es sollte beachtet werden, dass die in 5A dargestellten Symbolkennzeichnungen lediglich beispielhaft sind. Beispielsweise ist das Symbol 522 für das Modul zur Wiedergabe von Video und Musik 252 wahlweise als „Musik“ oder „Musik-Player“ gekennzeichnet. Für verschiedene Anwendungssymbole werden wahlweise andere Kennzeichnungen verwendet. In einigen Ausführungsformen schließt eine Kennzeichnung für ein jeweiliges Anwendungssymbol einen Namen einer Anwendung ein, der dem entsprechenden Anwendungssymbol entspricht. In einigen Ausführungsformen unterscheidet sich eine Kennzeichnung für ein bestimmtes Anwendungssymbol von einem Namen einer Anwendung, der dem bestimmten Anwendungssymbol entspricht.
  • 5B veranschaulicht eine beispielhafte Benutzerschnittstelle auf einer Vorrichtung (z. B. der Vorrichtung 400, 4) mit einer berührungsempfindlichen Oberfläche 551 (z. B. ein Tablet oder Touchpad 455, 4), die von der Anzeige 550 (z. B. der Touchscreen-Anzeige 212) separat ist. Die Vorrichtung 400 schließt wahlweise auch einen oder mehrere Kontaktintensitätssensoren (z. B. einen oder mehrere der Sensoren 457) zum Erfassen der Intensität von Kontakten auf der berührungsempfindlichen Oberfläche 551 und/oder einen oder mehrere Tastausgabeerzeuger 459 zum Erzeugen von Tastausgaben für einen Benutzer der Vorrichtung 400 ein.
  • Obwohl manche der folgenden Beispiele unter Bezugnahme auf Eingaben auf der Touchscreen-Anzeige 212 gegeben werden (wobei dort die berührungsempfindliche Oberfläche und die Anzeige kombiniert sind), erfasst die Vorrichtung in manchen Ausführungsformen Eingaben auf einer berührungsempfindlichen Oberfläche, die von der Anzeige separat ist, wie in 5B gezeigt. In manchen Ausführungsformen besitzt die berührungsempfindliche Oberfläche (z. B. 551 in 5B) eine Primärachse (z. B. 552 in 5B), die einer Primärachse (z. B. 553 in 5B) auf der Anzeige (z. B. 550) entspricht. Gemäß diesen Ausführungsformen erfasst die Vorrichtung Kontakte (z. B. 560 und 562 in 5B) mit der berührungsempfindlichen Oberfläche 551 an Stellen, die den jeweiligen Stellen auf der Anzeige entsprechen (z. B. entspricht in 5B Bezugsziffer 560 Bezugsziffer 568, und 562 entspricht 570). Auf diese Weise werden durch die Vorrichtung auf der berührungsempfindlichen Oberfläche (z. B. 551 in 5B) erfasste Benutzereingaben (z. B. die Kontakte 560 und 562 und Bewegungen davon) durch die Vorrichtung verwendet, um die Benutzerschnittstelle auf der Anzeige (z. B. 550 in 5B) der Multifunktionsvorrichtung zu verändern, wenn die berührungsempfindliche Oberfläche von der Anzeige separat ist. Es versteht sich, dass ähnliche Verfahren wahlweise für andere hierin beschriebene Benutzerschnittstellen verwendet werden.
  • Während die folgenden Beispiele hauptsächlich unter Bezugnahme auf Fingereingaben (z. B. Fingerkontakte, Fingertippgesten, Fingerwischgesten) gegeben werden, sollte verstanden werden, dass in manchen Ausführungsformen zusätzlich eine oder mehrere der Fingereingaben durch Eingaben von einer anderen Eingabevorrichtung (z. B. eine mausbasierte Eingabe oder Stifteingabe) ersetzt werden. Beispielsweise wird eine Wischgeste wahlweise durch einen Mausklick (z. B. anstelle eines Kontakts) gefolgt von Bewegung des Cursors entlang dem Pfad des Wischens (z. B. anstelle der Bewegung des Kontakts) ersetzt. Als weiteres Beispiel wird eine Tippgeste wahlweise durch einen Mausklick ersetzt, während der Cursor sich über der Position der Tippgeste befindet (z. B. anstelle von Erfassen des Kontakts gefolgt vom Beenden des Erfassens des Kontakts). Wenn mehrere Benutzereingaben gleichzeitig erfasst werden, versteht es sich analog dazu, dass mehrere Computermäuse wahlweise gleichzeitig oder wahlweise eine Maus und Fingerkontakte gleichzeitig verwendet werden.
  • 6A veranschaulicht eine beispielhafte persönliche elektronische Vorrichtung 600. Die Vorrichtung 600 schließt den Körper 602 ein. In manchen Ausführungsformen schließt die Vorrichtung 600 manche oder alle in Hinblick auf die Vorrichtungen 200 und 400 (z. B. 2A-4) beschriebenen Merkmale ein. In manchen Ausführungsformen weist die Vorrichtung 600 einen berührungsempfindlichen Anzeigebildschirm 604 auf, hierin nachstehend als Touchscreen 604 bezeichnet. Alternativ dazu oder zusätzlich zum Touchscreen 604 weist die Vorrichtung 600 eine Anzeige und eine berührungsempfindliche Oberfläche auf. Wie bei den Vorrichtungen 200 und 400 weist der Touchscreen 604 (oder die berührungsempfindliche Oberfläche) in manchen Ausführungsformen einen oder mehrere Intensitätssensoren zum Erfassen einer Intensität von Kontakten (z. B. Berührungen) auf. Der eine oder die mehreren Intensitätssensoren des Touchscreens 604 (oder der berührungsempfindlichen Oberfläche) stellen Ausgabedaten bereit, welche die Intensität von Berührungen repräsentieren. Die Benutzerschnittstelle der Vorrichtung 600 reagiert auf Berührungen auf Grundlage ihrer Intensität, was bedeutet, dass Berührungen von unterschiedlichen Intensitäten unterschiedliche Benutzerschnittstellenvorgänge auf der Vorrichtung 600 aufrufen können.
  • Techniken zum Erfassen und Verarbeiten einer Berührungsintensität sind zum Beispiel in verwandten Anmeldungen zu finden: die am 8. Mai 2013 eingereichte internationale Patentanmeldung Seriennummer PCT/US2013/040061 mit dem Titel „Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application“ und die am 11. November 2013 eingereichte internationale Patentanmeldung Seriennummer PCT/US2013/069483 mit dem Titel „Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships“, von denen jede hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • In manchen Ausführungsformen weist die Vorrichtung 600 einen oder mehrere Eingabemechanismen 606 und 608 auf. Die Eingabemechanismen 606 und 608, falls eingeschlossen, sind physisch. Beispiel physischer Eingabemechanismen schließen Drucktasten und drehbare Mechanismen ein. In manchen Ausführungsformen weist die Vorrichtung 600 einen oder mehrere Befestigungsmechanismen auf. Solche Befestigungsmechanismen, falls eingeschlossen, können eine Befestigung der Vorrichtung 600 zum Beispiel an Hüten, Brillen, Ohrringen, Halsketten, Hemden/Blusen/T-Shirts, Jacken, Armbändern, Armbanduhrbändern, Ketten, Hosen, Gürteln, Schuhen, Handtaschen, Rucksäcken und so weiter gestatten. Diese Befestigungsmechanismen erlauben es, dass die Vorrichtung 600 von einem Benutzer am Körper getragen werden kann.
  • 6B stellt eine beispielhafte persönliche elektronische Vorrichtung 600 dar. In manchen Ausführungsformen schließt die Vorrichtung 600 manche oder alle in Hinblick auf 2A, 2B und 4 beschriebenen Komponenten ein. Die Vorrichtung 600 weist einen Bus 612 auf, der einen E/A-Abschnitt 614 betrieblich mit einem oder mehreren Computerprozessoren 616 und einem Speicher 618 koppelt. Der E/A-Abschnitt 614 ist mit einer Anzeige 604 gekoppelt, die eine berührungsempfindliche Komponente 622 und wahlweise eine berührungsintensitätsempfindliche Komponente 624 aufweisen kann. Zusätzlich ist der E/A-Abschnitt 614 mit einer Kommunikationseinheit 630 verbundenen, um Anwendungs- und Betriebssystemdaten über Wi-Fi, Bluetooth, Nahfeldkommunikation (NFC), Mobilkommunikation und/oder andere drahtlose Kommunikationstechniken zu empfangen. Die Vorrichtung 600 schließt die Eingabemechanismen 606 und/oder 608 ein. Bei dem Eingabemechanismus 606 handelt es sich zum Beispiel um eine drehbare Eingabevorrichtung oder eine drückbare und drehbare Eingabevorrichtung. Bei dem Eingabemechanismus 608 handelt es sich bei manchen Beispielen um eine Schaltfläche oder Taste.
  • Bei dem Eingabemechanismus 608 handelt es sich bei manchen Beispielen um ein Mikrofon. Die persönliche elektronische Vorrichtung 600 schließt verschiedene Sensoren ein, wie beispielsweise einen GPS-Sensor 632, einen Beschleunigungsmesser 634, einen Richtungssensor 640 (z. B. Kompass), ein Gyroskop 636, einen Bewegungssensor 638 und/oder eine Kombination hieraus, die alle mit dem E/A-Abschnitt 614 wirkverbunden sind.
  • Bei dem Speicher 618 der persönlichen elektronischen Vorrichtung 600 handelt es sich um ein nichtflüchtiges computerlesbares Speichermedium zum Speichern von computerausführbaren Anweisungen, welche, bei Ausführung durch einen oder mehrere Computerprozessoren 616, zum Beispiel bewirken, dass die Computerprozessoren die weiter unten beschriebenen Techniken und Prozesse ausführen. Die computerausführbaren Anweisungen werden beispielsweise auch innerhalb jedes nichtflüchtigen computerlesbaren Datenspeichermediums zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungseinrichtung oder einer Anweisungsausführungsvorrichtung gespeichert und/oder transportiert, wie beispielsweise einem computergestützten System, einem prozessorbasierten System oder einem anderen System, das die Anweisungen aus dem Anweisungsausführungssystem, der Anweisungsausführungseinrichtung oder der Anweisungsausführungsvorrichtung abrufen und die Anweisungen ausführen kann. Die persönliche elektronische Vorrichtung 600 ist nicht auf die Komponenten und die Konfiguration von 6B beschränkt, sondern kann andere oder zusätzliche Komponenten in mehreren Konfigurationen einschließen.
  • Wie hier verwendet, bezieht sich der Begriff „Affordanz“ auf ein benutzerinteraktives Objekt einer grafischen Benutzeroberfläche, das beispielsweise auf dem Anzeigebildschirm der Vorrichtungen 200, 400, 600 und/oder 800 (2A, 4, 6A-B und/oder 8A-E) angezeigt wird. Zum Beispiel bilden ein Bild (z. B. ein Symbol), eine Schaltfläche und ein Text (z. B. ein Hyperlink) jeweils eine Affordanz.
  • Wie hierin verwendet, bezieht sich der Begriff „Fokusauswähler“ auf ein Eingabeelement, das einen aktuellen Teil einer Benutzerschnittstelle angibt, mit der ein Benutzer interagiert. In manchen Implementierungen, die einen Cursor oder einen anderen Ortsmarkierer einschließen, agiert der Cursor als ein „Fokusauswähler“, sodass im Falle dessen, dass eine Eingabe (z. B. eine Druckeingabe) auf einer berührungsempfindlichen Oberfläche (z. B. dem Touchpad 455 in 4 oder der berührungsempfindlichen Oberfläche 551 in 5B) erfasst wird, während sich der Cursor über einem bestimmten Benutzerschnittstellenelement befindet (z. B. einer Schaltfläche, einem Fenster, einem Schieberegler oder einem anderen Benutzerschnittstellenelement), das bestimmte Benutzerschnittstellenelement gemäß der erfassten Eingabe angepasst wird. In manchen Implementierungen, die eine Touchscreen-Anzeige (z. B. das berührungsempfindliche Anzeigesystem 212 in 2A oder den Touchscreen 212 in 5A) einschließen, die eine direkte Interaktion mit Benutzerschnittstellenelementen auf der Touchscreen-Anzeige erlauben, agiert ein erfasster Kontakt auf dem Touchscreen als ein „Fokusauswähler“, sodass im Falle dessen, dass eine Eingabe (z. B. eine Druckeingabe durch den Kontakt) auf der Touchscreen-Anzeige an einer Position eines bestimmten Benutzerschnittstellenelements (z. B. einer Schaltfläche, eines Fensters, eines Schiebereglers oder eines anderen Benutzerschnittstellenelements) erfasst wird, das bestimmte Benutzerschnittstellenelement gemäß der erfassten Eingabe angepasst wird. In manchen Implementierungen wird der Fokus ohne eine entsprechende Bewegung eines Cursors oder eine Bewegung eines Kontakts auf der Touchscreen-Anzeige (z. B. unter Verwendung einer Tabulatortaste oder von Pfeiltasten, um den Fokus von einer Schaltfläche zu einer anderen Schaltfläche zu bewegen) von einer Region einer Benutzerschnittstelle zu einer anderen Region der Benutzerschnittstelle bewegt; in diesen Implementierungen bewegt sich der Fokusauswähler entsprechend der Bewegung des Fokus zwischen verschiedenen Regionen der Benutzerschnittstelle. Ungeachtet der durch den Fokusauswähler angenommenen, spezifischen Form handelt es sich beim Fokusauswähler allgemein um das Benutzerschnittstellenelement (oder einen Kontakt auf einer Touchscreen-Anzeige), das durch den Benutzer gesteuert wie, um die beabsichtigte Interaktion des Benutzers der Benutzerschnittstelle mitzuteilen (z. B. indem der Vorrichtung das Element der Benutzerschnittstelle angegeben wird, mit dem der Benutzer zu interagieren beabsichtigt). Zum Beispiel wird die Position eines Fokusauswählers (z. B. eines Cursors, eines Kontakts oder eines Auswahlkästchens) über einer entsprechenden Schaltfläche, während auf der berührungsempfindlichen Oberfläche (z. B. einem Touchpad oder Touchscreen) eine Druckeingabe erfasst wird, anzeigen, dass der Benutzer beabsichtigt, die entsprechende Schaltfläche (im Gegensatz zu anderen, auf einer Anzeige der Vorrichtung gezeigten Benutzerschnittstellenelementen) zu aktivieren.
  • Wie in der Patentschrift und den Ansprüchen verwendet, bezieht sich der Begriff „charakteristische Intensität“ eines Kontakts auf ein Charakteristikum des Kontakts auf Grundlage einer oder mehrerer Intensitäten des Kontakts. In manchen Ausführungsformen beruht die charakteristische Intensität auf mehreren Intensitätsproben. Die charakteristische Intensität beruht wahlweise auf einer vordefinierten Anzahl von Intensitätsproben oder einem Satz von Intensitätsproben, die während einer vorbestimmten Zeitspanne (z. B. 0,05; 0,1; 0,2; 0,5; 1; 2; 5; 10 Sekunden) in Bezug auf ein vorbestimmtes Ereignis (z. B. nach Erfassen des Kontakts, vor Erfassen eines Abhebens des Kontakts, vor oder nach Erfassen eines Starts einer Bewegung des Kontakts, vor Erfassen eines Endes des Kontakts, vor oder nach Erfassen eines Anstiegs einer Intensität des Kontakts und/oder vor oder nach Erfassen eines Abfalls einer Intensität des Kontakts) gesammelt werden. Eine charakteristische Intensität eines Kontakts beruht wahlweise auf einem oder mehreren von: einem Maximalwert der Intensitäten des Kontakts, einem Mittelwert der Intensitäten des Kontakts, einem Durchschnittswert der Intensitäten des Kontakts, einem Wert des obersten 10er-Perzentilwertes der Intensitäten des Kontakts, einem Wert bei der Hälfte des Maximums der Intensitäten des Kontakts, einem Wert beim 90 %-Maximum der Intensitäten des Kontakts oder dergleichen. In manchen Ausführungsformen wird die Dauer des Kontakts beim Feststellen der charakteristischen Intensität verwendet (z. B. wenn es sich bei der charakteristischen Intensität um einen Durchschnitt der Intensität des Kontakts im Zeitverlauf handelt). In manchen Ausführungsformen wird die charakteristische Intensität mit einem Satz von einem oder mehreren Intensitätsschwellenwerten verglichen, um festzustellen, ob ein Vorgang durch einen Benutzer durchgeführt wurde. Zum Beispiel schließt der Satz von einem oder mehreren Intensitätsschwellenwerten einen ersten Intensitätsschwellenwert und einen zweiten Intensitätsschwellenwert ein. In diesem Beispiel führt ein Kontakt mit einer charakteristischen Intensität, die den ersten Schwellenwert nicht überschreitet, zu einem ersten Vorgang, ein Kontakt mit einer charakteristischen Intensität, die den ersten Intensitätsschwellenwert überschreitet und den zweiten Intensitätsschwellenwert nicht überschreitet, führt zu einem zweiten Vorgang, und ein Kontakt mit einer charakteristischen Intensität, die den zweiten Schwellenwert überschreitet, führt zu einem dritten Vorgang. In manchen Ausführungsformen wird ein Vergleich zwischen der charakteristischen Intensität und einem oder mehreren Schwellenwerten verwendet, um festzustellen, ob ein oder mehrere Vorgänge durchzuführen sind (z. B. ob ein jeweiliger Vorgang durchzuführen ist, oder ob auf das Durchführen des jeweiligen Vorgangs zu verzichten ist) anstatt verwendet zu werden, um festzustellen, ob ein erster Vorgang oder ein zweiter Vorgang durchzuführen ist.
  • In manchen Ausführungsformen wird ein Anteil einer Geste für Zwecke eines Feststellens einer charakteristischen Intensität identifiziert. Zum Beispiel empfängt eine berührungsempfindliche Oberfläche einen kontinuierlichen Wischkontakt, der von einem Startort ausgeht und einen Endort erreicht, an dessen Punkt die Intensität des Kontakts zunimmt. Bei diesem Beispiel beruht die charakteristische Intensität des Kontakts an dem Endort auf nur einem Anteil des kontinuierlichen Wischkontakts und nicht dem gesamten Wischkontakt (z. B. nur der Anteil des Wischkontakts an dem Endort). In manchen Ausführungsformen wird vor Feststellen der charakteristischen Intensität des Kontakts ein Glättungsalgorithmus auf die Intensitäten des Wischkontakts angewandt. Zum Beispiel schließt der Glättungsalgorithmus wahlweise eines oder mehrere ein von: einem ungewichteten Glättungsalgorithmus mit gleitendem Durchschnitt, einem dreieckigen Glättungsalgorithmus, einem Medianfilter-Glättungsalgorithmus und/oder einem exponentiellen Glättungsalgorithmus. Unter manchen Umständen beseitigen diese Glättungsalgorithmen schmale Spitzen oder Senken in den Intensitäten des Wischkontakts, um eine charakteristische Intensität zu bestimmen.
  • Die Intensität eines Kontakts auf der berührungsempfindlichen Oberfläche ist relativ zu einem oder mehreren Intensitätsschwellenwerten gekennzeichnet, wie beispielsweise einem Kontakterfassungsintensitätsschwellenwert, einem Leichtdruck-Intensitätsschwellenwert, einem Starkdruck-Intensitätsschwellenwert und/oder einem oder mehreren anderen Intensitätsschwellenwerten. In einigen Ausführungsformen entspricht der Intensitätsschwellenwert des leichten Drucks einer Intensität, bei der die Vorrichtung Vorgänge ausführen wird, die in der Regel mit dem Klicken einer Taste einer physischen Maus oder eines Trackpads verknüpft sind. In einigen Ausführungsformen entspricht der Intensitätsschwellenwert des starken Drucks einer Intensität, bei der die Vorrichtung Vorgänge ausführen wird, die von Vorgängen, die in der Regel mit dem Klicken einer Taste einer physischen Maus oder eines Trackpads verknüpft sind, verschieden sind. Wenn ein Kontakt mit einer charakteristischen Intensität unter dem Leichtdruck-Intensitätsschwellenwert erfasst wird (und z. B. über einem nominalen Kontakterfassungsintensitätsschwellenwert, unter dem ein Kontakt nicht länger erfasst wird), wird in manchen Ausführungsformen die Vorrichtung einen Fokusauswähler gemäß einer Bewegung des Kontakts auf der berührungsempfindlichen Oberfläche bewegen, ohne einen Vorgang durchzuführen, der dem Leichtdruck-Intensitätsschwellenwert oder dem Starkdruck-Intensitätsschwellenwert zugeordnet ist. Sofern nichts Anderweitiges angegeben ist, sind diese Intensitätsschwellenwerte allgemein zwischen verschiedenen Sätzen von Benutzerschnittstellenfiguren konstant.
  • Eine Erhöhung der charakteristischen Intensität des Kontakts von einer Intensität unter dem Leichtdruck-Intensitätsschwellenwert auf eine Intensität zwischen dem Leichtdruck-Intensitätsschwellenwert und dem Starkdruck-Intensitätsschwellenwert wird manchmal als „Leichtdruck“-Eingabe bezeichnet. Eine Erhöhung der charakteristischen Intensität des Kontakts von einer Intensität unter dem Starkdruck-Intensitätsschwellenwert auf eine Intensität über dem Starkdruck-Intensitätsschwellenwert wird manchmal als „Starkdruck“-Eingabe bezeichnet. Eine Erhöhung der charakteristischen Intensität des Kontakts von einer Intensität unter dem Kontakterfassungsintensitätsschwellenwert auf eine Intensität zwischen dem Kontakterfassungsintensitätsschwellenwert und dem Leichtdruck-Intensitätsschwellenwert wird manchmal als Erfassen des Kontakts auf der Berührungsoberfläche bezeichnet. Eine Verringerung der charakteristischen Intensität des Kontakts von einer Intensität über dem Kontakterfassungsintensitätsschwellenwert auf eine Intensität unter dem Kontakterfassungsintensitätsschwellenwert wird manchmal als Erfassen eines Abheben des Kontakts von der Berührungsoberfläche bezeichnet. In manchen Ausführungsformen beträgt der Kontakterfassungsintensitätsschwellenwert null. In manchen Ausführungsformen ist der Kontakterfassungsintensitätsschwellenwert größer als null.
  • In einigen hierin beschriebenen Ausführungsformen werden ein oder mehrere Vorgänge als Reaktion auf das Erfassen einer Handbewegung, die eine jeweilige Druckeingabe einschließt, oder als Reaktion auf das Erfassen der jeweiligen Druckeingabe, die mit einem jeweiligen Kontakt (oder mehreren Kontakten) ausgeführt wird, ausgeführt, wobei die jeweilige Druckeingabe mindestens teilweise basierend auf dem Erfassen einer Zunahme der Intensität des Kontakts (oder der mehreren Kontakte) über einen Intensitätsschwellenwert der Druckeingabe erfasst wird. In einigen Ausführungsformen wird der jeweilige Vorgang als Reaktion auf das Erfassen der Zunahme der Intensität des jeweiligen Kontakts über den Intensitätsschwellenwert der Druckeingabe (z. B. ein „Abwärtsstreichen“ der jeweiligen Druckeingabe) ausgeführt. In einigen Ausführungsformen schließt die Druckeingabe eine Zunahme der Intensität des jeweiligen Kontakts über den Intensitätsschwellenwert der Druckeingabe und eine anschließende Verringerung der Intensität des Kontakts unter den Intensitätsschwellenwert der Druckeingabe ein, und der jeweilige Vorgang wird als Reaktion auf das Erfassen der anschließenden Verringerung der Intensität des jeweiligen Kontakts unter den Intensitätsschwellenwert der Druckeingabe (z. B. ein „Aufwärtsstreichen“ der jeweiligen Druckeingabe) ausgeführt.
  • In manchen Ausführungsformen verwendet die Vorrichtung Intensitätshysteresen, um versehentliche Eingaben, die manchmal „Jitter“ genannt werden, zu vermeiden, wobei die Vorrichtung einen Hystereseintensitätsschwellenwert mit einer vordefinierten Beziehung zum Druckeingabe-Intensitätsschwellenwert definiert oder auswählt (z. B. ist der Hystereseintensitätsschwellenwert X Intensitätseinheiten niedriger als der Druckeingabe-Intensitätsschwellenwert, oder der Hystereseintensitätsschwellenwert beträgt 75 %, 90 % oder einen anderen sinnvollen Anteil des Druckeingabe-Intensitätsschwellenwerts). Folglich schließt in einigen Ausführungsformen die Druckeingabe eine Zunahme der Intensität des jeweiligen Kontakts über den Intensitätsschwellenwert der Druckeingabe und eine anschließende Verringerung der Intensität des Kontakts unter den Hystereseintensitätsschwellenwert ein, der dem Intensitätsschwellenwert der Druckeingabe entspricht, und der jeweilige Vorgang wird als Reaktion auf das Erfassen der anschließenden Verringerung der Intensität des jeweiligen Kontakts unter den Hystereseintensitätsschwellenwert (z. B. ein „Aufwärtsstreichen“ der jeweiligen Druckeingabe) ausgeführt. Auf ähnliche Weise wird in einigen Ausführungsformen die Druckeingabe nur erfasst, wenn die Vorrichtung eine Zunahme der Intensität des Kontakts von einer Intensität am oder unter dem Hystereseintensitätsschwellenwert zu einer Intensität am oder über dem Intensitätsschwellenwert der Druckeingabe und wahlweise eine anschließende Verringerung der Intensität des Kontakts zu einer Intensität am oder unter dem Hystereseintensitätsschwellenwert erfasst, und der jeweilige Vorgang wird als Reaktion auf das Erfassen der Druckeingabe (z. B. die Zunahme der Intensität des Kontakts oder die Verringerung der Intensität des Kontakts, in Abhängigkeit von den Umständen) ausgeführt.
  • Der Einfachheit der Erklärung wegen werden die Beschreibungen von Vorgängen, die als Reaktion auf eine einem Druckeingabe-Intensitätsschwellenwert zugeordneten Druckeingabe oder als Reaktion auf eine Geste, welche die Druckeingabe einschließt, durchgeführt werden, wahlweise als Reaktion auf ein Erfassen durchgeführt von entweder: einer Erhöhung einer Intensität eines Kontakts über den Druckeingabe-Intensitätsschwellenwert, einer Erhöhung einer Intensität eines Kontakts von einer Intensität unter dem Hystereseintensitätsschwellenwert auf eine Intensität über dem Druckeingabe-Intensitätsschwellenwert, einer Verringerung einer Intensität des Kontakts unter den Druckeingabe-Intensitätsschwellenwert und/oder einer Verringerung einer Intensität des Kontakts unter den Hystereseintensitätsschwellenwert, der dem Druckeingabe-Intensitätsschwellenwert entspricht. Darüber hinaus wird in Beispielen, in denen beschrieben wird, dass ein Vorgang als Reaktion auf das Erfassen einer Verringerung der Intensität eines Kontakts unter den Intensitätsschwellenwert der Druckeingabe ausgeführt wird, der Vorgang wahlweise als Reaktion auf das Erfassen einer Verringerung der Intensität des Kontakts unter einen Hystereseintensitätsschwellenwert, der einem Intensitätsschwellenwert der Druckeingabe entspricht und niedriger als dieser ist, ausgeführt.
  • Digitales Assistenzsystem
  • 7A stellt ein Blockdiagramm eines digitalen Assistenzsystems 700 gemäß verschiedenen Beispielen dar. In einigen Beispielen ist das digitale Assistenzsystem 700 auf einem eigenständigen Computersystem implementiert. In einigen Beispielen ist das digitale Assistenzsystem 700 über mehrere Computer verteilt. In einigen Beispielen sind einige der Module und Funktionen des digitalen Assistenten, wie in 1 gezeigt, in einen Server-Teil und einen Client-Teil aufgeteilt, wobei sich der Client-Teil auf einer oder mehreren Benutzervorrichtungen (z. B. den Vorrichtungen 104, 122, 200, 400, 600 oder 800) befindet und mit dem Server-Teil (z. B. Serversystem 108) über eines oder mehrere Netzwerke kommuniziert. In einigen Beispielen ist das digitale Assistenzsystem 700 eine Implementierung des in 1 dargestellten Serversystems 108 (und/oder DA-Server 106). Es sei darauf hingewiesen, dass das digitale Assistenzsystem 700 nur ein Beispiel eines digitalen Assistenzsystems ist, und dass das digitale Assistenzsystem 700 mehr oder weniger Komponenten als dargestellt aufweisen, zwei oder mehr Komponenten kombinieren oder eine andere Konfiguration oder Anordnung der Komponenten aufweisen kann. Die verschiedenen in 7A dargestellten Komponenten sind in Hardware, Softwareanweisungen zur Ausführung durch einen oder mehrere Prozessoren, Firmware, einschließlich einer oder mehrerer Signalverarbeitungsschaltungen und/oder anwendungsspezifischer integrierter Schaltungen oder einer Kombination davon implementiert.
  • Das digitale Assistenzsystem 700 schließt einen Speicher 702, einen oder mehrere Prozessoren 704, eine Eingabe/Ausgabe-Schnittstelle (E/A-Schnittstelle) 706 und eine Netzwerkkommunikationsschnittstelle 708 ein. Diese Komponenten können miteinander über einen oder mehrere Kommunikationsbusse oder eine oder mehrere Signalleitungen 710 kommunizieren.
  • In einigen Beispielen schließt der Speicher 702 ein nichtflüchtiges computerlesbares Medium wie Hochgeschwindigkeitsdirektzugriffsspeicher und/oder ein nichtflüchtiges, computerlesbares Speichermedium (z. B. eine oder mehrere Magnetplattenspeicher, Flash-Speicher oder andere nichtflüchtige Festkörperspeicher) ein.
  • In einigen Beispielen koppelt die E/A-Schnittstelle 706 Eingabe/Ausgabe-Vorrichtungen 716 des digitalen Assistenzsystems 700, wie Anzeigen, Tastaturen, Touchscreens und Mikrofone, mit dem Benutzerschnittstellenmodul 722. Zusammen mit dem Benutzerschnittstellenmodul 722 empfängt die E/A-Schnittstelle 706 Benutzereingaben (z. B. Spracheingaben, Tastatureingaben, Berührungseingaben usw.) und verarbeitet diese entsprechend. In einigen Beispielen, z. B. wenn der digitale Assistent in einer eigenständigen Benutzervorrichtung implementiert ist, schließt das System des digitalen Assistenten 700 beliebige der Komponenten und E/A- und Kommunikationsschnittstellen ein, die in Bezug auf die Vorrichtungen 200, 400, 600 oder 800 in 2A, 4, 6A-B bzw. 8A-E beschrieben sind. In einigen Beispielen stellt das System des digitalen Assistenten 700 den Serverabschnitt einer Implementierung des digitalen Assistenten dar und interagiert mit dem Benutzer durch einen clientseitigen Abschnitt auf einer Benutzervorrichtung (z. B. den Vorrichtungen 104, 200, 400, 600 oder 800).
  • In einigen Beispielen schließt die Netzwerkkommunikationsschnittstelle 708 drahtgebundene Kommunikationsanschlüsse 712 und/oder drahtlose Übertragungs- und Empfangsschaltungen 714 ein. Die drahtgebundenen Kommunikationsanschlüsse empfangen und senden Kommunikationssignale über eine oder mehrere drahtgebundene Schnittstellen wie Ethernet, USB (Universal Serial Bus), FIREWIRE usw. Der drahtlose Schaltkreis 714 sendet HF-Signale und/oder optische Signale an Kommunikationsnetzwerke und andere Kommunikationsvorrichtungen bzw. empfängt sie von diesen. Die drahtlose Kommunikation verwendet beliebige von einer Vielzahl von Kommunikationsstandards, Protokollen und Technologien wie GSM, EDGE, CDMA, TDMA, Bluetooth, Wi-Fi, VoIP, Wi-MAX oder jedes andere geeignete Kommunikationsprotokoll. Die Netzwerkkommunikationsschnittstelle 708 ermöglicht die Kommunikation zwischen dem digitalen Assistenzsystem 700 und Netzwerken wie dem Internet, einem Intranet und/oder einem drahtlosen Netzwerk wie einem Mobiltelefonnetzwerk, einem drahtlosen lokalen Netzwerk (LAN) und/oder einem innerstädtischen Netzwerk (MAN) und anderen Vorrichtungen.
  • In einigen Beispielen speichert der Speicher 702 oder das computerlesbare Speichermedium von Speicher 702 Programme, Module, Anweisungen und Datenstrukturen, darunter alle oder einen Teilsatz von: Betriebssystem 718, Kommunikationsmodul 720, Benutzerschnittstellenmodul 722, einer oder mehreren Anwendungen 724 und dem Modul des digitalen Assistenten 726. Insbesondere speichert der Speicher 702 oder das computerlesbare Speichermedium des Speichers 702 Anweisungen zum Durchführen der Prozesse, die weiter unten beschrieben sind. Ein oder mehrere Prozessoren 704 führen diese Programme, Module und Anweisungen aus und lesen von den Datenstrukturen bzw. schreiben darauf.
  • Das Betriebssystem 718 (z. B. Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS oder ein eingebettetes Betriebssystem wie VxWorks) beinhaltet verschiedene Softwarekomponenten und/oder Treiber zum Steuern und Verwalten allgemeiner Systemaufgaben (z. B. Speicherverwaltung, Speichervorrichtungssteuerung, Stromverwaltung usw.) und ermöglicht die Kommunikationen zwischen verschiedenen Hardware-, Firmware- und Softwarekomponenten.
  • Das Kommunikationsmodul 720 ermöglicht die Kommunikation zwischen dem digitalen Assistenzsystem 700 und anderen Vorrichtungen über die Netzwerkkommunikationsschnittstelle 708. Das Kommunikationsmodul 720 kommuniziert beispielsweise mit der HF-Schaltung 208 von elektronischen Vorrichtungen, wie etwa den Vorrichtungen 200, 400 und 600 wie in 2A, 4 bzw. 6A-B gezeigt. Das Kommunikationsmodul 720 weist auch verschiedene Komponenten zur Verarbeitung von Daten auf, die über die drahtlose Schaltung 714 und/oder den kabelgebundenen Kommunikations-Anschluss 712 empfangen werden.
  • Das Benutzerschnittstellenmodul 722 empfängt Befehle und/oder Eingaben von einem Benutzer über die E/A-Schnittstelle 706 (z. B. von einer Tastatur, einem Touchscreen, einer Zeigevorrichtung, einer Steuerung und/oder einem Mikrofon) und erzeugt Benutzerschnittstellenobjekte auf einer Anzeige. Das Benutzerschnittstellenmodul 722 erstellt und liefert auch Ausgaben (z. B. Sprache, Ton, Animation, Text, Symbole, Vibrationen, haptisches Feedback, Licht usw.) über die E/A-Schnittstelle 706 (z. B. durch Anzeigen, Audiokanäle, Lautsprecher, Touchpads usw.) an den Benutzer.
  • Die Anwendungen 724 schließen Programme und/oder Module ein, die für die Ausführung durch einen oder mehrere Prozessoren 704 konfiguriert sind. Wenn das digitale Assistenzsystem in einer eigenständigen Benutzervorrichtung implementiert wird, schließen die Anwendungen 724 z. B. Benutzeranwendungen wie Spiele, eine Kalenderanwendung, eine Navigationsanwendung oder eine E-Mail-Anwendung ein. Wenn das digitale Assistenzsystem 700 auf einem Server implementiert wird, schließen die Anwendungen 724 z. B. Ressourcenverwaltungsanwendungen, Diagnoseanwendungen oder Planungsanwendungen ein.
  • Der Speicher 702 speichert auch das Modul des digitalen Assistenten 726 (oder den Serverabschnitt eines digitalen Assistenten). In einigen Beispielen schließt das Modul des digitalen Assistenten 726 die folgenden Untermodule oder einen Teilsatz oder eine Übermenge von Folgendem ein: ein Eingabe- und Ausgabeverarbeitungsmodul 728, ein Sprache-zu-Text-Verarbeitungsmodul (STT-Verarbeitungsmodul) 730, ein Verarbeitungsmodul für natürliche Sprache 732, ein Dialogflussverarbeitungsmodul 734, ein Task-Flow-Verarbeitungsmodul 736, ein Dienstverarbeitungsmodul 738 und ein Sprachsyntheseverarbeitungsmodul 740. Jedes dieser Module hat Zugang zu einem oder mehreren der folgenden Systeme oder Daten und Modelle des digitalen Assistenzmoduls 726 oder einer Teilmenge oder eine Übermenge des Folgenden: Ontologie 760, Wörterverzeichnis 744, Benutzerdaten 748, Task-Flow-Modelle 754, Dienst-Modelle 756 und ASR-Systeme 758.
  • In einigen Beispielen führt unter Verwendung der Verarbeitungsmodule, Daten und Modelle, die im Modul des digitalen Assistenten 726 implementiert sind, der digitale Assistent mindestens einige der Folgenden aus: Umwandeln von Spracheingabe in Text; Identifizieren einer Absicht eines Benutzers, die in einer Eingabe natürlicher Sprache ausgedrückt ist, die vom Benutzer empfangen wird; aktives Abrufen und Erhalten von Informationen, die zum vollständigen Ableiten der Absicht des Benutzers erforderlich sind (z. B. indem Wörter, Spiele, Intentionen usw. eindeutig gemacht werden); Bestimmen des Task-Flow zum Erfüllen der abgeleiteten Absicht; und Ausführen des Task-Flow, um die abgeleitete Absicht zu erfüllen.
  • In einigen Ausführungsformen, wie in 7B gezeigt, interagiert das E/A-Verarbeitungsmodul 728 durch die E/A-Vorrichtungen 716 in 7A mit dem Benutzer oder mit einer Benutzervorrichtung (z. B. Vorrichtungen 104, 200, 400 oder 600) durch die Netzwerkkommunikationsschnittstelle 708 in 7A, um eine Benutzereingabe (z. B. eine Spracheingabe) zu erhalten und Antworten (z. B. als Sprachausgaben) auf die Benutzereingabe bereitzustellen. Das E/A-Verarbeitungsmodul 728 erhält während oder kurz nach Empfang der Benutzereingabe wahlweise Kontextinformationen, die mit der Benutzereingabe von der Benutzervorrichtung verknüpft sind. Die Kontextinformationen schließen benutzerspezifische Daten, Vokabular und/oder Präferenzen ein, die für die Benutzereingabe relevant sind. In einigen Beispielen schließen die Kontextinformationen auch den Software- und Hardwarestatus der Benutzervorrichtung zum Zeitpunkt des Empfangs der Benutzeranforderung und/oder Informationen bezüglich der Umgebung des Benutzers zum Zeitpunkt des Empfangs der Benutzeranforderung ein. In einigen Beispielen sendet das E/A-Verarbeitungsmodul 728 auch Nachfolgefragen an den Benutzer und empfängt Antworten von dem Benutzer bezüglich der Benutzeranfragen. Wenn eine Benutzeranfrage vom E/A-Verarbeitungsmodul 728 empfangen wird und die Benutzeranfrage eine Spracheingabe einschließt, leitet das E/A-Verarbeitungsmodul 728 die Spracheingabe an das STT-Verarbeitungsmodul 730 (oder Spracherkennung) für eine Umwandlung von Sprache in Text weiter.
  • Das SST-Verarbeitungsmodul 730 schließt ein oder mehrere ASR-Systeme 758 ein. Das eine oder die mehreren ASR-Systeme 758 können die Spracheingabe verarbeiten, die über das E/A-Verarbeitungsmodul 728 empfangen wird, um ein Erkennungsergebnis zu erzeugen. Jedes ASR-System 758 schließt einen Front-End-Sprachpräprozessor ein. Der Front-End-Sprachpräprozessor extrahiert typische Merkmale aus der Spracheingabe. Zum Beispiel führt der Front-End-Sprachpräprozessor eine Fourier-Transformation an der Spracheingabe durch, um spektrale Merkmale zu extrahieren, die die Spracheingabe als eine Sequenz von typischen mehrdimensionalen Vektoren kennzeichnen. Ferner schließt jedes ASR-System 758 ein oder mehrere Spracherkennungsmodelle (z. B. Akustikmodelle und/oder Sprachmodelle) ein und implementiert ein oder mehrere Spracherkennungsmodule. Beispiele für Spracherkennungsmodelle schließen Hidden Markov-Modelle, Gaußsche Mischmodelle, Deep Neural Network-Modelle, N-Gramm-Sprachmodelle und weitere statistische Modelle ein. Beispiele von Spracherkennungsmodulen schließen die DTW-basierten Module (Dynamic Time Warping) und WFST-basierten Module (Weighted Finite-State Transducer) ein. Das eine oder die mehreren Spracherkennungsmodelle und die eine oder die mehreren Spracherkennungsmodule werden verwendet, um die extrahierten repräsentativen Funktionen des Front-End-Sprachpräprozessors zu verarbeiten, um Zwischenerkennungsergebnisse (z. B. Phoneme, Phonemfolgen und Unterbegriffe) und letztendlich Texterkennungsergebnissen (z. B. Wörter, Wortfolgen oder eine Tokenfolge) zu erzeugen. In einigen Beispielen wird die Spracheingabe mindestens teilweise durch einen Drittanbieterdienst oder auf der Vorrichtung des Benutzers (z. B. Vorrichtung 104, 200, 400 oder 600) verarbeitetet, um die Erkennungsergebnisse zu erzielen. Sobald das STT-Verarbeitungsmodul 730 Erkennungsergebnisse mit einer Textzeichenfolge (z. B. Wörter oder Wortfolgen oder Tokenfolgen) erzeugt, wird das Erkennungsergebnis zur Ableitung der Absicht an das Verarbeitungsmodul für natürliche Sprache 732 weitergeleitet. In einigen Beispielen erzeugt das STT-Verarbeitungsmodul 730 mehrere Kandidatentextdarstellungen der Spracheingabe. Jede Kandidatentextdarstellung ist eine Sequenz von Wörtern oder Token, die der Spracheingabe entspricht. In einigen Beispielen ist jede Kandidatentextdarstellung mit einem Vertrauenswert für die Spracherkennung verknüpft. Basierend auf den Vertrauenswerten der Spracherkennung ordnet das STT-Verarbeitungsmodul 730 die Kandidatentextdarstellungen ein und stellt die n-besten (z. B. n am höchsten eingestuften) Kandidatentextdarstellungen dem Verarbeitungsmodul für natürliche Sprache 732 zur Ableitung der Absicht zur Verfügung, wobei n eine vorbestimmte ganze Zahl größer als Null ist. In einem Beispiel wird beispielsweise nur die am höchsten eingestufte (n=1) Kandidatentextdarstellung an das Verarbeitungsmodul für natürliche Sprache 732 zur Absichtsableitung weitergeleitet. In einem anderen Beispiel werden die fünf Kandidatentextdarstellungen mit der höchsten Rangordnung (n=5) an das Verarbeitungsmodul für natürliche Sprache 732 zur Absichtsableitung weitergeleitet.
  • Weitere Details zur Sprache-zu-Text-Verarbeitung sind in der US-Gebrauchsmusteranmeldung Eingangs-Nr. 13/236,942 mit dem Titel „Consolidating Speech Recognition Results“, eingereicht am 20. September 2011, deren gesamte Offenbarung durch Bezugnahme hierin eingeschlossen ist, beschrieben.
  • In einigen Beispielen schließt das STT-Verarbeitungsmodul 730 ein Vokabular erkennbarer Wörter über ein phonetisches Alphabet-Umwandlungsmodul 731 ein und/oder greift darauf zu. Jedes Wort im Vokabular ist mit einer oder mehreren möglichen Aussprachen des Worts verknüpft, die in einer Lautschrift zur Spracherkennung vertreten sind. Insbesondere schließt das Vokabular erkennbarer Wörter ein Wort ein, das mit einer Vielzahl möglicher Aussprachen verknüpft ist. Das Vokabular schließt beispielsweise das Wort „tomato“ ein, das mit der möglichen Aussprache /tə'meɪɾoʊ/ und /tə'matoʊ/ verknüpft ist. Ferner sind Vokabularwörter mit benutzerdefinierten möglichen Aussprachen verknüpft, die auf vorangegangenen Spracheingaben des Benutzers basieren. Solche benutzerdefinierten möglichen Aussprachen sind im STT-Verarbeitungsmodul 730 gespeichert und über das Benutzerprofil auf der Vorrichtung einem bestimmten Benutzer zugeordnet. In manchen Beispielen werden die möglichen Aussprachen von Wörtern basierend auf der Schreibweise des Worts und einer oder mehreren linguistischen und/oder phonetischen Regeln bestimmt. In manchen Beispielen werden die möglichen Aussprachen manuell erzeugt, z. B. basierend auf bekannten anerkannten Aussprachen.
  • In manchen Beispielen werden die möglichen Aussprachen basierend auf der Häufigkeit der möglichen Aussprache eingestuft. Die mögliche Aussprache /tə'meɪɾoʊ/ wird beispielsweise höher eingeordnet als /tə'matoʊ/, da erstere die üblichere Aussprache ist (z. B. bei allen Benutzern, bei Benutzern in einem bestimmten geographischen Bereich oder für eine andere geeignete Benutzerteilmenge). In einigen Beispielen wird die mögliche Aussprache auf der Basis dessen eingeordnet, ob die mögliche Aussprache eine benutzerdefinierte mögliche Aussprache ist, die dem Benutzer zugeordnet wurde. Eine benutzerdefinierte mögliche Aussprache wird beispielsweise höher eingeordnet als eine anerkannte mögliche Aussprache. Dies kann hilfreich bei der Erkennung von Eigennamen mit einer einzigartigen Aussprache sein, die von der anerkannten Aussprache abweicht. In einigen Beispielen wird eine mögliche Aussprache einer oder mehreren Spracheigenschaften, wie einer geografischen Herkunft, einer Nationalität oder einer ethnischen Zugehörigkeit, zugeordnet. Die mögliche Aussprache /tə'meɪɾoʊ/ ist beispielsweise mit den Vereinigten Staaten verbunden, wohingegen die mögliche Aussprache /tə'matoʊ/ mit Großbritannien verbunden wird. Ferner basiert die Rangfolge der möglichen Aussprache auf einer oder mehreren Eigenschaften des Benutzers (z. B. der geografischen Herkunft, der Nationalität, ethnischen Zugehörigkeit usw.), die im Profil des Benutzers der Vorrichtung gespeichert sind. Anhand des Benutzerprofils lässt sich beispielsweise feststellen, dass der Benutzer mit den Vereinigten Staaten verbunden ist. Basierend auf dem Benutzer, der mit den Vereinigten Staaten verbunden ist, wird die mögliche Aussprache /tə'meɪɾoʊ/ (verbunden mit den Vereinigten Staaten) höher eingeordnet als die mögliche Aussprache /tə'matoʊ/ (verbunden mit Großbritannien). In einigen Beispielen wird eine der eingeordneten möglichen Aussprachen als vorhergesagte Aussprache (z. B. die wahrscheinlichste Aussprache) ausgewählt.
  • Wenn eine Spracheingabe empfangen wird, wird das STT-Verarbeitungsmodul 730 dazu verwendet, die Phoneme zu bestimmen, die der Spracheingabe entsprechen (z. B. mithilfe eines akustischen Modells), und dann versuchen, Worte festzustellen, die den Phonemen entsprechen (z. B. mittels eines Sprachmodells). Wenn beispielsweise STT-Verarbeitungsmodul 730 zuerst die Sequenz von Phonemen /tə'meɪɾoʊ/ identifiziert, die einem Teil der Spracheingabe entsprechen, kann es anhand des Wörterverzeichnisses 744 feststellen, dass diese Sequenz dem Wort „tomato“ entspricht.
  • In einigen Beispielen verwendet das STT-Verarbeitungsmodul 730 Techniken zur annähernden Zuordnung, um Wörter in einer Aussage zu bestimmen. So bestimmt das STT-Verarbeitungsmodul 730 beispielsweise, dass die Phonemsequenz /tə'meɪɾoʊ/ dem Wort „tomato“ entspricht, auch wenn diese bestimmte Phonemsequenz nicht zu den möglichen Phonemsequenzen für dieses Wort gehört.
  • Das Verarbeitungsmodul für natürliche Sprache 732 („Prozessor für natürliche Sprache“) des digitalen Assistenten nimmt die n-beste(n) Kandidatentextdarstellung(en) („Wortfolge(n)“ oder „Tokenfolge(n)“), die vom STT-Verarbeitungsmodul 730 erzeugt wurden, und versucht jede der Kandidatentextdarstellungen mit einer oder mehreren vom digitalen Assistenten erkannten „durchführbaren Absichten“ zu verbinden. Eine „durchführbare Absicht“ (oder „Benutzerabsicht“) steht für eine Aufgabe, die vom digitalen Assistenten durchgeführt werden kann, und kann einen damit verbundenen Task-Flow aufweisen, der in den Task-Flow-Modellen 754 implementiert sein kann. Der damit verbundene Task-Flow ist eine Folge programmierter Aktionen und Schritte, die der digitale Assistent unternimmt, um den Task auszuführen. Der Umfang der Fähigkeiten eines digitalen Assistenten hängt von der Anzahl und Vielzahl von Task-Flows ab, die implementiert und in Task-Flow-Modellen 754 gespeichert wurden, oder mit anderen Worten von der Anzahl und Vielzahl „durchführbarer Absichten“, die dem digitalen Assistenten bekannt sind. Die Effektivität des digitalen Assistenten hängt jedoch auch von der Fähigkeit des Assistenten zum Ableiten der korrekten „durchführbaren Absichten“ aus der in natürlicher Sprache ausgedrückten Benutzeranfragen ab.
  • In einigen Beispielen empfängt das Verarbeitungsmodul für natürliche Sprache 732 zusätzlich zu der vom STT-Verarbeitungsmodul 730 erhaltenen Wörter- oder Tokenfolge auch Kontextinformationen, die mit der Benutzeranfrage (z. B. vom E/A-Verarbeitungsmodul 728) verbunden sind. Das Verarbeitungsmodul für natürliche Sprache 732 verwendet die Kontextinformationen wahlweise zum Klären, Ergänzen und/oder weiteren Definieren der Informationen, die in der vom STT-Verarbeitungsmodul 730 empfangenen Kandidatentextdarstellung enthalten sind. Die Kontextinformationen schließen z. B. Benutzerpräferenzen, den Hardware- und/oder Software-Status der Benutzervorrichtung, während oder kurz nach der Benutzeranfrage erfasste Sensorinformationen, frühere Interaktionen (z. B. Dialog) zwischen dem digitalen Assistenten und dem Benutzer und dergleichen ein. Wie hierin beschrieben, sind Kontextinformationen in einigen Beispielen dynamisch und verändern sich mit der Zeit, je nach Standort oder nach Inhalt des Dialogs und anderen Faktoren.
  • Bei einigen Beispielen basiert die Verarbeitung natürlicher Sprache z. B. auf einer Ontologie 760. Die Ontologie 760 ist eine hierarchische Struktur mit einer Vielzahl von Knoten, wobei jeder Knoten entweder eine „durchführbare Absicht“ oder eine „Eigenschaft“ repräsentiert, welche für eine oder mehrere dieser „durchführbaren Absichten“ oder „Eigenschaften“ relevant ist. Wie weiter oben angegeben, stellt eine „durchführbare Absicht“ eine Aufgabe dar, die der digitale Assistent durchführen kann, d. h. sie ist „durchführbar“ oder es kann auf sie reagiert werden. Eine „Eigenschaft“ steht für einen Parameter, der mit einer durchführbaren Absicht oder einem Unteraspekt einer anderen Eigenschaft verbunden ist. Eine Verbindung zwischen einem Knoten mit durchführbarer Absicht und einem Eigenschaftsknoten in Ontologie 760 definiert, wie ein durch den Eigenschaftsknoten dargestellter Parameter zu der durch den Knoten mit umsetzbarer Absicht dargestellten Aufgabe gehört.
  • In einigen Beispielen besteht die Ontologie 760 aus Knoten einer durchführbaren Absicht und Eigenschaftsknoten. Innerhalb der Ontologie 760 ist jeder Knoten einer durchführbaren Absicht entweder direkt oder durch einen oder mehrere dazwischen liegende Eigenschaftsknoten mit einem oder mehreren Eigenschaftsknoten verbunden. Ähnlich ist jeder Eigenschaftsknoten entweder direkt oder durch einen oder mehrere dazwischen liegende Eigenschaftsknoten mit einem oder mehreren Knoten einer durchführbaren Absicht verbunden. Zum Beispiel schließt die Ontologie 760, wie in 7C gezeigt, einen Knoten „Restaurantreservierung“ ein (d. h. einen Knoten einer durchführbaren Absicht). Die Eigenschaftsknoten „Restaurant“, „Datum/Uhrzeit“ (für die Reservierung) und „Gästezahl“ sind jeweils direkt mit dem Knoten einer durchführbaren Absicht (d. h. dem Knoten „Restaurantreservierung“) verbunden.
  • Zusätzlich sind die Eigenschaftsknoten „Küche“, „Preisbereich“, „Telefonnummer“ und „Ort“ Unternetzknoten des Eigenschaftsknotens „Restaurant“ und sind jeweils durch den dazwischenliegenden Eigenschaftsknoten „Restaurant“ mit dem Knoten „Restaurantreservierung“ verbunden (d. h. mit dem Knoten für durchführbare Absicht). In einem weiteren Beispiel schließt die Ontologie 760, wie in 7C gezeigt, auch einen Knoten „Erinnerung festlegen“ ein (d. h. einen weiteren Knoten einer durchführbaren Absicht). Die Eigenschaftsknoten „Datum/Uhrzeit“ (zum Festlegen der Erinnerung) und „Betreff“ (für die Erinnerung) sind jeweils mit dem Knoten „Erinnerung festlegen“ verbunden. Da die Eigenschaft „Datum/Uhrzeit“ sowohl für die Aufgabe des Vornehmens einer Restaurantreservierung als auch die Aufgabe des Festlegens einer Erinnerung relevant ist, ist der Eigenschaftsknoten „Datum/Uhrzeit“ in der Ontologie 760 sowohl mit dem Knoten „Restaurantreservierung“ als auch mit dem Knoten „Erinnerung festlegen“ verbunden.
  • Ein Knoten für durchführbare Absichten kann, zusammen mit seinen verknüpften Eigenschaftsknoten, als „Domäne“ beschrieben werden. In der vorliegenden Erörterung ist jede Domäne einer entsprechenden durchführbaren Absicht zugeordnet und bezieht sich auf eine Gruppe von Knoten (und ihre Beziehungen zueinander), die mit der bestimmten umsetzbaren Absicht verbunden sind. Zum Beispiel schließt die in 7C gezeigte Ontologie 760 ein Beispiel einer Restaurantreservierungsdomäne 762 und ein Beispiel einer Erinnerungsdomäne 764 innerhalb der Ontologie 760 ein. Die Restaurantreservierungsdomäne schließt den Knoten für durchführbare Absichten „Restaurantreservierung“, die Eigenschaftsknoten „Restaurant“, „Datum/Zeit“ und „Gruppengröße“ und die Eigenschaftsunterknoten „Küche“, „Preisbereich“, „Telefonnummer“ und „Ort“ ein. Die Erinnerungsdomäne 764 schließt den Knoten für durchführbare Absichten „Erinnerung festlegen“ und die Eigenschaftsknoten „Betreff“ und „Datum/Zeit“ ein. Bei einigen Beispielen ist die Ontologie 760 aus vielen Domänen zusammengesetzt. Jede Domäne teilt einen oder mehrere Eigenschaftsknoten mit einer oder mehreren anderen Domänen. Zum Beispiel ist der Eigenschaftsknoten „Datum/Uhrzeit“ mit vielen unterschiedlichen Domänen (z. B. einer Terminplandomäne, einer Reisereservierungsdomäne, einer Kinokartendomäne usw.) zusätzlich zur Restaurantreservierungsdomäne 762 und der Erinnerungsdomäne 764 verbunden.
  • Obwohl 7C zwei beispielhafte Domänen innerhalb der Ontologie 760 zeigt, schließen andere Domänen z. B. „Film suchen“, „Anruf tätigen“, „Wegbeschreibung“, „Termin planen“, „Nachricht senden“ und „Frage beantworten“, „Liste lesen“, „Navigationsanweisung geben“, „Anweisungen für einen Task geben“ und so weiter ein. Eine „Nachricht senden“-Domäne ist einem Knoten für durchführbare Absichten „Nachricht senden“ zugeordnet und schließt zudem Eigenschaftsknoten wie „Empfänger“, „Art der Nachricht“ und „Textkörper“ ein. Der Eigenschaftsknoten „Empfänger“ wird weiter definiert, z. B. durch Eigenschaftsunterknoten wie „Name des Empfängers“ und „Nachrichtenadresse“.
  • In einigen Beispielen schließt die Ontologie 760 alle Domänen (und somit durchführbaren Absichten) ein, die der digitale Assistent verstehen und bearbeiten kann. Bei einigen Beispielen wird die Ontologie 760 modifiziert, z. B. durch Hinzufügen oder Entfernen von Domänen oder Knoten oder durch das Modifizieren von Verhältnissen zwischen den Knoten innerhalb der Ontologie 760.
  • In einigen Beispielen werden Knoten, die im Zusammenhang mit mehreren betreffenden durchführbaren Absichten stehen, in der Ontologie 760 unter einer „Überdomäne“ zu einem Cluster zusammengefasst. Zum Beispiel schließt eine Überdomäne „Reise“ einen Cluster von Eigenschaftsknoten und Knoten von durchführbaren Absichten ein, die mit Reisen in Verbindung stehen. Die Knoten einer durchführbaren Absicht, die Reisen betreffen, schließen „Flugreservierung“, „Hotelreservierung“, „Autovermietung“, „Wegbeschreibung erhalten“, „Sehenswürdigkeiten finden“ und so weiter ein. Die Knoten einer durchführbaren Absicht unter derselben Überdomäne (z. B. der Überdomäne „Reisen“) haben viele Eigenschaftsknoten gemeinsam. Zum Beispiel teilen die Knoten von durchführbaren Absichten für „Flugreservierung“, „Hotelreservierung“, „Autovermietung“, „Wegbeschreibung erhalten“, „Sehenswürdigkeiten finden“ einen oder mehrere der Eigenschaftsknoten „Startpunkt“ „Zielort“, „Abfahrtsdatum/-zeit“, „Ankunftsdatum/-zeit“ und „Gruppengröße“.
  • In einigen Beispielen ist jeder Knoten in der Ontologie 760 mit einer Gruppe von Wörtern und/oder Phrasen verbunden, die für die Eigenschaft oder die durchführbare Absicht, die der Knoten darstellt, relevant sind. Die jeweilige Gruppe von Wörtern und/oder Phrasen, die in Zusammenhang mit dem jeweiligen Knoten stehen, ist das sogenannte „Vokabular“, das dem Knoten zugeordnet ist. Die jeweilige Gruppe von Wörtern und/oder Phrasen im Zusammenhang mit dem jeweiligen Knoten ist im Wörterverzeichnis 744 in Verbindung mit der Eigenschaft oder der durchführbaren Absicht, die der Knoten darstellt, gespeichert. Zum Beispiel schließt, zu 7B zurückkehrend, das Vokabular, das mit dem Eigenschaftsknoten „Restaurant“ verknüpft ist, Wörter wie „Essen“, „Trinken“, „Küche“, „hungrig“, „essen“, „Pizza“, „Fast Food“, „Mahlzeit“ usw. ein. Als ein weiteres Beispiel schließt das Vokabular, das dem Knoten für die durchführbaren Absicht „Anruf tätigen“ zugeordnet ist, Wörter und Phrasen wie „anrufen“, „telefonieren“, „wählen“, „klingeln“, „diese Nummer anrufen“, „anrufen bei“ usw. ein. Das Wörterverzeichnis 744 schließt wahlweise Wörter und Phrasen in verschiedenen Sprachen ein.
  • Das Verarbeitungsmodul für natürliche Sprache 732 empfängt die Kandidatentextdarstellungen (z. B. Textzeichenfolge(n) oder Tokenfolge(n)) vom STT-Verarbeitungsmodul 730 und bestimmt für jede Kandidatendarstellung, welche Knoten durch die Wörter in der Kandidatentextdarstellung impliziert werden. In einigen Beispielen werden diese Knoten durch das Wort oder die Phrase „ausgelöst“ oder „aktiviert“, wenn festgestellt wird, dass ein Wort oder eine Phrase in der Kandidatentextdarstellung einem oder mehreren Knoten in der Ontologie 760 zugeordnet ist (über das Wörterverzeichnis 744). Auf der Grundlage der Menge und/oder der relativen Wichtigkeit der aktivierten Knoten wählt das Verarbeitungsmodul für natürliche Sprache 732 eine der durchführbaren Absichten als die Aufgabe aus, die der Benutzer zum Durchführen durch den digitalen Assistenten beabsichtigte. In einigen Beispielen wird die Domäne ausgewählt, die die meisten „ausgelösten“ Knoten aufweist. In einigen Beispielen wird die Domäne mit dem höchsten Vertrauenswert (z. B. auf Grundlage der relativen Wichtigkeit ihrer verschiedenen ausgelösten Knoten) ausgewählt. In einigen Beispielen wird die Domäne auf Grundlage einer Kombination der Nummer und der Wichtigkeit der ausgelösten Knoten ausgewählt. In manchen Beispielen werden beim Auswählen des Knotens auch zusätzliche Faktoren berücksichtigt, z. B. ob der digitale Assistent eine ähnliche Anfrage von einem Benutzer zuvor korrekt interpretiert hat.
  • Die Benutzerdaten 748 enthalten benutzerspezifische Informationen wie benutzerspezifisches Vokabular, Benutzerpräferenzen, Benutzeradresse, Benutzervorgaben und Zweitsprachen, die Kontaktliste des Benutzers und andere kurz- und langfristige Informationen für jeden Benutzer. Das Verarbeitungsmodul für natürliche Sprache 732 verwendet in einigen Beispielen benutzerspezifische Informationen, um Informationen zu ergänzen, die in der Benutzereingabe enthalten sind, um die Absicht des Benutzers weitergehend zu definieren. Zum Beispiel greift für eine Benutzeranfrage „Freunde zu Geburtstagsfeier einladen“ das Verarbeitungsmodul für natürliche Sprache 732 auf Benutzerdaten 748 zu, um zu bestimmen, wer die „Freunde“ sind, und wann und wo die „Geburtstagsfeier“ stattfinden soll, statt dass der Benutzer solche Informationen explizit in seiner Anfrage bereitstellen muss.
  • Es ist zu beachten, dass das Verarbeitungsmodul für natürliche Sprache 732 in einigen Beispielen unter Verwendung von einem oder mehreren Maschinenlernmechanismen (z. B. neuronalen Netzwerken) implementiert ist. Insbesondere sind der eine oder die mehreren maschinellen Lernmechanismen so konfiguriert, dass sie eine Kandidatentextdarstellung und Kontextinformationen empfangen, die der Kandidatentextdarstellung zugeordnet sind. Basierend auf der Kandidatentextdarstellung und den zugeordneten kontextbezogenen Informationen sind der eine oder die mehreren Maschinenlernmechanismen konfiguriert, um Absichts-Vertrauenswerte über einen Satz von in Frage kommenden durchführbaren Absichten zu bestimmen. Das Verarbeitungsmodul für natürliche Sprache 732 kann basierend auf den ermittelten Vertrauenswerten einen oder mehrere in Frage kommende durchführbare Absichten aus dem Satz von in Frage kommenden durchführbaren Absichten auswählen. In einigen Beispielen wird auch eine Ontologie (z. B. Ontologie 760) verwendet, um den einen oder die mehreren in Frage kommenden durchführbare Absichten aus dem Satz von in Frage kommenden durchführbaren Absichten auszuwählen.
  • Weitere Details zum Durchsuchen einer Ontologie basierend auf einer Tokenzeichenfolge werden in der US-Gebrauchsmusteranmeldung Eingangs-Nr. 12/341,743 mit dem Titel „Method and Apparatus for Searching Using An Active Ontology“, eingereicht am 22. Dezember 2008, deren gesamte Offenbarung durch Bezugnahme hierin eingeschlossen ist, beschrieben.
  • Sobald das Verarbeitungsmodul für natürliche Sprache 732 eine durchführbare Absicht (oder Domäne) auf Grundlage der Benutzeranfrage identifiziert, erzeugt das Verarbeitungsmodul für natürliche Sprache 732 in einigen Ausführungsformen eine strukturierte Abfrage, um die identifizierte durchführbare Absicht darzustellen. In einigen Beispielen weist die strukturierte Abfrage Parameter für einen oder mehrere Knoten innerhalb der Domäne für die durchführbare Absicht auf und mindestens einige der Parameter sind mit den spezifischen Informationen und Erfordernissen, die in der Benutzeranforderung spezifiziert sind, gefüllt. Zum Beispiel sagt der Benutzer: „Mach eine Reservierung um 7 in einem Sushi-Restaurant.“ In diesem Fall identifiziert das Verarbeitungsmodul für natürliche Sprache 732 auf Grundlage der Benutzereingabe die durchführbare Absicht korrekt als „Restaurantreservierung“. Gemäß der Ontologie schließt eine strukturierte Abfrage für eine Domäne „Restaurantreservierung“ Parameter wie {Küche}, {Uhrzeit}, {Datum}, {Gästezahl} und dergleichen ein. In einigen Beispielen generiert, basierend auf der Spracheingabe und dem aus der Spracheingabe mithilfe des STT-Verarbeitungsmoduls 730 abgeleiteten Textes, das Verarbeitungsmodul für natürliche Sprache 732 eine partielle strukturierte Abfrage für die Restaurantreservierungsdomäne, wobei die partielle strukturierte Abfrage die Parameter {Küche = „Sushi“) und {Zeit = „19:00“) enthält. Dennoch enthält in diesem Beispiel die Aussage des Benutzers keine ausreichenden Informationen, um die mit der Domäne verbundene strukturierte Abfrage abzuschließen. Deshalb sind andere notwendige Parameter wie {Gruppengröße} und {Datum} in der strukturierten Abfrage aufgrund der gegenwärtig verfügbaren Informationen nicht festgelegt. In einigen Beispielen füllt das Verarbeitungsmodul für natürliche Sprache 732 einige Parameter der strukturierten Abfrage mit empfangenen Kontextinformationen. Wenn z. B. der Benutzer ein Sushi-Restaurant „in der Nähe“ anfragt, trägt das Verarbeitungsmodul für natürliche Sprache 732 einen {Ort}-Parameter in der strukturierten Abfrage mit GPS-Koordinaten von der Benutzervorrichtung ein.
  • In einigen Beispielen identifiziert das Verarbeitungsmodul für natürliche Sprache 732 mehrere in Frage kommende durchführbare Absichten für jede Kandidatentextdarstellung, die von dem STT-Verarbeitungsmodul 730 empfangen wird. Ferner wird in einigen Beispielen eine entsprechende strukturierte Abfrage (teilweise oder vollständig) für jede identifizierte in Frage kommende durchführbare Absicht erzeugt. Das Verarbeitungsmodul für natürliche Sprache 732 bestimmt einen Absichts-Vertrauenswert für jede in Frage kommende durchführbare Absicht und ordnet die in Frage kommenden durchführbaren Absichten auf Grundlage des Absichts-Vertrauenswertes zu. Bei einigen Beispielen leitet das Verarbeitungsmodul für natürliche Sprache 732 die erzeugte strukturierte Abfrage (oder Abfragen), einschließlich jedes vollständigen Parameters, an das Task-Flow-Verarbeitungsmodul 736 („Task-Flow-Prozessor“) weiter. In einigen Beispielen wird die strukturierte Abfrage (oder Abfragen) für die m besten (z. B. m am höchsten eingestuften) in Frage kommenden durchführbaren Absichten dem Task-Flow-Verarbeitungsmodul 736 bereitgestellt, wobei m eine vorbestimmte ganze Zahl größer als Null ist. In einigen Beispielen wird die strukturierte Abfrage (oder Abfragen) für die m besten in Frage kommenden durchführbaren Absichten an das Task-Flow-Verarbeitungsmodul 736 mit der/den entsprechenden Kandidatentextdarstellung(en) bereitgestellt.
  • Weitere Einzelheiten zum Ableiten einer Benutzerabsicht basierend auf mehreren in Frage kommenden durchführbaren Absichten aus mehreren Kandidatentextdarstellungen einer Spracheingabe sind in der US-Gebrauchsmusteranmeldung Nr. 14/298,725 mit dem Titel „System and Method for Inferring User Intent From Speech Inputs“, eingereicht am 6. Juni 2014, enthalten, deren gesamte Offenbarung hierin durch Bezugnahme aufgenommen ist.
  • Das Task-Flow-Verarbeitungsmodul 736 ist so konfiguriert, dass es die strukturierte Abfrage (oder Abfragen) vom Verarbeitungsmodul für natürliche Sprache 732 empfängt, die strukturierte Abfrage, falls notwendig, abschließt und die Aktionen ausführt, die zum „Abschließen“ der endgültigen Anfrage des Benutzers erforderlich sind. In einigen Beispielen werden die verschiedenen Prozeduren, die zum Abschließen dieser Aufgaben notwendig sind, in Task-Flow-Modellen 754 bereitgestellt. In einigen Beispielen schließen die Task-Flow-Modelle 754 Prozeduren zum Erhalten zusätzlicher Informationen vom Benutzer und Aufgabenabläufen zum Ausführen von Aktionen im Zusammenhang mit der durchführbaren Absicht ein.
  • Um eine strukturierte Abfrage abzuschließen, muss das Task-Flow-Verarbeitungsmodul 736, wie weiter oben beschrieben, einen zusätzlichen Dialog mit dem Benutzer initiieren, um zusätzliche Informationen zu erhalten und/oder möglicherweise missverständliche Aussagen eindeutig zu machen. Wenn solche Interaktionen notwendig sind, ruft das Task-Flow-Verarbeitungsmodul 736 das Dialogflussverarbeitungsmodul 734 auf, um in einen Dialog mit dem Benutzer zu treten. In einigen Beispielen bestimmt das Dialogflussverarbeitungsmodul 734, wie (und/oder wann) der Benutzer nach zusätzlichen Informationen gefragt wird, und es empfängt und verarbeitet die Benutzerantworten. Die Fragen werden den Benutzern durch das E/A-Verarbeitungsmodul 728 gestellt und die Antworten der Benutzer werden von diesem empfangen. In einigen Beispielen stellt das Dialogflussverarbeitungsmodul 734 dem Benutzer die Dialogausgabe über eine akustische und/oder visuelle Ausgabe bereit und empfängt eine Eingabe vom Benutzer über gesprochene oder physische (z. B. durch Klicken) Antworten. Unter fortgesetzter Bezugnahme auf das vorstehende Beispiel, wenn das Task-Flow-Verarbeitungsmodul 736 das Dialogflussverarbeitungsmodul 734 aufruft, um die Informationen „Gästezahl“ und „Datum“ für die strukturierte Abfrage zu bestimmen, die der Domäne „Restaurantreservierung“ zugeordnet ist, erzeugt das Dialogflussverarbeitungsmodul 734 Fragen wie „Für wie viele Leute?“ und „An welchem Tag?“, die dem Benutzer gestellt werden. Sobald Antworten vom Benutzer empfangen werden, füllt das Dialogflussverarbeitungsmodul 734 dann die strukturierte Abfrage mit den fehlenden Informationen auf oder leitet die Informationen an das Task-Flow-Verarbeitungsmodul 736 weiter, um die fehlenden Informationen aus der strukturierten Abfrage zu vervollständigen.
  • Sobald das Task-Flow-Verarbeitungsmodul 736 die strukturierte Abfrage für eine durchführbare Absicht vervollständigt hat, geht das Task-Flow-Verarbeitungsmodul 736 dazu über, die endgültige Aufgabe im Zusammenhang mit der durchführbaren Absicht auszuführen. Dementsprechend führt das Task-Flow-Verarbeitungsmodul 736 die Schritte und Anweisungen im Task-Flow-Modell gemäß den spezifischen Parametern, die in der strukturierten Abfrage enthalten sind, aus. Zum Beispiel beinhaltet das Task-Flow-Modell für die durchführbare Absicht „Restaurantreservierung“ Schritte und Anweisungen zum Kontaktieren eines Restaurants und zum tatsächlichen Anfragen einer Reservierung für eine bestimmte Gruppengröße zu einer bestimmten Zeit. Wenn zum Beispiel eine strukturierte Abfrage wie die folgende verwendet wird: {Restaurantreservierung, Restaurant = ABC Cafe, Datum = 12.3.2012, Uhrzeit = 19:00, Gruppengröße = 5}; führt das Task-Flow-Verarbeitungsmodul 736 diese Schritte aus: (1) Anmelden bei einem Server des ABC Cafes oder bei einem Restaurantreservierungssystem wie OPENTABLE®, (2) Eingeben der Informationen für Datum, Uhrzeit und Gruppengröße in ein Formular auf der Website, (3) Übermitteln des Formulars und (4) Erstellen eines Kalendereintrags für die Reservierung im Kalender des Benutzers.
  • Bei einigen Beispielen setzt das Task-Flow-Verarbeitungsmodul 736 die Unterstützung eines Dienstverarbeitungsmoduls 738 („Dienstverarbeitungsmodul“) ein, um eine Aufgabe abzuschließen, die in der Benutzereingabe gestellt wurde, oder um eine informationelle Antwort auf eine Frage, die in der Benutzereingabe gestellt wurde, zu geben. Beispielsweise handelt das Dienstverarbeitungsmodul 738 im Auftrag des Task-Flow-Verarbeitungsmoduls 736, um einen Telefonanruf zu tätigen, einen Kalendereintrag festzulegen, eine Kartensuche aufzurufen, andere auf der Benutzervorrichtung installierte Benutzeranwendungen aufzurufen oder mit diesen zu interagieren und Dienste von Drittanbietern (z. B. ein Restaurantreservierungsportal, ein soziales Netzwerk, ein Bankportal usw.) aufzurufen oder mit diesen zu interagieren. In einigen Beispielen werden die Protokolle und Anwendungsprogrammierschnittstellen (API), die von dem jeweiligen Dienst benötigt werden, von einem jeweiligen Dienstmodell unter den Dienstmodellen 756 spezifiziert. Das Dienstverarbeitungsmodul 738 greift auf das geeignete Dienstmodell für einen Dienst zu und erzeugt Anforderungen für den Dienst gemäß den Protokollen und API, die gemäß dem Dienstmodell für den Dienst erforderlich sind.
  • Wenn zum Beispiel ein Restaurant einen Online-Reservierungsdienst aktiviert hat, stellt das Restaurant ein Dienstmodell, das die notwendigen Parameter zum Vornehmen einer Reservierung spezifiziert, und die API zum Übertragen der Werte der notwendigen Parameter an den Online-Reservierungsdienst bereit. Wenn es vom Task-Flow-Verarbeitungsmodul 736 angefordert wird, baut das Service-Verarbeitungsmodul 738 eine Netzwerkverbindung mit dem Online-Reservierungsdienst unter Verwendung der im Dienstmodell gespeicherten Webadresse auf und sendet die notwendigen Parameter der Reservierung (z. B. Uhrzeit, Datum, Gästezahl) in einem Format gemäß der API des Online-Reservierungsdienstes an die Online-Reservierungsschnittstelle.
  • In einigen Beispielen wird das Verarbeitungsmodul für natürliche Sprache 732, das Dialogflussverarbeitungsmodul 734 und das Task-Flow-Verarbeitungsmodul 736 kollektiv und iterativ verwendet, um die Absicht des Benutzers abzuleiten und zu definieren, Informationen zu erhalten, um die Benutzerabsicht weiter zu klären und einzugrenzen, und letztlich eine Antwort (z. B. eine Ausgabe für den Benutzer oder die Vollendung einer Aufgabe) zu erzeugen, und die Absicht des Benutzers zu erfüllen. Die erzeugte Antwort ist eine Dialogantwort auf die Spracheingabe, die mindestens teilweise die Absicht des Benutzers erfüllt. Ferner wird in einigen Beispielen die erzeugte Antwort als Sprachausgabe ausgegeben. In diesen Beispielen wird die erzeugte Antwort an das Sprachsyntheseverarbeitungsmodul 740 (z. B. ein Sprach-Synthesizer) gesendet, wo sie verarbeitet werden kann, um die Dialogantwort in Sprachform zu synthetisieren. In noch einem weiteren Beispiel ist die erzeugte Antwort ein Dateninhalt, der für das Erfüllen einer Benutzeranforderung bei der Spracheingabe relevant ist.
  • In Beispielen in denen das Task-Flow-Verarbeitungsmodul 736 mehrere strukturierte Abfragen von dem Verarbeitungsmodul für natürliche Sprache 732 empfängt, verarbeitet das Task-Flow-Verarbeitungsmodul 736 zunächst die erste strukturierte Abfrage der empfangenen strukturierten Abfragen, um zu versuchen, die erste strukturierte Abfrage abzuschließen und/oder eine oder mehrere Aufgaben oder Aktionen auszuführen, die durch die erste strukturierte Abfrage dargestellt werden. In einigen Beispielen entspricht die erste strukturierte Abfrage der am höchsten eingestuften durchführbaren Absicht. In anderen Beispielen wird die erste strukturierte Abfrage aus den empfangenen strukturierten Abfragen basierend auf einer Kombination aus den entsprechenden Spracherkennungs-Vertrauenswerten und den entsprechenden Absichts-Vertrauenswerten ausgewählt. In einigen Beispielen kann, wenn das Task-Flow-Verarbeitungsmodul 736 auf einen Fehler während der Verarbeitung der ersten strukturierten Abfrage trifft (z. B. aufgrund einer Unfähigkeit, einen notwendigen Parameter zu bestimmen), das Task-Flow-Verarbeitungsmodul 736 eine zweite strukturierte Abfrage der empfangenen strukturierten Abfragen auswählen und verarbeiten, die einer durchführbaren Absicht mit niedrigerer Einstufung entspricht. Die zweite strukturierte Abfrage wird beispielsweise auf Grundlage des Spracherkennungs-Vertrauenswerts der entsprechenden Kandidatentextdarstellung, des Absichts-Vertrauenswerts der entsprechenden in Frage kommenden durchführbaren Absicht, eines fehlenden notwendigen Parameters in der ersten strukturierten Abfrage oder irgendeiner Kombination davon ausgewählt.
  • Das Sprachsyntheseverarbeitungsmodul 740 ist so konfiguriert, dass es die Sprachausgaben zur Präsentation für den Benutzer synthetisiert. Das Sprachsyntheseverarbeitungsmodul 740 synthetisiert Sprachausgaben basierend auf Text, der vom digitalen Assistenten bereitgestellt wird. Die erzeugte Dialogantwort liegt beispielsweise in Form einer Textzeichenfolge vor. Das Sprachsyntheseverarbeitungsmodul 740 wandelt die Textzeichenfolge in eine hörbare Sprachausgabe um. Das Sprachsyntheseverarbeitungsmodul 740 verwendet jede geeignete Sprachsynthesetechnik, um Sprachausgaben aus Text zu erzeugen, insbesondere konkatenative Synthese, Einheitenauswahlsynthese, Diphonsynthese, domänenspezifische Synthese, Formantsynthese, artikulatorische Synthese, HMM-basierte (Hidden Markov Model) Synthese und Sinuswellensynthese. In einigen Beispielen ist das Sprachsyntheseverarbeitungsmodul 740 so konfiguriert, dass es einzelne Wörter basierend auf phonemischen Zeichenfolgen, die den Wörtern entsprechen, synthetisiert. Eine phonemische Zeichenfolge ist beispielsweise mit einem Wort in der erzeugten Dialogantwort verknüpft. Die phonemische Zeichenfolge ist in den Metadaten gespeichert, die mit dem Wort verknüpft sind. Das Sprachsyntheseverarbeitungsmodul 740 ist so konfiguriert, dass es die phonemische Zeichenfolge in den Metadaten direkt verarbeitet, um das Wort in Sprachform zu synthetisieren.
  • In einigen Beispielen wird die Sprachsynthese anstelle (oder zusätzlich zu) der Verwendung des Sprachsyntheseverarbeitungsmoduls 740 auf einer Remote-Vorrichtung (z. B. Serversystem 108) ausgeführt, und die synthetisierte Sprache wird zur Ausgabe für den Benutzer an die Benutzervorrichtung gesendet. Dies kann beispielsweise bei Implementierungen der Fall sein, bei denen Ausgaben für digitale Assistenten auf einem Serversystem erzeugt werden. Und da Serversysteme allgemein mehr Verarbeitungsleistung oder Ressourcen als eine Benutzervorrichtung aufweisen, ist es möglich, eine hochwertigere Sprachausgabe zu erzielen als mit einer clientseitigen Synthese praktikabel wäre.
  • Weitere Details zu digitalen Assistenten sind in der US-Gebrauchsmusteranmeldung Nr. 12/987,982 mit dem Titel „Intelligent Automated Assistant“, eingereicht am 10. Januar 2011, und in der US-Gebrauchsmusteranmeldung Nr. 13/251,088 mit dem Titel „Generating and Processing Data Items That Represent Tasks to Perform“, eingereicht am 30. September 2011, deren gesamte Offenbarungen durch Bezugnahme hierin eingeschlossen sind, zu finden.
  • Beispielhafte Techniken zum Initiieren und Deaktivieren eines virtuellen Assistenten
  • 8A-D veranschaulichen beispielhafte Techniken zum Initiieren eines virtuellen Assistenten bei einer elektronischen Vorrichtung, die auf Audioeingabe und einer Eingabe basiert, die die Bewegung der elektronischen Vorrichtung repräsentiert.
  • 8A veranschaulicht die elektronische Vorrichtung 800 von Benutzer 802. In einigen Beispielen ist die Vorrichtung 800 eine der Vorrichtungen 104, 106, 200, 400 oder 600. In einigen Beispielen, ist die Vorrichtung 800, wie veranschaulicht, eine tragbare elektronische Vorrichtung wie eine Smart Watch. In anderen Beispielen ist die Vorrichtung 800 ein Computer, eine Set-Top-Box, ein Lautsprecher, ein Telefon oder eine Kombination irgendeiner der oben erwähnten Vorrichtungen.
  • Die elektronische Vorrichtung 800 befindet sich in 8A in einer abgesenkten Stellung. Wie unten erläutert, hebt der Benutzer 802 in einigen Beispielen die Vorrichtung 800 von einer abgesenkten Stellung an und stellt eine Audioeingabe bereit, um eine virtuelle Assistentensitzung bei der Vorrichtung 800 zu initiieren und zu veranlassen, dass die initiierte virtuelle Assistentensitzung auf die Audioeingabe antwortet.
  • Eine abgesenkte Stellung ist eine Stellung aus einer Vielzahl von Stellungen (z. B. abgesenkt, anhebend, angehoben und absenkend) einer elektronischen Vorrichtung. 8B zeigt die Vorrichtung 800 in einer anhebenden Stellung, 8C-E zeigen die Vorrichtung 800 in einer angehobenen Stellung und 8F zeigt die Vorrichtung 800 in einer absenkenden Stellung. Es ist jedoch zu beachten, dass die in den 8A-F gezeigten Stellungen der Vorrichtung 800 lediglich beispielhaft sind. Das heißt, die Stellungen einer elektronischen Vorrichtung können sich jeweils von den abgesenkten, anhebenden, gehobenen und absenkenden Stellungen, die in den 8A-F dargestellt sind, unterscheiden. Ebenso sind auch die Übergänge einer elektronischen Vorrichtung zwischen den in den 8A-F dargestellten Stellungen lediglich exemplarisch. Beispielhafte Techniken zum Bestimmen einer Stellung einer elektronischen Vorrichtung und zum Bestimmen von Übergängen zwischen den Stellungen werden in Bezug auf 9 im Folgenden erläutert.
  • Da sich die elektronische Vorrichtung 800 im vorliegenden Beispiel am Handgelenk des Benutzers 802 befindet und das Handgelenk des Benutzers 802 wie gezeigt abgesenkt ist, befindet sich die elektronische Vorrichtung 800 in einer abgesenkten Stellung. Aber wie bereits erwähnt, unterscheidet sich in einigen Beispielen eine abgesenkte Stellung einer elektronischen Vorrichtung von der veranschaulichten abgesenkten Stellung. Wenn beispielsweise der Benutzer 802 die Vorrichtung 800 am Handgelenk trägt und der Benutzer 802 mit den Händen auf einer Tastatur schreibt, befindet sich die Vorrichtung 800 in einer abgesenkten Stellung. Als weiteres Beispiel, wenn der Benutzer 802 die Vorrichtung 800 am Handgelenk trägt und der Benutzer 802 mit dem Handgelenk seitlich am Körper liegt (z. B. auf Hüftniveau), befindet sich die Vorrichtung 800 in einer abgesenkten Stellung. Dementsprechend befindet sich die Vorrichtung 800 in einigen Beispielen in einer abgesenkten Stellung, wenn sie nicht in Richtung des Mundes oder weg vom Mund des Benutzers 802 angehoben wird und/oder weg vom Mund eines Benutzers 802 positioniert wird (z. B. mehr als 0,5, 1, 1,5 oder 2 Fuß entfernt, eine Armlänge des Benutzers 802 weg positioniert, usw.).
  • In einigen Beispielen weist die Vorrichtung 800, wie in 8A gezeigt, eine Anzeige 804 auf (z. B. einen Touchscreen). Es ist unwahrscheinlich, dass der Benutzer 802 auf Anzeige 804 blickt oder gesprochene Anforderungen bereitstellt, wenn sich die Vorrichtung 800 in einer abgesenkten Stellung befindet. Dementsprechend wird in einigen Beispielen die Anzeige 804 ausgeschaltet (z. B. nicht angezeigt), da sich die Vorrichtung 800 in einer abgesenkten Stellung befindet. In einigen Beispielen werden, da die Anzeige 804 ausgeschaltet ist, ein oder mehrere Mikrofone der Vorrichtung 800 ebenso ausgeschaltet (z. B. wird keine Audioeingabe abgetastet). Auf diese Weise wird Batterieleistung gespart, indem Vorrichtungskomponenten abgeschaltet werden, die in der gegenwärtigen Vorrichtungsstellung wahrscheinlich nicht verwendet werden. Jedoch sind in anderen Beispielen die Anzeige 804 und/oder ein oder mehrere Mikrofone der Vorrichtung 800 eingeschaltet, selbst wenn sich die Vorrichtung 800 in einer abgesenkten Stellung befindet.
  • In 8B hebt der Benutzer 802 die Vorrichtung 800 von einer abgesenkten Stellung in eine anhebende Stellung (z. B. hebt der Benutzer 802 sein Handgelenk in Richtung seines Mundes an). Wie unten erläutert, bewirkt ein solches Anheben in einigen Beispielen, dass die Anzeige 804 und ein oder mehrere Mikrofone der Vorrichtung 800 eingeschaltet werden. Das Einschalten eines oder mehrerer Mikrofone ermöglicht somit das Abtasten von Audioeingaben (z. B. Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“, die im Folgenden in Bezug auf 8C erläutert wird). Wie weiter unten erläutert, wird in einigen Beispielen eine virtuelle Assistentensitzung basierend auf der bereitgestellten Vorrichtungsbewegung und Audioeingabe 806 initiiert und eine Antwort auf die Audioeingabe 806 wird durch die initiierte virtuelle Assistentensitzung bereitgestellt.
  • In einigen Beispielen erfasst die Vorrichtung, während eine Bewegung einer Vorrichtung bereitgestellt wird, eine Eingabe, die ihre Bewegung repräsentiert, die hierin als Bewegungseingabe bezeichnet wird. In einigen Beispielen wird die Bewegungseingabe durch einen oder mehrere Bewegungssensoren der Vorrichtung erfasst. Der eine oder die mehreren Bewegungssensoren beinhalten alle Sensoren, die in der Lage sind, Bewegungseingaben zu erfassen, wie beispielsweise ein oder mehrere Beschleunigungssensoren, ein oder mehrere Gyroskope, eine oder mehrere Kameras, ein oder mehrere Näherungssensoren, ein oder mehrere Ultraschallsensoren, ein oder mehrere Mikrowellenbewegungssensoren und dergleichen.
  • In einigen Beispielen beinhaltet das Erfassen einer Bewegungseingabe einer Vorrichtung das Abtasten der Bewegungseingabe unter Verwendung eines ersten Prozessors. In einigen Beispielen ist der erste Prozessor ein Niederleistungsprozessor der Vorrichtung, der von einem Hauptprozessor der Vorrichtung getrennt ist. Dementsprechend ist der erste Prozessor in einigen Beispielen in der Lage, Bewegungseingaben (z. B. von einem oder mehreren Gyroskopen und/oder Beschleunigungssensoren) kontinuierlich zu erfassen, ohne die Akkulaufzeit erheblich zu beeinträchtigen. Zum Beispiel tastet der erste Prozessor kontinuierlich eine Bewegungseingabe ab, indem er die Bewegungseingabe in einen Speicherpuffer schreibt (z. B. einen Ringpuffer).
  • In einigen Beispielen tastet eine elektronische Vorrichtung eine Audioeingabe unter Verwendung eines oder mehrerer Mikrofone der elektronischen Vorrichtung ab. In einigen Beispielen tasten das eine oder die mehreren Mikrofone kontinuierlich Audioeingaben ab. In einigen Beispielen tasten das eine oder die mehreren Mikrofone die Audioeingabe ab, indem sie gemäß den hierin beschriebenen Techniken eingeschaltet werden.
  • In einigen Beispielen wird eine Audioeingabe abgetastet, während mindestens ein Teil der Bewegungseingabe erfasst wird. Wie in 8C gezeigt, tastet die Vorrichtung 800 beispielsweise die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ ab, während sie Bewegungseingaben erfasst (z. B. mit einem oder mehreren Beschleunigungssensoren und/oder einem oder mehreren Gyroskopen). Obwohl das vorliegende Beispiel zeigt, dass der Benutzer 802 eine Audioeingabe nach dem Anheben der Vorrichtung 800 (z. B. 8C) bereitstellt, stellt der Benutzer 802 in einigen Beispielen die Audioeingabe 806 beim Anheben der Vorrichtung 800 (z. B. 8B) oder vor dem Anheben der Vorrichtung 800 (z. B. 8A) bereit.
  • In einigen Beispielen beinhaltet das Abtasten der Audioeingabe an einer Vorrichtung das Abtasten der Audioeingabe unter Verwendung des ersten Prozessors der Vorrichtung (z. B. des gleichen Prozessors, der die Bewegungseingabe der Vorrichtung abtastet). So ist der erste Prozessor beispielsweise in der Lage, Audioeingaben (z. B. von einem oder mehreren Mikrofonen) kontinuierlich abzutasten, indem er die Audioeingaben in einen Speicherpuffer (z. B. einen Ringspeicher) schreibt.
  • In einigen Beispielen beinhaltet das Abtasten der Audioeingabe an einer Vorrichtung das Abtasten der Audioeingabe unter Verwendung eines zweiten Prozessors. In einigen Beispielen ist der zweite Prozessor der Hauptprozessor (z. B. ein Anwendungsprozessor) der Vorrichtung.
  • In einigen Beispielen wird der zweite Prozessor basierend auf mindestens einem Teil der Bewegungseingabe aktiviert. In einigen Beispielen stellt der Teil der Bewegungseingabe eine Handgelenkanhebungs- und/oder eine Handgelenkdrehungsgeste dar. Zum Beispiel führt der Benutzer 802 eine Handgelenkanhebungsgeste durch, wenn der Benutzer 802 die Vorrichtung 800 von einer abgesenkten Stellung in eine anhebende Stellung hebt. Der erste Prozessor der Vorrichtung 800 erfasst die Handgelenkanhebungsgeste und aktiviert den zweiten Prozessor, der dann die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ abtastet. Beispielhafte Techniken zum Erfassen einer Handgelenkanhebungs- und/oder Handgelenkdrehungsgeste sind in der am 10. Juli 2015 eingereichten US-Patentanmeldung Nr. 14/796,675 mit dem Titel „Raise Gesture Detection in a Device“ beschrieben, deren Inhalt hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • In einigen Beispielen beinhaltet das Aktivieren des zweiten Prozessors das Bewirken, dass der zweite Prozessor einen Energiesparmodus verlässt. In einigen Beispielen befindet sich der zweite Prozessor in einem Energiesparmodus, wenn er durch die Anzahl oder Art der Vorgänge, die er während des Betriebs im Energiesparmodus ausführen kann, eingeschränkt ist. In einigen Beispielen befindet sich der zweite Prozessor in einem Energiesparmodus, wenn er arbeitet, während einige der Prozessorschaltungen deaktiviert sind. In einigen Beispielen befindet sich der zweite Prozessor in einem Energiesparmodus, wenn er mit einer reduzierten Taktfrequenz, reduzierter Spannung oder reduziertem Strom im Vergleich zu Werten arbeitet, wenn der zweite Prozessor in einem normalen Modus arbeitet. In einigen Beispielen muss der zweite Prozessor den Energiesparmodus verlassen, um eine bestimmte Funktionalität bereitzustellen, wie etwa das Starten oder Ausführen von Anwendungen, Betreiben eines virtuellen Assistenten und/oder Abtasten einer Audioeingabe.
  • In einigen Beispielen, wie in 8B gezeigt, wird die Anzeige 804 basierend auf mindestens einem Teil der Bewegungseingabe der Vorrichtung 800 eingeschaltet. In einigen Beispielen stellt der Teil der Bewegungseingabe eine Handgelenkanhebungsgeste und/oder eine Handgelenkdrehungsgeste dar. Zum Beispiel führt der Benutzer 800 eine Handgelenkanhebungsgeste und/oder Handgelenkdrehungsgeste durch, wenn der Benutzer 802 die Vorrichtung 802 von einer abgesenkten Stellung in eine anhebende Stellung hebt. Die Vorrichtung 800 (z. B. der erste Prozessor) bestimmt die Handgelenkanhebungs- und/oder Handgelenkdrehungsgeste auf Grundlage der Bewegungseingabe und veranlasst dann, dass die Anzeige 804 eingeschaltet wird. Beispielsweise zeigt die Anzeige 804 eine Benutzerschnittstelle mit einer aktuellen Uhrzeit von 12:45.
  • Bei einigen Beispielen bewirkt das Einschalten der Anzeige 804, dass ein oder mehrere Mikrofone der Vorrichtung 800 eingeschaltet werden. Dementsprechend wird in einigen Beispielen eine Audioeingabe 806 in Übereinstimmung mit dem Einschalten der Anzeige 804 abgetastet. Nachdem der Benutzer 802 beispielsweise eine Handgelenkanhebungsgeste initiiert hat, schaltet die Vorrichtung 800 die Anzeige 804 und ein oder mehrere Mikrofone ein und tastet die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ mit einem oder mehreren Mikrofonen ab. Obwohl das Einschalten der Anzeige 804 (und damit das Einschalten von einem oder mehreren Mikrofonen) in einigen Beispielen als auf einer Bewegungseingabe basierend beschrieben wird, basiert das Einschalten der Anzeige 804 in anderen Beispielen auf einer anderen Eingabe als oder zusätzlich zu der Bewegungseingabe. Beispielsweise basiert das Einschalten der Anzeige 804 in einigen Beispielen auf einer taktilen Eingabe (z. B. einer Berührung der Anzeige 804, einem Tastendruck auf der Vorrichtung 800) oder einer Audioeingabe (z. B. Empfangen einer Audioeingabe ausreichender Amplitude).
  • Als ein Beispiel der oben beschriebenen Techniken tastet der erste Prozessor der Vorrichtung 800 kontinuierlich eine Bewegungseingabe ab und erfasst eine Bewegungseingabe, die eine Handgelenkanhebungs- und/oder Handgelenkdrehungsgeste der Vorrichtung 800 darstellt. Als Reaktion auf das Erfassen der Bewegungseingabe, die die Handgelenkanhebungs- und/oder Handgelenkdrehungsgeste repräsentiert, werden die Anzeige 804 und ein oder mehrere Mikrofone der Vorrichtung 800 eingeschaltet und der erste Prozessor aktiviert den zweiten Prozessor. Der zweite Prozessor tastet die Audioeingabe (z. B. „Wie ist das Wetter in Palo Alto?“) unter Verwendung des einen oder der mehreren Mikrofone ab. Auf diese Weise werden die Anzeige 804, das eine oder die mehreren Mikrofone und der zweite Prozessor der Vorrichtung 800 ausgeschaltet (oder in einen Energiesparmodus versetzt), wenn es unwahrscheinlich ist, dass der Benutzer 802 Sprachbefehle ausgibt (z. B. wenn sich die Vorrichtung 800 in einer abgesenkten Stellung befindet), wodurch Batterieleistung eingespart wird.
  • In 8C hebt der Benutzer 802 die Vorrichtung 800, wie gezeigt, in eine angehobene Stellung. Beispielsweise hebt der Benutzer 802 die Vorrichtung 800 in die Nähe seines Mundes an (z. B. hebt er sie von einer anhebenden Stellung). In einigen Beispielen ist die Vorrichtung 800 in einer angehobenen Stellung relativ stabil (z. B. weil der Benutzer 802 die Vorrichtung 800 nicht länger anhebt). Wie erläutert, tastet die Vorrichtung 800 auch die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ ab, die vom Benutzer 802 bereitgestellt wird (z. B. vom Benutzer 802 kurz nach dem Anheben der Vorrichtung 800 in eine angehobene Stellung). Die Vorrichtung 800 bestimmt basierend auf der Audioeingabe 806 und basierend auf der Bewegungseingabe gemäß den im Folgenden erörterten beispielhaften Techniken, ob eine virtuelle Assistentensitzung initiiert werden soll. Wenn die Vorrichtung 800 bestimmt, eine virtuelle Assistentensitzung zu initiieren, wird eine virtuelle Assistentensitzung initiiert (z. B. durch Anzeigen einer Benutzerschnittstelle des virtuellen Assistenten auf der Anzeige 804), wie gezeigt.
  • In einigen Beispielen enthält die abgetastete Audioeingabe keinen gesprochenen Auslöser. So enthält beispielsweise die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ keinen gesprochenen Auslöser zum Initiieren eines virtuellen Assistenten wie „Hey Siri“. Dementsprechend äußert ein Benutzer in einigen Beispielen einfach eine Anforderung an einen virtuellen Assistenten (z. B. während des Anhebens einer Vorrichtung oder kurz vor oder nach dem Anheben einer Vorrichtung), um zu bewirken, dass der virtuelle Assistent die Benutzeranforderung initiiert und darauf antwortet.
  • In einigen Beispielen beinhaltet das Bestimmen, ob eine virtuelle Assistentensitzung initiiert werden soll, das Bestimmen, ob ein oder mehrere Kriterien zum Initiieren einer virtuellen Assistentensitzung erfüllt sind. In einigen Beispielen beinhaltet das Bestimmen, ob eine virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einer Wahrscheinlichkeit des Initiierens einer virtuellen Assistentensitzung. Wenn zum Beispiel ein Kriterium zum Initiieren einer virtuellen Assistentensitzung erfüllt ist, wird eine Wahrscheinlichkeit, eine virtuelle Assistentensitzung zu initiieren, erhöht. Wenn ein Kriterium zum Initiieren eines virtuellen Assistenten nicht erfüllt ist, wird die Wahrscheinlichkeit, eine virtuelle Assistentensitzung zu initiieren, verringert. In einigen Beispielen wird eine Bestimmung durchgeführt, um eine virtuelle Assistentensitzung zu initiieren, wenn die Wahrscheinlichkeit des Initiierens der virtuellen Assistentensitzung größer als ein vorbestimmter Schwellenwert ist und/oder wenn ein oder mehrere Kriterien zum Initiieren der virtuellen Assistentensitzung erfüllt sind.
  • In einigen Beispielen werden eine oder mehrere der vorstehenden Bestimmungen durch ein Bewegungsmodell, durch ein Audiomodell und/oder durch ein Initiierungsmodell eines virtuellen Assistenten (z. B. ein Anheben-um-zu-sprechen-Modell) durchgeführt. Beispielsweise bestimmt ein Bewegungsmodell auf Grundlage einer Bewegungseingabe eine Wahrscheinlichkeit des Initiierens einer virtuellen Assistentensitzung und macht eine Bestimmung zum Initiieren der virtuellen Assistentensitzung. Ein Audiomodell bestimmt auf Grundlage einer Audioeingabe eine Wahrscheinlichkeit, eine virtuelle Assistentensitzung zu initiieren, und führt eine Bestimmung zum Initiieren der virtuellen Assistentensitzung durch. Ein beispielhaftes Bewegungsmodell, ein beispielhaftes Audiomodell und ein beispielhaftes Initiierungsmodell eines virtuellen Assistenten werden unter Bezugnahme auf 9 nachfolgend erläutert.
  • In einigen Beispielen sind die jeweiligen Wahrscheinlichkeiten und die jeweiligen Bestimmungen zum Initiieren der durch das Bewegungsmodell und das Audiomodell bestimmten virtuellen Assistentensitzung voneinander getrennt. Dementsprechend wird in einigen Beispielen eine virtuelle Assistentensitzung als Reaktion auf sowohl das Bewegungsmodell als auch das Audiomodell initiiert, die bestimmen, die virtuelle Assistentensitzung zu initiieren. In anderen Beispielen wird eine virtuelle Assistentensitzung als Reaktion auf entweder das Bewegungsmodell oder das Audiomodell initiiert, je nachdem welches bestimmt, die virtuelle Assistentensitzung zu initiieren. Auf diese Weise werden in einigen Beispielen zwei separate Bestimmungen (z. B. eine basierend auf einer Bewegungseingabe und eine basierend auf einer Audioeingabe) verwendet, um eine virtuelle Assistentensitzung zu initiieren.
  • Beispielhafte Kriterien zum Initiieren einer virtuellen Assistentensitzung werden nachfolgend erörtert.
  • Ein beispielhaftes Kriterium schließt ein, ob eine elektronische Vorrichtung zwischen zwei oder mehr Stellungen wechselt. Ein beispielhafter Wechsel erfolgt von einer anhebenden Stellung in eine angehobene Stellung, wie in 8B und 8C veranschaulicht. In einigen Beispielen wird, wenn ein Wechsel von einer anhebenden Stellung in eine angehobene Stellung bestimmt wird, ein Kriterium erfüllt. In einigen Beispielen wird, wenn ein Wechsel von einer anhebenden Stellung in eine angehobene Stellung nicht bestimmt wird, ein Kriterium nicht erfüllt. Auf diese Weise kann das Erfassen eines Wechsels von einer anhebenden Stellung zu einer angehobenen Stellung (z. B. eine Arm-/Handgelenkbewegung, um die Vorrichtung nahe an den Mund eines Benutzers zu bringen) ein wichtiges Kriterium bei der Entscheidung sein, ob eine virtuelle Assistentensitzung initiiert werden soll.
  • Ein anderer beispielhafter Wechsel ist der von einer angehobenen zu einer absenkenden Stellung. Eine beispielhafte absenkende Stellung einer elektronischen Vorrichtung ist in 8E dargestellt. In einigen Beispielen wird, wenn ein Wechsel von einer angehobenen Stellung zu einer absenkenden Stellung bestimmt wird, ein Kriterium nicht erfüllt. Auf diese Weise wird, wenn die Bewegung der Vorrichtung 800 beispielsweise das Absenken des Handgelenks des Benutzers einschließt, ein virtueller Assistent in einigen Beispielen nicht initiiert.
  • Ein beispielhaftes Kriterium schließt ein, ob die jeweiligen Zeiten von Wechseln zwischen Stellungen innerhalb einer vorbestimmten Zeit liegen. So wird beispielsweise eine erster Zeitpunkt eines Wechsels von einer hebenden Stellung zu einer angehobenen Stellung bestimmt (z. B. wenn die Vorrichtung 800 zum ersten Mal aus einer anhebenden Stellung in eine angehobene Stellung eintritt) und ein zweiter Zeitpunkt eines Wechsels von einer angehobenen Stellung zu einer absenkenden Stellung (z. B. wenn die Vorrichtung zum ersten Mal aus einer angehobenen Stellung in eine absenkende Stellung eintritt). Wenn der erste Zeitpunkt innerhalb einer vorgegebenen Dauer (z. B. 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1, 1,5, 2 Sekunden) des zweiten Zeitpunktes liegt, wird ein Kriterium nicht erfüllt. Wenn der erste Zeitpunkt nicht innerhalb der vorbestimmten Dauer liegt, wird ein Kriterium erfüllt. Auf diese Weise wird, wenn die Dauer zwischen einem Wechsel von einer anhebenden zur angehobenen Stellung und einem Wechsel zwischen einer angehobenen zu einer abgesenkten Stellung relativ kurz ist, eine virtuelle Assistentensitzung nicht eingeleitet. Dies verhindert in einigen Beispielen ein unbeabsichtigtes Initiieren des virtuellen Assistenten aufgrund von Bewegungen einschließlich der Wechsel zwischen anhebenden zu angehobenen zu absenkenden Stellungen (z. B. bei dem Laufen, Armübungen, usw.). Es versteht sich, dass das Vergleichen der jeweiligen Zeiten von Wechseln zwischen beliebigen Stellungen auf diese Weise mit den Lehren hierin konsistent ist.
  • Beispielhafte Kriterien schließen ebenfalls entsprechende Dauern von Stellungen ein. Beispielsweise wird eine Dauer einer angehobenen Stellung bestimmt und mit einer vorbestimmten Dauer verglichen (z. B. 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1, 1,5, 2 Sekunden). In einigen Beispielen wird, falls die Dauer der angehobenen Stellung die vorbestimmte Dauer überschreitet, ein Kriterium erfüllt. In einigen Beispielen wird, wenn die Dauer der angehobenen Stellung die vorbestimmte Dauer nicht überschreitet, ein Kriterium nicht erfüllt. Auf diese Weise wird die Stabilität der elektronischen Vorrichtung in einer angehobenen Position bei der Entscheidung, ob die virtuelle Assistentensitzung initiiert werden soll, berücksichtigt (z. B. wenn der Benutzer 802 die Vorrichtung 800 in die Nähe seines Mundes anhebt und eine Anfrage stellt, ist es wahrscheinlich, dass die Vorrichtung für mehr als eine vorbestimmte Dauer in der angehobenen Position bleibt). Obwohl die vorstehende Beschreibung sich auf die Dauer einer angehobenen Stellung konzentriert, wird in einigen Beispielen die Dauer jeder Stellung (z. B. abgesenkt, anhebend, angehoben, absenkend) in einer ähnlichen Art und Weise berücksichtigt.
  • Beispielhafte Kriterien schließen ebenfalls entsprechende Dauern von Wechseln zwischen Stellungen ein. So wird beispielsweise eine Dauer eines Wechsels von einer anhebenden zu einer angehobenen Stellung bestimmt und mit einer vorgegebenen Dauer (z. B. 1 Sekunde, 2 Sekunden, 5 Sekunden) verglichen. Wenn die Dauer eines Wechsels von einer anhebenden zu einer angehobenen Stellung die vorbestimmte Dauer überschreitet, wird ein Kriterium nicht erfüllt. Wenn die Dauer eines Wechsels von einer anhebenden zu einer angehobenen Stellung die vorbestimmte Dauer nicht überschreitet, wird ein Kriterium erfüllt. Durch derartiges Vergleichen der Dauer eines Wechsels von einer anhebenden zu einer angehobenen Stellung mit einer vorbestimmten Dauer kann sichergestellt werden, dass Wechsel von einer anhebenden zu einer angehobenen Stellung von einer geeigneten Dauer die virtuelle Assistentensitzung initiieren. Wenn beispielsweise der Benutzer 802 zu lange braucht (z. B. 3, 4, 5, 6, 7, 8, 9, 10 Sekunden), um die Vorrichtung 800 von der anhebenden in die angehobene Stellung zu bringen, ist es unwahrscheinlich, dass der Benutzer die Vorrichtung 800 anhebt, um einen Befehl abzugeben, also wird die virtuelle Assistentensitzung nicht initiiert. Obwohl sich die vorstehende Erörterung auf die Dauer eines Wechsels von einer anhebenden zu einer angehobenen Stellung konzentriert, wird in einigen Beispielen die Dauer des Wechsels zwischen beliebigen zwei Stellungen (z. B. abgesenkt zu anhebend, abgesenkt zu angehoben) in analoger Weise betrachtet.
  • Ein beispielhaftes Kriterium schließt auch ein, ob die Audioeingabe menschliche Sprache beinhaltet. Beispielsweise wird eine Bestimmung durchgeführt, ob die Audioeingabe menschliche Sprache beinhaltet. Wenn die Audioeingabe menschliche Sprache beinhaltet, ist ein Kriterium erfüllt. Wenn die Audioeingabe keine menschliche Sprache beinhaltet, ist ein Kriterium nicht erfüllt. Auf diese Weise wird ein unbeabsichtigtes Initiieren einer virtuellen Assistentensitzung als Reaktion auf das Empfangen von Audioeingaben, die keine menschliche Sprache beinhalten (z. B. Hintergrundgeräusche), vermieden. Wenn sich der Benutzer 802 beispielsweise in einer geräuschvollen Umgebung befindet und die Vorrichtung 800 von einer anhebenden in eine angehobene Stellung hebt (z. B. um die Uhrzeit zu überprüfen, auf eine Nachricht zu antworten usw.), ohne eine gesprochene Anforderung an die Vorrichtung 800 zu stellen, sollte ein virtueller Assistent nicht versehentlich starten.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die Audioeingabe menschliche Sprache beinhaltet, die Durchführung einer Frequenzbereichsanalyse der Audioeingabe. Beispielsweise wird ein Spektrogramm der Audioeingabe erzeugt (z. B. unter Verwendung einer Fourier-Transformation) und die Spektralkomponenten der Audioeingabe werden analysiert, um zu bestimmen, ob mindestens ein Teil der Audioeingabe menschlicher Sprache entspricht. Es versteht sich, dass in einigen Beispielen jede geeignete Technik zum Bestimmen, ob eine Audioeingabe menschliche Sprache beinhaltet, gemäß den Lehren hierin verwendet wird.
  • Ein beispielhaftes Kriterium schließt ein, ob die Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer einer Vorrichtung gesprochen wird. In einigen Beispielen ist der autorisierte Benutzer ein Benutzer, der eng mit der Vorrichtung verbunden ist, die die Audioeingabe abtastet (z. B. der Eigentümer oder der Hauptbenutzer der Vorrichtung). In einigen Beispielen ist der autorisierte Benutzer einer von einem begrenzten Satz von registrierten Benutzern, die sich die Benutzervorrichtung teilen. Eine Bestimmung, ob eine Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer gesprochen wird, wird durchgeführt. Wenn die Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer der Vorrichtung gesprochen wird, ist ein Kriterium erfüllt. Wenn die Audioeingabe keine menschliche Sprache beinhaltet, die von einem autorisierten Benutzer der Vorrichtung gesprochen wird, ist ein Kriterium nicht erfüllt. Auf diese Weise wird ein unbeabsichtigtes Aktivieren einer virtuellen Assistentensitzung als Reaktion auf das Empfangen von Audioeingaben, die keine menschliche Sprache von einem autorisierten Benutzer beinhalten, vermieden. Wenn sich der Benutzer 802 beispielsweise in einer Umgebung befindet, die Sprache im Hintergrund einschließt (z. B. Stimmengewirr) und die Vorrichtung 800 von einer anhebenden in eine angehobene Stellung hebt (z. B. um die Uhrzeit zu überprüfen, auf eine Nachricht zu antworten usw.), ohne eine gesprochene Anforderung an die Vorrichtung 800 zu stellen, sollte ein virtueller Assistent nicht versehentlich starten.
  • In einigen Beispielen beinhaltet das Bestimmen, ob eine Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer gesprochen wird, das Durchführen einer Sprachauthentifizierung. Zum Beispiel werden die Merkmale der Audioeingabe mit denen eines oder mehrerer Sprachmodelle (z. B. Gaußsche Mischmodelle, Hidden-Markov-Modelle, neuronale Netzwerke und dergleichen) verglichen. In einigen Beispielen beinhalten das eine oder die mehreren Sprachmodelle ein vorbestimmtes universelles Hintergrundmodell und ein vorbestimmtes Sprachmodell eines autorisierten Benutzers. In einigen Beispielen basiert das vorbestimmte Sprachmodell des autorisierten Benutzers auf Sprache des autorisierten Benutzers (z. B. Sprache des autorisierten Benutzers, die vor dem Abtasten der Audioeingabe empfangen wurde). Es versteht sich, dass in einigen Beispielen jede geeignete Technik zum Bestimmen, ob eine Audioeingabe von einem autorisierten Benutzer gesprochene menschliche Sprache beinhaltet, gemäß den Lehren hierin verwendet wird.
  • Ein beispielhaftes Kriterium schließt eine der Audioeingabe zugeordnete Richtung ein. Zum Beispiel wird eine der Audioeingabe zugeordnete Richtung bestimmt. Wenn die Audioeingabe eine Richtung zu der Vorrichtung hin aufweist (z. B. zu einem oder mehreren Mikrofonen oder zu einem Bildschirm der Vorrichtung hin), ist ein Kriterium erfüllt. Wenn die Audioeingabe eine Richtung weg von der Vorrichtung aufweist (z. B. weg von einem oder mehreren Mikrofonen oder weg von einem Bildschirm der Vorrichtung), ist ein Kriterium nicht erfüllt. Auf diese Weise kann ein unbeabsichtigtes Aktivieren des virtuellen Assistenten als Reaktion auf den Empfang einer Audioeingabe, die nicht auf die Vorrichtung gerichtet ist (z. B. von einer anderen Person, die neben dem Benutzer 800 steht) verhindert werden. Es versteht sich, dass in einigen Beispielen jede geeignete Technik zur Schalllokalisierung (z. B. Beamforming) verwendet wird, die in Übereinstimmung mit den Lehren hierin verwendet wird.
  • Ein beispielhaftes Kriterium beinhaltet eine Nähe einer Audioeingabe zu einer elektronischen Vorrichtung. So wird beispielsweise eine Nähe der Audioeingabe zu einer elektronischen Vorrichtung bestimmt und mit einer Schwellennähe verglichen (z. B. 2 cm, 5 cm, 10 cm, 15 cm oder 20 cm). Wenn die bestimmte Nähe kleiner oder gleich der Schwellennähe ist, wird ein Kriterium erfüllt. Wenn die bestimmte Nähe größer als die Schwellennähe ist, wird ein Kriterium nicht erfüllt. Auf diese Weise wird die Audioeingabe, die von einer Quelle in der Nähe der Vorrichtung stammt, als Hinweis zum Initiieren der virtuellen Assistentensitzung betrachtet. Audioeingaben, die von einer Quelle stammen, die nicht in der Nähe der Vorrichtung liegt (z. B. von einer anderen Person, die sich nicht in der Schwellennähe der Vorrichtung 800 befindet), dürfen nicht versehentlich eine virtuelle Assistenzsitzung initiieren.
  • In einigen Beispielen basiert das Bestimmen der Nähe der Audioeingabe zu einer elektronischen Vorrichtung auf der Amplitude der Audioeingabe. In einigen Beispielen wird die Amplitude der Audioeingabe innerhalb eines bestimmten Spektralbereichs (z. B. eines für menschliche Sprache charakteristischen Frequenzbereichs) analysiert, um die Nähe der Audioeingabe zu bestimmen. Bei einigen Beispielen basiert das Bestimmen der Nähe der Audioeingabe alternativ oder zusätzlich auf anderen akustischen Merkmalen der Audioeingabe. Beispielsweise enthalten Audioeingaben, die von weiter entfernten Quellen stammen, oft einen größeren Grad an Echokonstruktion als Audioeingaben, die von näheren Quellen stammen. Dementsprechend werden in einigen Beispielen Audioeingaben analysiert, um einen Echograd zu bestimmen, um die Nähe der Audioeingabe zu bestimmen.
  • Ein beispielhaftes Kriterium schließt eine Dauer der Audioeingabe ein. Beispielsweise wird eine Dauer einer Audioeingabe bestimmt und mit einer vorbestimmten Dauer verglichen (z. B. 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1, 1,5, 2 Sekunden). In einigen Beispielen ist die Dauer der Audioeingabe die Dauer, während der sich die Audioeingabe innerhalb eines vorgegebenen Amplituden- und/oder Frequenzbereichs befindet (z. B. ein für menschliche Sprache und Geräusche typischer Amplituden- und/oder Frequenzbereich). Wenn eine Dauer der Audioeingabe größer als die vorbestimmte Dauer ist, wird ein Kriterium erfüllt. Wenn eine Dauer der Audioeingabe geringer als die vorbestimmte Dauer ist, wird ein Kriterium nicht erfüllt. Auf diese Weise wird die virtuelle Assistentensitzung in einigen Beispielen nicht durch eine zu kurze Audioeingabe (z. B. die wahrscheinlich keine eine gesprochene Anfrage ist) ausgelöst. Wenn der Benutzer 802 die Vorrichtung 800 beispielsweise von einer anhebenden in eine angehobene Stellung hebt, um seinen Mund zu bedecken, während er hustet oder niest (z. B. eine kurze Audioeingabe), löst der Husten oder das Niesen nicht versehentlich einen virtuellen Assistenten aus.
  • Ein beispielhaftes Kriterium basiert auf den jeweiligen Zeiten, die dem Abtasten von Audioeingabe und einem Wechsel zwischen Stellungen zugeordnet sind. Zum Beispiel beinhaltet ein beispielhaftes Kriterium, ob die jeweiligen Zeiten, die dem Abtasten der Audioeingabe zugeordnet sind, und ein Wechsel zwischen den Stellungen innerhalb einer vorbestimmten Dauer liegen. So wird beispielsweise die Audioeingabe zu einem ersten Zeitpunkt abgetastet (z. B. tastet die Zeitvorrichtung 800 die Eingabe 806 „Wie ist das Wetter in Palo Alto?“ ab) und der Wechsel der Vorrichtung von einer anhebenden in eine angehobene Stellung weist einen zweiten Zeitpunkt auf (z. B. den Zeitpunkt in dem der Benutzer 802 die Vorrichtung 800 in die in 8C dargestellte Stellung hebt). Wenn der erste Zeitpunkt innerhalb einer vorbestimmten Dauer (z. B. 0,5 Sekunden, 1 Sekunde, 1,5 Sekunden, 2 Sekunden, 5 Sekunden) des zweiten Zeitpunktes liegt, wird ein Kriterium erfüllt. Wenn der erste Zeitpunkt nicht innerhalb einer vorbestimmten Dauer des zweiten Zeitpunktes liegt, ist ein Kriterium nicht erfüllt. Auf diese Weise wird die Audioeingabe, die innerhalb einer angemessenen Zeitspanne nach dem Erkennen eines Wechsels von anhebend zu angehoben abgetastet wird, als Hinweis auf die Initiierung eines virtuellen Assistenten betrachtet. In einigen Beispielen wird so eine unbeabsichtigte Aktivierung des virtuellen Assistenten auf der Grundlage von Bewegung und Audioeingabe, die nicht zur ungefähr gleichen Zeit erfolgen, verhindert. Wenn der Benutzer 802 beispielsweise die Vorrichtung 800 von der anhebenden in die angehobene Stellung hebt und dann erst lange nach dem Anheben die Audioeingabe bereitstellt, ist es unwahrscheinlich, dass die Audioeingabe an die Vorrichtung 800 gerichtet wird.
  • Ein beispielhaftes Kriterium schließt ein, ob entsprechende Zeiten getrennter Bestimmungen zum Initiieren der virtuellen Assistentensitzung innerhalb einer vorbestimmten Dauer liegen. So werden beispielsweise separate erste und zweite Bestimmungen zum Initiieren der virtuellen Assistentensitzung jeweils zur ersten und zweiten Zeit durchgeführt (z. B. zu den jeweiligen Zeitpunkten, zu denen ein oder mehrere Kriterien für die Initiierung einer virtuellen Assistentensitzung erfüllt sind). In einigen Beispielen führt ein Bewegungsmodell die erste und das Audiomodell die zweite Bestimmung durch (es sei daran erinnert, dass Bewegungs- und Audiomodelle in einigen Beispielen entsprechende Bestimmungen durchführen, um die virtuelle Assistentensitzung zu initiieren). Wenn der erste Zeitpunkt innerhalb einer vorbestimmten Dauer (z. B. 0,5 Sekunden, 1 Sekunde, 1,5 Sekunden, 2 Sekunden, 5 Sekunden) des zweiten Zeitpunktes liegt, wird ein Kriterium erfüllt. Wenn der erste Zeitpunkt nicht innerhalb der vorbestimmten Dauer des zweiten Zeitpunktes liegt, ist ein Kriterium nicht erfüllt.
  • Dementsprechend basiert in einigen Beispielen das Initiieren einer virtuellen Assistentensitzung auf dem Erfassen einer synchronen oder annähernd synchronen Bewegungs- und Audioeingabe, die zum Initiieren der virtuellen Assistentensitzung geeignet ist. Somit kann eine unbeabsichtigte Initiierung auf Grundlage der Bewegungseingabe und/oder der Audioeingabe allein verhindert werden, obwohl die Bewegungseingabe und/oder Audioeingabe jeweils für die Initiierung des virtuellen Assistenten geeignet sein können (z. B. ein oder mehrere Kriterien dafür erfüllen). Die Bereitstellung einer Aktivierung eines virtuellen Assistenten auf diese Weise liefert somit eine effiziente und intuitive Art und Weise, eine virtuelle Assistentensitzung zu initiieren, während die Möglichkeit einer falschen Initiierung reduziert wird. Um beispielsweise, wie in 8A-C gezeigt, die virtuelle Assistentensitzung auf der Vorrichtung 800 zu initiieren, hebt der Benutzer 802 die Vorrichtung 800 durch die veranschaulichten Stellungen und stellt die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ kurz nach dem Anheben der Vorrichtung 800 (oder während oder kurz vor dem Anheben der Vorrichtung 800) bereit.
  • In einigen Beispielen basiert die Bestimmung, ob eine virtuelle Assistentensitzung initiiert werden soll, auf einer anderen Eingabe als oder zusätzlich zu der oben beschriebenen Bewegungs- und Audioeingabe. Beispielsweise wird bestimmt, ob diese anderen Eingaben ein oder mehrere Kriterien erfüllen, um eine virtuelle Assistentensitzung zu initiieren. Analog zu den oben diskutierten Techniken wird in einigen Beispielen eine Wahrscheinlichkeit zum Initiieren einer virtuellen Assistentensitzung basierend darauf bestimmt, ob das eine oder die mehreren Kriterien erfüllt sind. In einigen Beispielen wird eine Bestimmung zum Initiieren einer virtuellen Assistentensitzung durchgeführt, wenn die Wahrscheinlichkeit einen Schwellenwert überschreitet. In einigen Beispielen führt ein Modell zum Initiieren einer virtuellen Assistentensitzung (z. B. ein Anheben-um-zu-sprechen-Modell) eine oder mehrere dieser Bestimmungen aus. Ein beispielhaftes Modell zum Initiieren einer virtuellen Assistentensitzung wird unten mit Bezug auf 9 erläutert.
  • In einigen Beispielen schließt eine elektronische Vorrichtung einen oder mehrere Lichtsensoren (z. B. einen Umgebungslichtsensor, eine Kamera und dergleichen) auf einer vorderen und/oder auf einer hinteren Oberfläche der Vorrichtung ein. Eine von dem Lichtsensor erfasste Lichtmenge wird mit einem Schwellenwert verglichen. Wenn die Lichtmenge größer als ein Schwellenwert ist, ist ein Kriterium zum Initiieren des virtuellen Assistenten nicht erfüllt. Wenn die Lichtmenge kleiner als ein Schwellenwert ist, ist ein Kriterium zum Initiieren des virtuellen Assistenten erfüllt. Wenn beispielsweise der Benutzer 802 die Vorrichtung 800 zu einer angehobenen Stellung hebt, um mit ihr zu sprechen, ist eine Vorderfläche (z. B. die Oberfläche der Anzeige 804) der Vorrichtung 800 näher an den Lippen des Benutzers. Dementsprechend erfasst ein nach vorne gerichteter Lichtsensor der Vorrichtung 802 eine geringere Lichtmenge (z. B. kleiner als der vorbestimmte Schwellenwert) im Vergleich dazu, wenn sich die Vorrichtung 800 in einer abgesenkten Stellung befindet (z. B. 8A). Auf diese Weise wird eine geringere Lichtmenge (z. B. als Hinweis darauf, dass sich eine Vorrichtung näher am Gesicht eines Benutzers befindet) als Hinweis zum Initiieren einer virtuellen Assistentensitzung betrachtet.
  • In einigen Beispielen beinhaltet eine elektronische Vorrichtung einen oder mehrere Farbsensoren (z. B. eine Kamera, einen beliebigen geeigneten RGB-Farbsensor) auf einer vorderen und/oder auf einer hinteren Oberfläche der Vorrichtung. Die von dem einen oder mehreren Farbsensoren erfassten Farben werden mit vorbestimmten Farben verglichen (z. B. Farben der menschlichen Haut, der menschliche Lippen und dergleichen). Wenn die erfassten Farben mit den vorbestimmten Farben übereinstimmen (z. B. innerhalb einer vorbestimmten Wellenlänge liegen), ist ein Kriterium zum Initiieren eines virtuellen Assistenten erfüllt. Wenn die erfassten Farben nicht mit den vorbestimmten Farben übereinstimmen, ist ein Kriterium zum Initiieren einer virtuellen Assistentensitzung nicht erfüllt. Wenn beispielsweise der Benutzer 802 die Vorrichtung 800 zu einer angehobenen Stellung hebt, um mit ihr zu sprechen, befindet sich eine Vorderfläche der Vorrichtung 800 nahe an den Lippen des Benutzers. Dementsprechend erfasst ein nach vorne gerichteter Farbsensor der Vorrichtung 800 Farbe(en), die mit der vorbestimmten Farbe (den vorbestimmten Farben) übereinstimmen. Auf diese Weise wird die Erfassung von Farben, die auf menschliche Haut und/oder Lippen hinweisen, als Hinweis auf die Einleitung einer virtuellen Assistentensitzung angesehen.
  • In einigen Beispielen schließt eine elektronische Vorrichtung eine oder mehrere Kameras auf einer vorderen und/oder auf einer hinteren Oberfläche der Vorrichtung ein. Die von einer oder mehreren Kameras erfassten Gesichtsmerkmale (z. B. Kinnform, Mundform, Gesichtsform, usw.) werden mit vorbestimmten Gesichtsmerkmalen (z. B. menschliche Gesichtsmerkmale, die Gesichtsmerkmale eines autorisierten Benutzers) verglichen. Wenn die erfassten Gesichtsmerkmale mit den vorbestimmten Gesichtsmerkmalen übereinstimmen, ist ein Kriterium zum Initiieren eines virtuellen Assistenten erfüllt. Wenn die erfassten Gesichtsmerkmale nicht mit den vorbestimmten Gesichtsmerkmalen übereinstimmen, ist ein Kriterium zum Initiieren des virtuellen Assistenten nicht erfüllt. Wenn beispielsweise der Benutzer 802 die Vorrichtung 800 in eine angehobene Stellung anhebt, um mit ihr zu sprechen, zeigt eine Vorderseite der Vorrichtung 800 in Richtung des Gesichts des Benutzers. Dementsprechend erfasst eine vorderseitige Kamera der Vorrichtung 800 Gesichtsmerkmale, die mit vorbestimmten Gesichtsmerkmalen übereinstimmen.
  • In einigen Beispielen senden ein oder mehrere Mikrofone einer elektronischen Vorrichtung Signale (z. B. Ultraschallsignale) aus und die ein oder mehreren Mikrofone erfassen Signale, die aufgrund der ausgesandten Signale reflektiert werden. In einigen Beispielen werden die erfassten Signale verwendet, um zu bestimmen, ob ein oder mehrere Kriterien zum Initiieren eines virtuellen Assistenten erfüllt sind. Wenn beispielsweise die erfassten Signale ein Objekt (z. B. ein menschliches Gesicht, menschliche Lippen) innerhalb einer Schwellennähe (z. B. 2 cm, 5 cm, 10 cm, 20 cm) der Vorrichtung anzeigen, ist ein Kriterium erfüllt. Wenn die erfassten Signale auf ein Objekt hinweisen, das sich nicht in der Nähe der Vorrichtung befindet, ist ein Kriterium nicht erfüllt. Auf diese Weise wird die Erfassung von nahen Objekten als Hinweis auf die Initiierung einer virtuellen Assistentensitzung angesehen.
  • In einigen Beispielen schließt eine elektronische Vorrichtung einen oder mehrere Näherungssensoren an einer vorderen und/oder an einer hinteren Oberfläche der Vorrichtung ein. Der eine oder die mehreren Näherungssensoren schließen einen beliebigen geeigneten Näherungssensor (z. B. kapazitiv, photoelektrisch, induktiv, Flugzeit usw.) ein. Von dem einen oder den mehreren Näherungssensoren erfasste Eingaben werden analysiert, um zu bestimmen, ob sie einen Hinweis darauf darstellen, eine virtuelle Assistentensitzung zu initiieren. Wenn beispielsweise eine Eingabe von einem oder mehreren Näherungssensoren anzeigt, dass sich die Vorrichtung einem Objekt nähert (z. B. Gesicht/Mund eines Benutzers), wird ein Kriterium erfüllt. Wenn die Eingabe von einem oder mehreren Näherungssensoren anzeigt, dass sich die Vorrichtung von einem Objekt weg bewegt, ist ein Kriterium nicht erfüllt. Als weiteres Beispiel wird ein Kriterium erfüllt, wenn eine Eingabe von einem oder mehreren Näherungssensoren anzeigt, dass sich die Vorrichtung innerhalb einer Schwellennähe (z. B. 2 cm, 5 cm 10 cm, 20 cm) eines Objekts befindet.
  • In einigen Beispielen wird ein Interaktionskontext des virtuellen Assistenten (z. B. der Kontext eines Benutzers (z. B. Schlafen, in einem Auto usw.) und Informationen über einen vorherigen Zustand des virtuellen Assistenten) bei der Bestimmung, ob ein virtueller Assistent initiiert werden soll, berücksichtigt. Der Interaktionskontext des virtuellen Assistenten liefert zusätzliche Vorrichtungs- und/oder Benutzerinformationen, die bei der Bestimmung hilfreich sein können, ob eine virtuelle Assistentensitzung initiiert werden soll. Wenn ein Benutzer beispielsweise schläft (z. B. wie durch Tageszeit, Bewegungseingaben, Benutzeranzeige usw. bestimmt), wird eine virtuelle Assistentensitzung weniger leicht ausgelöst, als wenn der Benutzer wach wäre.
  • Beispielhafte Interaktionskontexte des virtuellen Assistenten werden nachfolgend erläutert. In einigen Beispielen wird basierend auf einem Interaktionskontext des virtuellen Assistenten eine Wahrscheinlichkeit zum Initiieren einer virtuellen Assistentensitzung bestimmt. In einigen Beispielen wird jede dieser Bestimmungen von einem Modell zum Initiieren eines virtuellen Assistenten durchgeführt (z. B. Anheben-um-zu-sprechen-Modell).
  • Ein beispielhafter Interaktionskontext eines virtuellen Assistenten schließt eine Zeit, zu der die virtuelle Assistentensitzung zuvor initiiert wurde, ein. In einigen Beispielen wird, wenn die Zeit, zu der die virtuelle Assistentensitzung vorher initiiert wurde, innerhalb einer Schwellendauer (z. B. 30 Sekunden, 1, Minute, 5 Minuten usw.) einer aktuellen Zeit liegt, die Wahrscheinlichkeit des Initiierens der virtuellen Assistentensitzung erhöht. In einigen Beispielen wird, wenn die Zeit, zu der die virtuelle Assistentensitzung vorher initiiert wurde, innerhalb der Schwellendauer einer aktuellen Zeit liegt, die Wahrscheinlichkeit des Initiierens der virtuellen Assistentensitzung reduziert.
  • Ein beispielhafter Interaktionskontext des virtuellen Assistenten beinhaltet, ob vorhergehende Sensoreingaben (z. B. beliebige der vorstehend erörterten Sensoreingaben) eine Beinaheinitiierung einer virtuellen Assistentensitzung darstellen oder eine beinahe erfolgte Initiierung einer virtuellen Assistentensitzung darstellen. Beispielsweise wird auf der Grundlage einer oder mehrerer vorhergehender Sensoreingaben eine Wahrscheinlichkeit des Initiierens der virtuellen Assistentensitzung bestimmt. Wenn die Wahrscheinlichkeit eine Schwellenwahrscheinlichkeit zum Initiieren der virtuellen Assistentensitzung um weniger als einen ersten Betrag (z. B. einen kleinen Betrag) übersteigt, stellen die eine oder die mehreren vorhergehenden Sensoreingaben eine Beinaheinitiierung dar. Wenn die Wahrscheinlichkeit um höchstens einen zweiten Betrag (z. B. einen kleinen Betrag) geringer ist als die Schwellenwahrscheinlichkeit zum Initiieren der virtuellen Assistentensitzung, stellen die eine oder die mehreren vorhergehenden Sensoreingaben eine beinahe erfolgte Initiierung dar.
  • Ein beispielhafter Interaktionskontext des virtuellen Assistenten schließt eine Zeit, die einer Beinaheinitiierung der virtuellen Assistentensitzung zugeordnet ist, ein. In einigen Beispielen wird ein der Beinaheinitiierung der virtuellen Assistentensitzung zugeordnete Zeit mit einer aktuellen Zeit verglichen (z. B. eine Zeit, in der die aktuelle Eingabe abgetastet wird). Die der Beinaheinitiierung zugeordnete Zeit ist der Zeitpunkt, zu dem beispielsweise die eine oder die mehreren vorherigen Sensoreingaben (die die beinahe nicht erfolgte Initiierung darstellen) abgetastet wurden oder der Zeitpunkt, zu dem die Wahrscheinlichkeit bestimmt wurde, die der einen oder den mehreren vorherigen Sensoreingaben zugeordnet ist. Wenn in einigen Beispielen die Zeit, die mit einer Beinaheinitiierung der virtuellen Assistentensitzung verbunden ist, innerhalb einer vorbestimmten Dauer (z. B. 5 Sekunden, 15 Sekunden, 30 Sekunden, 1 Minute, 5 Minuten usw.) einer aktuellen Zeit liegt, wird die Wahrscheinlichkeit für das Initiieren einer virtuellen Assistentensitzung erhöht. Auf diese Weise zeigen die kürzliche gemachten vorherigen Eingaben, die das Initiieren einer virtuellen Hilfssitzung knapp verpassten, an, dass die virtuelle Assistentensitzung in einigen Beispielen basierend auf der aktuellen Eingabe leichter initiiert werden sollte. In anderen Beispielen wird eine Wahrscheinlichkeit zum Initiieren einer virtuellen Assistentensitzung verringert, wenn die Zeit, die einer Beinaheinitiierung der virtuellen Assistentensitzung zugeordnet ist, innerhalb der vorbestimmten Dauer einer aktuellen Zeit liegt. Es ist zu beachten, dass das Vergleichen der Zeit, die mit einer beinahe erfolgen Initiierung der virtuellen Assistenzsitzung verbunden ist, mit einer aktuellen Zeit in analoger Weise (z. B. um eine Wahrscheinlichkeit zu erhöhen oder zu verringern, einen virtuellen Assistenten zu initiieren) im Einklang mit den hierin enthaltenen Lehren steht.
  • Ein beispielhafter Interaktionskontext des virtuellen Assistenten schließt eine Domäne, die einer vorherigen Eingabe (z. B. Text oder gesprochene Eingabe) zugeordnet ist, die dem virtuellen Assistenten bereitgestellt wurde, ein. Beispielsweise wird bestimmt, ob eine Domäne, die der vorherigen Eingabe zugeordnet ist, ein vorbestimmter Domänentyp ist. Wenn die Domäne der vorbestimmte Domänentyp ist, wird die Wahrscheinlichkeit, eine virtuelle Assistentensitzung zu initiieren, erhöht. Wenn die Domäne nicht ein vorbestimmter Domänentyp ist, wird die Wahrscheinlichkeit, die virtuelle Assistentensitzung zu initiieren, verringert (oder bleibt unverändert).
  • In einigen Beispielen ist der vorbestimmte Domänentyp eine Domäne, die so konfiguriert ist, dass sie eine Multi-Turn-Interaktion des virtuellen Assistenten ermöglicht. Eine Multi-Turn-Interaktion des virtuellen Assistenten schließt eine virtuelle Assistenten-Interaktion, bei der dem virtuellen Assistenten Eingaben zur Verfugung gestellt werden und der virtuelle Assistent auf die Eingaben reagiert, indem er beispielsweise weitere Eingaben auslöst, ein. Zum Beispiel ist die Domäne „Sende eine Nachricht“ konfiguriert, um die Antwort „Nachricht senden an wen?“ (z. B. Auslösen weiterer Benutzereingaben) als Reaktion auf die bereitgestellte Eingabe „Sende eine Nachricht“ zu ermöglichen. Dementsprechend kann es wahrscheinlich sein, dass der Benutzer beabsichtigt, eine virtuelle Assistentensitzung zu initiieren, um eine weitere Eingabe bereitzustellen, wenn eine Domäne, die einer vorherigen Eingabe zugeordnet ist, konfiguriert ist, um eine Multi-Turn-Interaktion zu ermöglichen. Wenn also in einigen Beispielen eine Domäne, die einer vorherigen Eingabe zugeordnet ist, konfiguriert ist, um eine Multi-Turn-Interaktion zu ermöglichen, wird die Wahrscheinlichkeit, eine virtuelle Assistentensitzung zu initiieren, erhöht.
  • Ein beispielhafter Interaktionskontext des virtuellen Assistenten schließt einen vorherigen Zustand des virtuellen Assistenten ein. Ein Zustand eines virtuellen Assistenten stellt beispielsweise dar, ob der virtuelle Assistent auf eine weitere Eingabe wartet. Wenn der virtuelle Assistent beispielsweise zuvor auf eine Antwort auf die Ausgabe „Nachricht senden an wen?“ gewartet hat, ist der vorherige Zustand ein erster Zustand. Wenn der virtuelle Assistent beispielsweise zuvor nicht auf eine Antwort gewartet hat (z. B. hat der virtuelle Assistent eine Ausgabe wie „Heute ist es sonnig“ bereitgestellt), ist der vorherige Zustand ein zweiter Zustand. In einigen Beispielen wird ein vorheriger Zustand des virtuellen Assistenten bestimmt. In einigen Beispielen wird, wenn der vorherige Zustand der erste Zustand ist, eine Wahrscheinlichkeit zum Initiieren des virtuellen Assistenten erhöht. In einigen Beispielen wird, wenn der vorherige Zustand der zweite Zustand ist, eine Wahrscheinlichkeit zum Initiieren des virtuellen Assistenten verringert. Wenn ein vorheriger Zustand des virtuellen Assistenten auf diese Weise anzeigt, dass der virtuelle Assistent auf eine Antwort wartet, wird in einigen Beispielen ein virtueller Assistent leichter initiiert.
  • Ein beispielhafter Interaktionskontext des virtuellen Assistenten schließt Kontextinformationen (z. B. jede der vorstehend erörterten kontextbezogenen Informationen) ein. In einigen Beispielen wird ein Aktivitätskontext der Vorrichtung und/oder des Benutzers (z. B. ob der Benutzer läuft, in einem Auto sitzt, schläft, zu Hause, auf der Arbeit, im Kino, in einem Meeting ist usw.) aus den kontextbezogenen Informationen bestimmt. Bestimmte Aktivitätskontexte können anzeigen, dass ein Benutzer mehr oder weniger wahrscheinlich einen virtuellen Assistenten initiiert. Dementsprechend wird in einigen Beispielen basierend auf dem bestimmten Aktivitätskontext eine Wahrscheinlichkeit, einen virtuellen Assistenten zu initiieren, erhöht oder verringert. Wenn beispielsweise bestimmt wird, dass ein Benutzer in einer Besprechung ist (z. B. basierend auf einer aktuellen Zeit, die innerhalb eines Besprechungszeitraums im Zeitplan eines Benutzers hinterlegt ist), wird die Wahrscheinlichkeit, einen virtuellen Assistenten zu initiieren verringert (z. B. weil der Benutzer während der Besprechung möglicherweise nicht von einem initiierten virtuellen Assistenten unterbrochen werden möchte).
  • In einigen Beispielen wird gemäß einer Bestimmung, eine virtuelle Assistentensitzung zu initiieren, eine virtuelle Assistentensitzung initiiert. Wie beispielsweise in 8C gezeigt, beinhaltet das Initiieren einer virtuellen Assistentensitzung die Anzeige einer der virtuellen Assistentensitzung zugeordneten Benutzerschnittstelle (z. B. auf der Anzeige 804). In einigen Beispielen schließt das Initiieren einer virtuellen Assistentensitzung jedoch nicht das Anzeigen einer Benutzerschnittstelle des virtuellen Assistenten ein. Zum Beispiel wird in einigen Beispielen eine virtuelle Assistentensitzung initiiert, während die Anzeige 804 ausgeschaltet ist. Eine weitere beispielhafte Beschreibung der Initiierung eines virtuellen Assistenten ist in der am 31. August 2015 eingereichten US-Patentanmeldung Nr. 14/841,449 mit dem Titel „Virtual Assistant Activation“ enthalten, deren Inhalt hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • In einigen Beispielen schließt das Initiieren einer virtuellen Assistentensitzung das Bereitstellen einer Audioausgabe (z. B. stellt die Vorrichtung 800 eine Audioausgabe bereit, um anzuzeigen, dass der virtuelle Assistent zuhört) ein. In einigen Beispielen schließt das Initiieren einer virtuellen Assistentensitzung das Bereitstellen einer haptischen Ausgabe (z. B. eines Summers oder einer Vibration) ein. In einigen Beispielen schließt das Initiieren einer virtuellen Assistentensitzung das Einschalten einer Prozessorschaltung (z. B. der Schaltung eines Hauptprozessors) ein, die konfiguriert ist, um einen virtuellen Assistenten zu betreiben. In einigen Beispielen schließt das Initiieren eines virtuellen Assistenten das Initiieren eines oder mehrerer Programme oder Module (z. B. des Moduls des digitalen Assistenten 726) ein.
  • In einigen Beispielen wird gemäß der Bestimmung, eine virtuelle Assistentensitzung nicht zu initiieren, eine virtuelle Assistentensitzung nicht initiiert. So wird beispielsweise keiner der vorstehend genannten Prozesse, die zum Initiieren einer virtuellen Assistentensitzung gehören, ausgeführt und ein Anzeigebildschirm wird ausgeschaltet und/oder eine Benutzerschnittstelle, die keine Benutzerschnittstelle des virtuellen Assistenten ist (z. B. eine Benutzerschnittstelle, die eine aktuelle Uhrzeit anzeigt), wird angezeigt (oder wird weiterhin angezeigt).
  • 8D zeigt einen auf der Vorrichtung 800 initiierten virtuellen Assistenten, der eine Antwort auf die Audioeingabe 806 bereitstellt. Insbesondere nachdem der Benutzer 802 die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ bereitgestellt hat (und die Vorrichtung 802 sie abgetastet hat), liefert die initiierte virtuelle Assistentensitzung die Antwort „Es sind 70 Grad Fahrenheit und es ist sonnig“.
  • Dementsprechend wird in einigen Beispielen gemäß einer Bestimmung, eine virtuelle Assistentensitzung zu initiieren, eine Benutzerabsicht basierend auf einer Audioeingabe bestimmt, eine Aufgabe wird basierend auf der Benutzerabsicht ausgeführt und eine Ausgabe, die der Aufgabe zugeordnet ist, wird bereitgestellt. Wie beispielsweise in 8D gezeigt, wird eine Benutzerabsicht für die Audioeingabe 806 „Wie ist das Wetter in Palo Alto?“ bestimmt, eine Aufgabe (z. B. das Abrufen von Wetterinformationen) ausgeführt und eine der Aufgabe zugeordnete Ausgabe bereitgestellt. Zum Beispiel zeigt die Vorrichtung 800 die Antwort „Es sind 70 Grad Fahrenheit und es ist sonnig“ auf der Anzeige 804 an. Optional stellt die Vorrichtung 800 die Audioausgabe 808 „Es sind 70 Grad Fahrenheit und es ist sonnig“ bereit. Beispielhafte Techniken zum Bestimmen von Benutzerabsichten und Durchführen von Aufgaben, basierend auf der bestimmten verwendeten Absicht, werden vorstehend mit Bezug auf 7A-C erläutert.
  • In einigen Beispielen werden gemäß dem Initiieren einer virtuellen Assistentensitzung an einer Vorrichtung die Bewegungseingabe und die Audioeingabe bereitgestellt, um ein Modell für die Initiierung eines virtuellen Assistenten zu trainieren (z. B. Anheben-um-zu-Sprechen-Modell). In einigen Beispielen werden zusätzliche Eingaben (z. B. andere Eingaben als Bewegungseingaben und Audioeingaben) und/oder Interaktionskontexte des virtuellen Assistenten bereitgestellt, um das Modell zu trainieren (z. B. wenn bestimmt wurde, dass die virtuelle Assistentensitzung basierend auf der zusätzlichen Eingabe und/oder dem Kontext initiiert wird). So wird beispielsweise das Modell auf der Vorrichtung und/oder auf einer anderen elektronischen Vorrichtung (z. B. Serversystem 108) implementiert und das Modell wird mit der Bewegungseingabe, der Audioeingabe, der zusätzlichen Eingabe und/oder dem Interaktionskontext des virtuellen Assistenten als Trainingsdaten trainiert. Dementsprechend werden Eingaben und/oder der Interaktionskontext des virtuellen Assistenten, die eine virtuelle Assistentensitzung erfolgreich initiiert haben, verwendet, um das Modell zu trainieren, wodurch die Wahrscheinlichkeit einer erfolgreichen Initiierung erhöht und die Wahrscheinlichkeit einer versehentlichen Initiierung verringert wird. Beispielhafte Techniken zum Trainieren eines Modells zum Initiieren eines virtuellen Assistenten werden unter Bezugnahme auf 9 nachstehend erläutert.
  • In einigen Beispielen werden die Eingaben und/oder der Interaktionskontext des virtuellen Assistenten nicht bereitgestellt, um ein Modell für die Initiierung eines virtuellen Assistenten zu trainieren. Beispielsweise werden die Eingaben und/oder der Interaktionskontext des virtuellen Assistenten verworfen.
  • In einigen Beispielen wird das Bereitstellen der Eingaben und/oder des Interaktionskontextes des virtuellen Assistenten zum Trainieren eines Modells zum Initiieren eines virtuellen Assistenten in Übereinstimmung mit dem Bereitstellen einer der Aufgabe zugeordneten Ausgabe durchgeführt. Nachdem beispielsweise die Vorrichtung 800 die Audioausgabe 808 „Es sind 70 Grad Fahrenheit und es ist sonnig“ bereitgestellt hat, werden die Bewegungseingabe und die Audioeingabe 806 bereitgestellt, um ein Modell zu trainieren. Die Bereitstellung von Bewegungseingabe und Audioeingabe auf diese Weise kann weiterhin sicherstellen, dass geeignete Eingaben zum Trainieren des Modells verwendet werden. Wenn zum Beispiel der Benutzer 802 versehentlich die virtuelle Assistentensitzung initiiert, kann er die virtuelle Assistentensitzung deaktivieren, bevor die Vorrichtung 800 die Ausgabe 808 bereitstellt. Dementsprechend ist es wahrscheinlich, dass der Benutzer die virtuelle Assistentensitzung initiieren wollte, wenn die Ausgabe 808 bereitgestellt wird. Somit werden korrekte Eingaben zum Initiieren einer virtuellen Assistentensitzung bereitgestellt, um das Modell zu trainieren.
  • In einigen Beispielen wird das Bereitstellen der Eingaben und/oder des Interaktionskontextes des virtuellen Assistenten zum Trainieren eines Modells zum Initiieren eines virtuellen Assistenten gemäß der Bestimmung durchgeführt, dass die virtuelle Assistentensitzung für mehr als eine vorbestimmte Dauer (z. B. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Sekunden) initiiert wird (z. B. wird eine Benutzerschnittstelle eines virtuellen Assistenten für mehr als die vorbestimmte Dauer angezeigt). Die Bereitstellung von Eingaben und/oder Kontext auf diese Weise kann ferner sicherstellen, dass geeignete Eingaben und/oder Kontexte zum Trainieren des Modells verwendet werden. Wenn beispielsweise der Benutzer 802 versehentlich eine virtuelle Assistentensitzung initiiert, kann er die virtuelle Assistentensitzung deaktivieren, bevor die vorbestimmte Dauer verstrichen ist. Dementsprechend ist es, wenn die vorbestimmte Dauer verstrichen ist, wahrscheinlich, dass der Benutzer 802 die virtuelle Assistentensitzung initiieren wollte. Somit werden korrekte Eingaben und/oder Kontext zum Initiieren einer virtuellen Assistentensitzung bereitgestellt, um das Modell zu trainieren. Beispielhafte Techniken zum Deaktivieren einer virtuellen Assistentensitzung werden mit Bezug auf 8D und 8E nachstehend beschrieben.
  • In einigen Beispielen werden die Eingaben und/oder der Interaktionskontext des virtuellen Assistenten, die versehentlich eine virtuelle Assistentensitzung initiieren (z. B. falsche Eingaben und/oder Kontext), bereitgestellt, um ein Modell für die Initiierung eines virtuellen Assistenten zu trainieren. Beispielsweise trainieren falsche Eingaben und/oder ein Kontext das Modell dahingehend, dass das Modell die virtuelle Assistentensitzung nicht versehentlich basierend auf zukünftigen falschen Eingaben und/oder Kontext initiiert. Dementsprechend wird in einigen Beispielen die Bereitstellung der Eingaben und/oder des Interaktionskontextes des virtuellen Assistenten zum Trainieren eines Modells zum Initiieren einer virtuellen Assistentensitzung gemäß der Bestimmung durchgeführt, dass die Eingaben und/oder der Kontext für das Initiieren einer virtuellen Assistentensitzung falsch sind.
  • In einigen Beispielen beinhaltet das Bestimmen, ob eine oder mehrere Eingaben und/oder der Kontext für das Initiieren einer virtuellen Assistentensitzung falsch sind, das Bestimmen, ob die virtuelle Assistentensitzung basierend auf einer oder mehreren Eingaben und/oder dem Kontext deaktiviert werden soll. Wenn beispielsweise basierend auf der Bewegungs- und/oder Audioeingabe bestimmt wird, eine virtuelle Assistentensitzung gemäß den nachfolgend beschriebenen Techniken zu deaktivieren, wird bestimmt, dass die Bewegungs- und/oder Audioeingaben für das Initiieren einer virtuellen Assistentensitzung falsch sind.
  • In einigen Beispielen beinhaltet das Bestimmen, ob eine oder mehrere Eingaben und/oder der Kontext für das Initiieren einer virtuellen Assistentensitzung falsch sind, das Bestimmen (z. B. durch das Modul des digitalen Assistenten 726), ob die Benutzerrückmeldung eine Unzufriedenheit mit der Initiierung des virtuellen Assistenten anzeigt. In einigen Beispielen schließt die Benutzerrückmeldung, die auf Unzufriedenheit mit der virtuellen Assistentensitzung hinweist, verbale und/oder textuelle Benutzereingaben ein, die dem initiierten virtuellen Assistenten zur Verfügung gestellt werden (z. B. Benutzereingaben wie „Nicht jetzt“, „Warum bist du hier?“, „Geh weg“ und dergleichen). In einigen Beispielen schließt die Benutzerrückmeldung, die auf Unzufriedenheit mit der Initiierung des virtuellen Assistenten hinweist, die Benutzereingabe ein, die die virtuelle Assistentensitzung deaktiviert, nachdem die virtuelle Assistentensitzung initiiert wurde (z. B. kurz (z.B. 0,5, 1, 2, 3, 4, 5 Sekunden) danach). Eine Benutzereingabe, die die virtuelle Assistentensitzung deaktiviert, schließt in einigen Beispielen einen Tastendruck, eine gesprochene Eingabe und/oder eine Bewegungseingabe ein.
  • 8E veranschaulicht beispielhafte Techniken zum Deaktivieren einer virtuellen Assistentensitzung. Insbesondere hat der Benutzer 802 die Vorrichtung 800 aus einer anhebenden in eine angehobene Stellung gehoben und liefert die Audioeingabe „Tinas Urlaub beginnt diesen Sonntag und sie fliegt mit ihrem Mann nach Hawaii, um Vulkane und Delfine am Strand zu sehen ...“. In diesem Beispiel ist die Audioeingabe nicht an die Vorrichtung 800 gerichtet, sondern an eine andere Person, mit der der Benutzer 802 spricht (z. B. eine Person, die links vom Benutzer 802 steht und die der Benutzer 802 ansieht). Basierend auf der Bewegungseingabe und der Audioeingabe wird jedoch versehentlich eine virtuelle Assistentensitzung initiiert. Zum Beispiel wird eine Benutzerschnittstelle des virtuellen Assistenten auf der Anzeige 804 angezeigt. In dem vorliegenden Beispiel wird die virtuelle Assistentensitzung deaktiviert, nachdem sie initiiert worden ist (z. B. hört die Anzeige 804 auf, eine Benutzerschnittstelle des virtuellen Assistenten anzuzeigen) gemäß den nachstehend erörterten Techniken.
  • In einigen Beispielen schließt das Deaktivieren einer virtuellen Assistentensitzung das Beenden einer Anzeige einer Benutzerschnittstelle, die der virtuellen Assistentensitzung zugeordnet ist, ein. In einigen Beispielen schließt das Deaktivieren einer virtuellen Assistentensitzung den Verzicht auf die Reaktion auf die Audioeingabe ein. In einigen Beispielen schließt das Deaktivieren einer virtuellen Assistentensitzung das Abschalten einer Anzeige ein. In einigen Beispielen schließt das Deaktivieren einer virtuellen Assistentensitzung das Bereitstellen einer Audio- und/oder haptischen Ausgabe ein. In einigen Beispielen schließt das Deaktivieren einer virtuellen Assistentensitzung das Ausschalten der Prozessorschaltung (z. B. der Schaltung eines Hauptprozessors), die für den Betrieb eines virtuellen Assistenten konfiguriert ist, ein. In einigen Beispielen beinhaltet das Deaktivieren eines virtuellen Assistenten das Deaktivieren eines oder mehrerer Programme oder Module (z. B. des Moduls des digitalen Assistenten 726).
  • In einigen Beispielen wird das Deaktivieren einer virtuellen Assistentensitzung und/oder das Bestimmen, ob eine virtuelle Assistentensitzung deaktiviert werden soll, vor dem Anzeigen einer der virtuellen Assistentensitzung zugeordneten Benutzerschnittstelle durchgeführt. In anderen Beispielen wird das Deaktivieren einer virtuellen Assistentensitzung und/oder das Bestimmen, ob eine virtuelle Assistentensitzung deaktiviert werden soll, nach dem Anzeigen einer der virtuellen Assistentensitzung zugeordneten Benutzerschnittstelle durchgeführt.
  • In einigen Beispielen beinhaltet das Bestimmen, ob eine virtuelle Assistentensitzung deaktiviert werden soll, das Bestimmen, ob ein oder mehrere Kriterien zum Deaktivieren einer virtuellen Assistentensitzung erfüllt sind. In einigen Beispielen beinhaltet das Bestimmen, ob eine virtuelle Assistentensitzung deaktiviert werden soll, das Bestimmen einer Wahrscheinlichkeit des Deaktivierens einer virtuellen Assistentensitzung. Wenn beispielsweise ein Kriterium zum Deaktivieren einer virtuellen Assistentensitzung erfüllt ist, wird die Wahrscheinlichkeit des Deaktivierens einer virtuellen Assistentensitzung erhöht. Wenn ein Kriterium zum Deaktivieren eines virtuellen Assistenten nicht erfüllt ist, wird die Wahrscheinlichkeit des Deaktivierens einer virtuellen Assistentensitzung verringert. In einigen Beispielen wird eine Bestimmung durchgeführt, um eine virtuelle Assistentensitzung zu deaktivieren, wenn die Wahrscheinlichkeit des Deaktivierens der virtuellen Assistentensitzung größer als ein vorbestimmter Schwellenwert ist und/oder wenn ein oder mehrere Kriterien zum Deaktivieren der virtuellen Assistentensitzung erfüllt sind. In einigen Beispielen wird eine beliebige der vorstehenden Bestimmungen durch ein oder mehrere Modelle zum Deaktivieren einer virtuellen Assistentensitzung (z. B. ein Audiomodell, ein Bewegungsmodell, ein Anheben-um-zu-sprechen-Modell) durchgeführt.
  • Zusätzlich wird in einigen Beispielen jede der Techniken zum Deaktivieren einer virtuellen Assistentensitzung, die nachstehend diskutiert werden, in analoger Weise bei der Bestimmung angewendet, ob eine virtuelle Assistentensitzung initiiert werden soll. Wenn beispielsweise ein oder mehrere der nachstehend beschriebenen Kriterien zur Deaktivierung einer virtuellen Assistentensitzung erfüllt sind (z. B. wie durch ein Bewegungsmodell, ein Audiomodell und/oder ein Anheben-um-zu-sprechen-Modell bestimmt), wird ein virtueller Assistent nicht initiiert und/oder eine Wahrscheinlichkeit der Initiierung einer virtuellen Assistentensitzung wird verringert. In ähnlicher Weise werden in einigen Beispielen alle vorstehend erläuterten Techniken zum Bestimmen, dass eine virtuelle Assistentensitzung nicht initiiert werden soll, in analoger Weise bei der Bestimmung angewendet, ob eine virtuelle Assistentensitzung deaktiviert werden soll. Wenn zum Beispiel ein oder mehrere der vorstehend beschriebenen Kriterien zum Initiieren einer virtuellen Assistentensitzung nicht erfüllt sind, wird eine virtuelle Assistentensitzung deaktiviert und/oder eine Wahrscheinlichkeit des Deaktivierens einer virtuellen Assistentensitzung erhöht.
  • Beispielhafte Kriterien zum Deaktivieren einer virtuellen Assistentensitzung werden nun erläutert.
  • Ein beispielhaftes Kriterium schließt ein, ob der Inhalt der Audioeingabe anzeigt, dass die Audioeingabe an eine Vorrichtung gerichtet ist. Audioeingaben, bei denen es unwahrscheinlich ist, dass sie an die Vorrichtung gerichtet sind, sollten in einigen Beispielen die virtuelle Assistentensitzung deaktivieren. Beispielhafter Audioinhalt, der analysiert wird (z. B. durch die Vorrichtung 800 und/oder das Serversystem 108), um zu bestimmen, ob die Audioeingabe an eine Vorrichtung gerichtet ist, beinhaltet linguistische Inhalte (z. B. Satzstruktur, Satzlänge, ob Wörter und/oder Schlüsselwörter enthalten sind, Satztyp (z. B. Frage oder Anweisung) und dergleichen) und ob die Vorrichtung eine in der Audioeingabe angegebene Aufgabe ausführen kann. Aufgrund des linguistischen Inhalts wird beispielsweise die Audioeingabe „Tinas Urlaub beginnt diesen Samstag und sie fliegt mit ihrem Mann nach Hawaii, um Vulkane und Delfine am Strand zu sehen ...“ als wahrscheinlich nicht an die Vorrichtung gerichtet bestimmt. Gemäß einer Bestimmung, dass die Audioeingabe wahrscheinlich nicht an die Vorrichtung gerichtet ist, ist ein Kriterium zum Deaktivieren einer virtuellen Assistentensitzung erfüllt. Dementsprechend wird in einigen Beispielen die virtuelle Assistentensitzung deaktiviert (z. B. sendet das Serversystem 108 ein Steuersignal an die Vorrichtung 800, das die Vorrichtung 800 anweist, eine virtuelle Assistentensitzung zu deaktivieren).
  • In einigen Beispielen wird gemäß einer Bestimmung, dass die Audioeingabe wahrscheinlich an die Vorrichtung gerichtet ist, ein Kriterium zum Deaktivieren einer virtuellen Assistentensitzung nicht erfüllt. Dementsprechend wird in einigen Beispielen eine virtuelle Assistentensitzung nicht deaktiviert (z. B. wird eine Benutzerschnittstelle des virtuellen Assistenten angezeigt, die Vorrichtung tastet Audioeingaben ab und dergleichen).
  • Ein beispielhaftes Kriterium schließt ein, ob eine Absicht für die Audioeingabe bestimmt werden kann (z. B. mit ausreichender Sicherheit durch die Vorrichtung 800 und/oder durch das Serversystem 108). So können beispielsweise bestimmte Audioeingaben (z. B. Husten, Niesen, lange Sätze, kurze Ausdrücke wie „uhm“, „yay“, und dergleichen) nicht als entsprechenden Absichten bestimmt werden oder die jeweiligen Vertrauenswerte der bestimmten Absichten sind niedrig (z. B. geringer als ein vorgegebener Schwellenwert). Dementsprechend sollten diese Audioeingaben in einigen Beispielen eine virtuelle Assistentensitzung deaktivieren. So ist in einigen Beispielen, wenn eine Absicht für eine Audioeingabe nicht bestimmt werden kann, ein Kriterium erfüllt. In einigen Beispielen wird, wenn eine Vertrauenswert einer Absicht für die Audioeingabe niedrig ist, ein Kriterium erfüllt. In einigen Beispielen wird, wenn eine Absicht für eine Audioeingabe bestimmt wird, ein Kriterium nicht erfüllt. In einigen Beispielen wird, wenn ein Vertrauenswert einer Absicht für die Audioeingabe hoch ist (z. B. größer als ein vorbestimmter Schwellenwert), ein Kriterium nicht erfüllt.
  • Ein beispielhaftes Kriterium schließt eine Dauer der Audioeingabe ein. Beispielsweise ist es unwahrscheinlich, dass kurze Audioeingaben (z. B. Husten, Niesen, kurze Ausdrücke wie „uhm“, „yay“ und dergleichen) an eine Vorrichtung gerichtet werden, so dass solche Audioeingaben eine virtuelle Assistentensitzung deaktivieren sollten. Dementsprechend wird in einigen Beispielen eine Audioeingabedauer mit einer vorbestimmten Dauer verglichen (z. B. 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1 Sekunden). Wenn die Audioeingabedauer kürzer als die vorbestimmte Dauer ist, wird ein Kriterium erfüllt. Wenn die Audioeingabedauer länger als die vorbestimmte Dauer ist, wird ein Kriterium nicht erfüllt.
  • 8F veranschaulicht ferner beispielhafte Techniken zum Deaktivieren einer virtuellen Assistentensitzung. Insbesondere hat der Benutzer 802 in 8F die Vorrichtung 800 aus einer anhebenden in eine angehobene Stellung gehoben und liefert die Audioeingabe „Es findet am Samstag ein wichtiges Meeting statt“. In diesem Beispiel ist die Audioeingabe nicht an die Vorrichtung 800 gerichtet, sondern an eine andere Person, mit der der Benutzer 802 spricht. Basierend auf der Bewegungseingabe und der Audioeingabe wird jedoch versehentlich eine virtuelle Assistentensitzung initiiert. Der Benutzer 802 bemerkt diese unbeabsichtigte Initiierung (sieht z. B. eine Schnittstelle des virtuellen Assistenten auf der Anzeige 804) und senkt die Vorrichtung 800 von einer angehobenen Stellung in eine absenkende Stellung, wie gezeigt. Zum Beispiel bewegt der Benutzer 800 die Vorrichtung von einer angehobenen Stellung weg, so dass sie von seinem Mund/Gesicht entfernt ist. Gemäß einer solchen Bewegung der Vorrichtung 800 wird die virtuelle Assistentensitzung deaktiviert, wie gezeigt.
  • Dementsprechend schließt ein beispielhaftes Kriterium für das Deaktivieren einer virtuellen Assistentensitzung ein, ob eine Bewegungseingabe einen Wechsel von einer angehobenen Stellung zu einer absenkenden Stellung anzeigt. In einigen Beispielen wird, wenn eine Bewegungseingabe einen Wechsel von einer angehobenen Stellung zu einer absenkenden Stellung anzeigt, ein Kriterium erfüllt. Wenn eine Bewegungseingabe einen Wechsel von einer angehobenen Stellung in eine absenkende Stellung nicht anzeigt, ist ein Kriterium nicht erfüllt. Auf diese Weise deaktiviert das Absenken einer Vorrichtung von einer angehobenen Stellung in eine absenkende Stellung eine initiierte virtuelle Assistentensitzung in einigen Beispielen.
  • Ein beispielhaftes Kriterium schließt ein, ob eine Zeit, die mit dem Absenken einer Vorrichtung aus einer angehobenen Stellung verbunden ist, vor einer Zeit liegt, die dem Ende der Spracheingabe in der Audioeingabe zugeordnet ist. So wird beispielsweise ein erster Zeitpunkt, der dem Ende der Spracheingabe in der Audioeingabe „Es findet am Samstag ein wichtiges Meeting statt“ zugeordnet ist, bestimmt. Eine zweite Zeit, die dem Wechsel von einer angehobenen Stellung zu einer absenkenden Stellung zugeordnet ist, wird bestimmt. Der erste Zeitpunkt wird mit dem zweiten Zeitpunkt verglichen. In einigen Beispielen wird, wenn der zweite Zeitpunkt vor dem ersten Zeitpunkt liegt, ein Kriterium erfüllt. In einigen Beispielen wird, wenn der zweite Zeitpunkt nach dem ersten Zeitpunkt liegt, ein Kriterium nicht erfüllt. Auf diese Weise ist die Spracheingabe, wenn der Benutzer 802 sein Handgelenk senkt, bevor er zu Ende spricht, wahrscheinlich nicht an die Vorrichtung 800 gerichtet, so dass eine virtuelle Assistentensitzung deaktiviert wird. Beispielhafte Techniken zur Bestimmung des Endes einer Spracheingabe (z. B. Endpunkt) in der Audioeingabe sind in der am 4. September 2015 eingereichten US-Patentanmeldung Nr. 14/846,667 mit dem Titel „Context-Based Endpoint Detection“ und in der am 30. April 2015 eingereichten US-Patentanmeldung Nr. 14/701,147 mit dem Titel „Robust End-Pointing of Speech Signals Using Speaker Recognition“ beschrieben, deren Inhalt hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • In einigen Beispielen wird ein Wechsel von einer abgesenkten Stellung zu einer anhebenden Stellung verwendet, um einen Sprachendpunkt in einer Audioeingabe zu bestimmen. Insbesondere wird in einigen Beispielen der Zeitpunkt, der mit dem Wechsel der Vorrichtung von einer angehobenen Stellung zu einer abgesenkten Stellung verbunden ist, verwendet, um einen Sprachendpunkt zu bestimmen. In einigen Beispielen wird die beendete Spracheingabe dann verarbeitet, um eine Benutzerabsicht zu bestimmen und eine Aufgabe wird basierend auf der bestimmten Benutzerabsicht gemäß den Techniken durchgeführt, die oben mit Bezug auf 7A-C diskutiert wurden. Dementsprechend zeigt der Benutzer 802 in einigen Beispielen an, dass er das Sprechen beendet hat, indem er die Vorrichtung 800 absenkt, wie in 8F gezeigt.
  • Beispielhafte Techniken zum Übertragen einer Kommunikation
  • In einigen Beispielen werden Audioeingabe und Bewegungseingabe verwendet, um andere Vorrichtungsfunktionen als das Initiieren eines virtuellen Assistenten aufzurufen. Zu diesen Funktionen gehören z. B. das Annehmen eines Telefonats und das Öffnen eines Kommunikationskanals in einer Kommunikationssitzung (z. B. einer „Walkie-Talkie“-Sitzung) mit einer externen Vorrichtung. Wenn sich die Vorrichtung beispielsweise in einer Kommunikationssitzung mit einer oder mehreren anderen (z. B. externen) Vorrichtungen befindet, kann ein Benutzer die Vorrichtung wie oben beschrieben in die Nähe seines Mundes anheben und eine Audioeingabe bereitstellen. Es wird bestimmt, dass die Bewegungseingabe und die Audioeingabe geeignet sind, um eine Kommunikation mit einer oder mehreren anderen Vorrichtungen zu initiieren und die Audioeingabe wird zu der einen oder den mehreren anderen Vorrichtungen geliefert (z. B. übertragen). Um auf diese Weise mit anderen Benutzern/Vorrichtungen zu kommunizieren, die an einer Kommunikationssitzung mit der Benutzervorrichtung teilnehmen, hebt der Benutzer die Vorrichtung einfach in die Nähe seines Mundes und stellt Audioeingaben bereit, die an die eine oder andere Vorrichtung übertragen werden.
  • Da in einigen Beispielen eine gleiche oder eine ähnliche Kombination von Bewegungseingabe und Audioeingabe mehrere Vorrichtungsfunktionen aufrufen kann (z. B. Initiieren eines virtuellen Assistenten, Beantworten eines Telefonanrufs), kann es wichtig sein zu bestimmen, welche Vorrichtungsfunktion aufgerufen werden soll. Anderenfalls kann eine Audioeingabe und eine Bewegungseingabe, mit der ein Benutzer beabsichtigt, eine virtuelle Assistentensitzung zu initiieren, versehentlich bewirken, dass eine andere Funktion ausgeführt wird (z. B. veranlassen, dass die Vorrichtung eines anderen Benutzers das Audio ausgibt). Dementsprechend wird in einigen Beispielen ein Kontext der Vorrichtung verwendet, um zu bestimmen, welche Vorrichtungsfunktion die Audioeingabe und die Bewegungseingabe aufrufen sollen. Wenn auf diese Weise der bestimmte Kontext für die Initiierung einer virtuellen Assistentensitzung geeignet ist, werden die Audioeingabe und die Bewegungseingabe bei der Entscheidung, ob eine virtuelle Assistentensitzung initiiert werden soll, berücksichtigt. Wenn der bestimmte Kontext für die Beantwortung eines Telefonanrufs geeignet ist, dann werden die Audioeingabe und die Bewegungseingabe berücksichtigt, um beispielsweise zu bestimmen, ob der Telefonanruf zu beantworten ist.
  • Dementsprechend wird in einigen Beispielen ein Kontext der elektronischen Vorrichtung bestimmt. Es wird bestimmt, ob der Kontext eine vorbestimmte Art von Kontext ist, der eine Kommunikation mit einer externen elektronischen Vorrichtung darstellt. In einigen Beispielen werden, wenn der Kontext die vorgegebene Art von Kontext ist, die erfassten Audioeingaben und die erfassten Bewegungseingaben nicht verwendet, um zu bestimmen, ob eine virtuelle Assistentensitzung eingeleitet werden soll, sondern um festzustellen, ob eine andere Vorrichtungsfunktion ausgeführt werden soll. In einigen Beispielen werden, wenn der Kontext nicht der vorbestimmte Kontext ist, die erfassten Audioeingaben und die erfassten Bewegungseingaben verwendet, um zu bestimmen, ob eine virtuelle Assistentensitzung gemäß den oben beschriebenen Techniken initiiert werden soll.
  • Der Kontext einer Vorrichtung ist der vorbestimmte Typ von Kontext, der beispielsweise eine Kommunikation mit einer externen elektronischen Vorrichtung darstellt, wenn eine oder mehrere der nachstehend genannten Bedingungen erfüllt sind.
  • Eine beispielhafte Bedingung schließt ein, dass die Vorrichtung aktuell eine Kommunikation (z. B. einen Telefonanruf, eine Textnachricht, eine E-Mail, eine Sprachnachricht usw.) von einer externen elektronischen Vorrichtung empfängt. Wenn die Vorrichtung aktuell die Kommunikation empfängt, ist eine Bedingung erfüllt. Wenn die Vorrichtung die Kommunikation aktuell nicht empfängt, ist eine Bedingung nicht erfüllt. Auf diese Weise werden, wenn eine Vorrichtung aktuell einen Telefonanruf empfängt und ein Benutzer eine Bewegungseingabe und eine Audioeingabe bereitstellt, die Audioeingabe und die Bewegungseingabe bei der Bestimmung berücksichtigt, ob der Telefonanruf zu beantworten ist. Die Audioeingabe und die Bewegungseingabe werden bei der Bestimmung, ob beispielsweise eine virtuelle Assistentensitzung initiiert werden soll, nicht berücksichtigt. Wenn bestimmt wird, den Telefonanruf zu beantworten, wird die Audioeingabe beispielsweise an eine externe Vorrichtung (z. B. die Vorrichtung des Anrufers) übertragen. Auf diese Weise kann ein Benutzer seine Vorrichtung einfach anheben und Audio bereitstellen, um sowohl den Telefonanruf zu beantworten als auch zu bewirken, dass das Audio zur Vorrichtung des Anrufers übertragen wird.
  • Eine beispielhafte Bedingung schließt ein, dass die Vorrichtung kürzlich eine Kommunikation (z. B. einen Telefonanruf, eine Textnachricht und E-Mail, eine Sprachnachricht usw.) von einer externen elektronischen Vorrichtung empfangen hat. Wenn eine Vorrichtung beispielsweise eine Kommunikation empfängt, ist eine Bedingung für eine kurze Zeitdauer (z. B. 1, 2, 3, 4, 5, 10, 15, 30 Sekunden) nach dem Empfang der Kommunikation erfüllt. Nachdem die kurze Zeitdauer abgelaufen ist, ist eine Bedingung nicht erfüllt. Dementsprechend werden in einigen Beispielen, wenn ein Benutzer eine Bewegungseingabe und eine Audioeingabe kurz nach dem Empfang einer Nachricht (z. B. einem Text oder einer E-Mail) bereitstellt, die Bewegung und die Audioeingabe bei der Bestimmung berücksichtigt, ob auf die Nachricht zu antworten ist. Die Bewegungseingabe und die Audioeingabe werden bei der Bestimmung, ob eine virtuelle Assistentensitzung initiiert werden soll, nicht berücksichtigt. Auf diese Weise kann der Benutzer, wenn er eine Nachricht (z. B. Text oder E-Mail) erhält, auf die Nachricht reagieren, indem er einfach seine Vorrichtung anhebt und kurz nach dem Empfang der Nachricht Audioeingaben bereitstellt. In einigen Beispielen wird die Audioeingabe in Text umgewandelt und der Text wird an die Vorrichtung des Nachrichtensenders übertragen.
  • Eine beispielhafte Bedingung schließt ein, dass sich die Vorrichtung aktuell in einer Kommunikationssitzung (z. B. einer „Walkie-Talkie“-Sitzung) mit einer externen elektronischen Vorrichtung befindet. Wenn sich die Vorrichtung aktuell in der Kommunikationssitzung befindet, ist eine Bedingung erfüllt. Wenn sich die Vorrichtung aktuell nicht an der Kommunikationssitzung befindet, ist eine Bedingung nicht erfüllt. Dementsprechend werden die Bewegungseingabe und die Audioeingabe bei der Bestimmung, ob eine Kommunikation übertragen werden soll, berücksichtigt, wenn die Vorrichtung aktuell an einer Kommunikationssitzung teilnimmt (z. B. ein oder mehrere Programme ausgeführt werden, die für die Bereitstellung der Kommunikationssitzung konfiguriert sind) und der Benutzer Bewegungseingabe und Audioeingabe bereitstellt. Auf diese Weise kann ein Benutzer Audio an eine andere Vorrichtung übertragen, die an einer Kommunikationssitzung mit der Vorrichtung des Benutzers teilnimmt, indem er einfach seine Vorrichtung anhebt und das Audio spricht.
  • In einigen Beispielen wird, wenn der Kontext der vorbestimmte Typ von Kontext ist, der eine Kommunikation mit einer externen elektronischen Vorrichtung darstellt, basierend auf erfasster Audioeingabe und erfasster Bewegungseingabe bestimmt, ob eine der Audioeingabe zugeordnete Kommunikation zu der externen elektronischen Vorrichtung übertragen werden soll. In einigen Beispielen wird das Bestimmen, ob die Kommunikation übertragen werden soll, analog zu den vorstehend diskutierten Techniken des Bestimmens durchgeführt, ob eine virtuelle Assistentensitzung initiiert werden soll (z. B. basierend auf Audioeingabe, Bewegungseingabe und/oder anderer/anderen Eingabe(n)). Das heißt, wenn eine Bewegungseingabe, Audioeingabe und/oder andere Eingabe(n) geeignet sind, um eine virtuelle Assistentensitzung zu initiieren, dann sind die Bewegungseingabe, Audioeingabe und/oder andere Eingabe(n) ähnlich geeignet, um eine Übertragung der Kommunikation zu bewirken. In einigen Beispielen werden die Audioeingabe, die Bewegungseingabe und/oder andere Eingabe(n) einem Modell zur Verfügung gestellt (z. B. Anheben-um-zu-sprechen-Modell 924) und das Modell bestimmt, ob die Kommunikation übertragen werden soll.
  • In einigen Beispielen wird, wenn der Kontext nicht der vorbestimmte Typ von Kontext ist, der die Kommunikation mit einer externen elektronischen Vorrichtung darstellt, basierend auf der Audioeingabe und der Bewegungseingabe bestimmt, ob eine virtuelle Assistentensitzung initiiert werden soll (z. B. gemäß den vorstehend erörterten Techniken).
  • In einigen Beispielen wird gemäß einer Bestimmung zum Übertragen der dem Audioeingang zugeordneten Kommunikation an die externe elektronische Vorrichtung die dem Audioeingang zugeordnete Kommunikation an die externe elektronische Vorrichtung übertragen. In einigen Beispielen schließt die der Audioeingabe zugeordnete Kommunikation ein Signal, das den Audioinhalt der Audioeingabe repräsentiert (z. B. wenn der Benutzer einen Telefonanruf beantwortet oder an einer Kommunikationssitzung teilnimmt) ein. In einigen Beispielen wird die Audioeingabe in Text umgewandelt und die der Audioeingabe zugeordnete Kommunikation schließt ein Signal ein, das den Text repräsentiert (z. B. wenn der Benutzer auf eine Text- oder E-Mail-Nachricht antwortet).
  • In einigen Beispielen wird gemäß einer Bestimmung, die der Audioeingabe zugeordnete Kommunikation nicht an die externe elektronische Vorrichtung zu übertragen, die Übertragung der der Audioeingabe zugeordneten Kommunikation an die externe elektronische Vorrichtung unterlassen. Beispielsweise werden die erfasste Audioeingabe und die erfasste Bewegungseingabe verworfen und/oder es wird kein zu der externen elektronischen Vorrichtung zu übertragendes Signal erzeugt.
  • In einigen Beispielen senkt ein Benutzer, nachdem bestimmt wurde, die der Audioeingabe zugeordnete Kommunikation an die externe elektronische Vorrichtung zu übertragen, die Vorrichtung ab (z. B. aus einer angehobenen Stellung, wie in 8F gezeigt). In einigen Beispielen bewirkt das Absenken der Vorrichtung, dass eine oder mehrere Funktionen in Abhängigkeit von dem Zustand der Vorrichtung durchgeführt werden (z. B. nimmt die Vorrichtung an einer Kommunikationssitzung teil, die Vorrichtung nimmt einen Telefonanruf entgegen, die Vorrichtung empfing eine Nachricht, usw.). Zum Beispiel verursacht ein Absenken der Vorrichtung, wenn die Vorrichtung an einem Telefonanruf beteiligt ist, in einigen Beispielen eine Beendigung des Telefonanrufs. Dementsprechend senkt ein Benutzer, um einen Telefonanruf zu beenden (z. B. nach Beantworten des Telefonanrufs), in einigen Beispielen einfach die Vorrichtung ab.
  • Als weiteres Beispiel bewirkt das Absenken der Vorrichtung, nachdem der Benutzer die Vorrichtung angehoben hat, um auf eine Nachricht zu antworten, dass die Nachricht gesendet (z. B. übertragen) wird. Auf diese Weise kann ein Benutzer, um auf eine Nachricht zu antworten, die Vorrichtung anheben und eine Antwort auf die Nachricht sprechen. Die Antwort des Benutzers wird in Text umgewandelt und das Absenken der Vorrichtung bewirkt, dass die Nachricht gesendet wird (z. B. an den Sender der Nachricht).
  • Als noch ein weiteres Beispiel schließt das Absenken der Vorrichtung, wenn die Vorrichtung an einer Kommunikationssitzung (z. B. einer Walkie-Talkie-Sitzung) mit einer oder mehreren externen Vorrichtungen teilnimmt, einen Kommunikationskanal mit der einen oder den mehreren externen Vorrichtungen (z. B. wird die erfasste Audioeingabe an der Vorrichtung nicht zu der einen oder den mehreren externen Vorrichtungen übertragen). Um auf diese Weise Audio an eine andere Vorrichtung zu senden, die an einer Kommunikationssitzung mit der Vorrichtung eines Benutzers teilnimmt, hebt der Benutzer seine Vorrichtung an und stellt das Audio zur Verfügung. Der Benutzer kann dann seine Vorrichtung absenken, um die Übertragung von Audio zu der anderen Vorrichtung zu stoppen.
  • In einigen Beispielen werden die Audioeingabe, die Bewegungseingabe und/oder der bestimmte Kontext bereitgestellt, um ein Modell zu trainieren (z. B. Anheben-um-zu-sprechen-Modell 924). Beispielsweise werden Audioeingaben, Bewegungseingaben und/oder ein bestimmter Kontext, die die Übertragung einer Kommunikation verursacht haben, bereitgestellt, um das Modell zu trainieren (z. B. um erfolgreich eine Übertragung von Kommunikationen basierend auf zukünftigen korrekten Audioeingaben, Bewegungseingaben und/oder Kontext zu bewirken). Als weiteres Beispiel werden Audioeingaben, Bewegungseingaben und/oder der bestimmte Kontext, die keine Übertragung einer Kommunikation verursacht haben, bereitgestellt, um das Modell zu trainieren (z. B. um eine unbeabsichtigte Übertragung von Kommunikationen basierend auf zukünftigen falschen Audioeingaben, Bewegungseingaben und/oder Kontext zu verhindern). In einigen Beispielen ist das Modell (z. B. Modell 924), das bestimmt, ob eine der Audioeingabe zugeordnete Kommunikation an eine externe elektronische Vorrichtung übertragen werden soll, dasselbe Modell, das bestimmt, ob eine virtuelle Assistentensitzung initiiert werden soll. Dementsprechend ermöglicht das Training eines solchen Modells dem Modell, korrekt zu bestimmen, ob eine virtuelle Assistentensitzung initiiert werden soll oder ob eine andere Vorrichtungsfunktion basierend auf der bereitgestellten Bewegungseingabe, der bereitgestellten Audioeingabe und dem Kontext ausgeführt werden soll. Wie bereits erwähnt, kann dies in Beispielen wünschenswert sein, in denen eine gleiche oder ähnliche Kombination aus Bewegungseingabe und Audioeingabe mehrere Vorrichtungsfunktionen aufrufen kann. In einigen Beispielen wird, nachdem bestimmt wurde, die mit der Audioeingabe verbundene Kommunikation an eine externe elektronische Vorrichtung zu übertragen, die Übertragung der Kommunikation verhindert. Dies ermöglicht es Benutzern, die unbeabsichtigte Übertragung von Kommunikationen zu verhindern (z. B. wenn eine Vorrichtung fälschlicherweise bestimmt hat, eine Kommunikation basierend auf Audioeingabe und Bewegungseingabe zu übertragen). Nachdem beispielsweise bestimmt wurde, die Kommunikation zu übertragen, gibt eine Vorrichtung für kurze Zeit (z. B. 1 Sekunde, 2 Sekunden, 3 Sekunden usw.) einen Hinweis (z. B. eine optische Hinweis, einen akustische Hinweis und/oder einen haptische Hinweis) aus, der anzeigt, dass die Vorrichtung die Kommunikation übertragen wird (z. B. nach Ablauf der kurzen Zeitdauer). Während dieser kurzen Dauer wird, wenn bestimmt wird, eine Übertragung der Kommunikation zu verhindern, eine Übertragung der Kommunikation verhindert (z. B. wird die Kommunikation nicht übertragen und/oder verworfen).
  • In einigen Beispielen wird das Bestimmen, ob eine Übertragung der Kommunikation verhindert werden soll, analog zu den oben beschriebenen Techniken zum Bestimmen, ob eine virtuelle Assistentensitzung deaktiviert werden soll, durchgeführt. Zum Beispiel senkt ein Benutzer die Vorrichtung (z. B. wie in 8F gezeigt) während der kurzen Zeitdauer ab, um eine Übertragung der Kommunikation zu verhindern. In einigen Beispielen werden, wenn die Übertragung der Kommunikation verhindert wird, die Eingabe(en) und der Kontext, aus dem die Übertragung der Kommunikation bestimmt wurde, als falsche Eingabe(en) und falscher Kontext betrachtet. In einigen Beispielen werden die falsche(n) Eingabe(en) und/oder der falsche Kontext bereitgestellt, um ein Modell zu trainieren (z. B. um zukünftige falsche Bestimmungen zum Übertragen einer Kommunikation zu verhindern).
  • 9 stellt ein Blockdiagramm eines Systems 900 dar, das konfiguriert ist, um Audioeingaben und Bewegungseingaben gemäß einigen Beispielen zu verarbeiten. In einigen Beispielen wird das System 900 auf einem eigenständigen Computersystem implementiert (z. B. irgendeiner der Vorrichtungen 104, 106, 200, 400, 600 oder 800). In einigen Beispielen ist das System 900 über mehrere Vorrichtungen verteilt. Beispielsweise sind einige der Komponenten und Funktionen des Systems 900, wie z.B. in 1 gezeigt, in einen Server-Teil und einen Client-Teil aufgeteilt, wobei sich der Client-Teil auf einer oder mehreren Benutzervorrichtungen (z. B. die Vorrichtungen 104, 106, 200, 400, 600 oder 800) befindet und mit dem Server-Teil (z. B. Serversystem 108) über eines oder mehrere Netzwerke kommuniziert.
  • Die entsprechenden Funktionen jedes der Blöcke von 9, die nachstehend erläutert werden, sind wahlweise durch Hardware, Software oder eine Kombination von Hardware und Software implementiert, um die Prinzipien der hierin beschriebenen Beispiele umzusetzen. Es sei ferner darauf hingewiesen, dass das System 900 nur ein Beispiel eines Systems zur Verarbeitung von Audioeingaben und Bewegungseingaben ist, und dass das System 900 mehr oder weniger Komponenten als dargestellt aufweisen, zwei oder mehr Komponenten kombinieren oder eine andere Konfiguration oder Anordnung der Komponenten aufweisen kann. Ferner versteht es sich, dass, obwohl die nachfolgende Erläuterung Funktionen beschreibt, die an einer einzelnen Komponente des Systems 900 durchgeführt werden, solche Funktionen an anderen Komponenten des Systems 900 durchgeführt werden können und dass solche Funktionen an mehr als einer Komponente des Systems 900 durchgeführt werden können.
  • Das System 900 schließt eine Eingabeeinheit 902 ein, die mit der Verarbeitungseinheit 916 und mit der Modelleinheit 922 gekoppelt ist. Die Eingabeeinheit schließt verschiedene Eingabevorrichtungen, wie beispielsweise ein oder mehrere Mikrofone 904, einen oder mehrere Beschleunigungsmesser 906 und optional ein oder mehrere Gyroskope 908, eine oder mehrere Kameras 910, einen oder mehrere Farbsensoren 912, einen oder mehrere Lichtsensoren 914 und/oder einen oder mehrere Näherungssensoren 932 ein. Die von den jeweiligen Eingabevorrichtungen der Eingabeeinheit 902 gesammelten Eingaben werden der Verarbeitungseinheit 916 und der Modelleinheit 922 bereitgestellt.
  • Die Verarbeitungseinheit 916 schließt einen oder mehrere Prozessoren (z. B. irgendeinen von Prozessor(en), 220, 616 und 704) ein. Zum Beispiel schließt die Verarbeitungseinheit 916 den Hauptprozessor 918 und den Niederleistungsprozessor 920 ein. In einigen Beispielen ist der Hauptprozessor 918 ein Anwendungsprozessor, der beispielsweise das Betriebssystem und Anwendungen ausführt, einschließlich des digitalen Assistenten der Vorrichtung. In einigen Beispielen verbraucht der Niederleistungsprozessor 920 während des Betriebs weniger Leistung als der Hauptprozessor 918, führt andere computerausführbare Anweisungen als der Hauptprozessor 918 aus und/oder ist physisch kleiner als der Hauptprozessor 918.
  • In einigen Beispielen tastet der Niederleistungsprozessor 920 die Eingabe von der Eingabeeinheit 902 ab. In einigen Beispielen ist der Niederleistungsprozessor 920 in Bezug auf die Arten von Eingaben, die er von der Eingabeeinheit 902 abtastet, begrenzt. Beispielsweise tastet der Niederleistungsprozessor 920 nur Bewegungseingaben von einem oder mehreren Beschleunigungsmessern 906 und/oder von einem oder mehreren Gyroskopen 908 ab. In einigen Beispielen ist der Niederleistungsprozessor 920 in Bezug auf die Arten von Eingaben, die er von der Eingabeeinheit 902 abtastet, nicht begrenzt. In einigen Beispielen aktiviert der Niederleistungsprozessor 920 den Hauptprozessor 918 basierend auf der Eingabe von der Eingabeeinheit 902 gemäß den oben beschriebenen Beispielen.
  • In einigen Beispielen tastet der Hauptprozessor 918 die Eingabe von der Eingabeeinheit 902 ab. So tastet der Hauptprozessor 918 beispielsweise die Audioeingabe von einem oder mehreren Mikrofonen 904 und/oder die Bewegungseingabe von einem oder mehreren Beschleunigungsmessern 906 und/oder von einem oder mehreren Gyroskopen 908 ab. In einigen Beispielen tastet der Hauptprozessor 918 die Audioeingabe entsprechend der Aktivierung durch den Niederleistungsprozessor 920 gemäß den oben beschriebenen Beispielen ab.
  • Die Modelleinheit 922 schließt das Anheben-um-zu-sprechen-Modell 924, die Modelltrainiereinheit 930 und die Kontexteinheit 934 ein. Das Anheben-um-zu-sprechen-Modell 924 schließt optional ein Bewegungsmodell 926 und ein Audiomodell 928 ein. Fachleute werden erkennen, dass, obwohl die Funktionen der Modelleinheit 922 getrennt von der Verarbeitungseinheit 916 beschrieben werden, in einigen Beispielen die Funktionen der Modelleinheit 922 durch die Verarbeitungseinheit 916 implementiert werden. Zum Beispiel sind die Funktionen des Anheben-um-zu-sprechen-Modells 924 und/oder der Modelltrainiereinheit 930 als computerausführbare Anweisungen implementiert, die auf dem Hauptprozessor 918 und/oder auf dem Niederleistungsprozessor 920 ausgeführt werden.
  • Die Kontexteinheit 934 bestimmt einen Kontext einer elektronischen Vorrichtung. Beispielsweise bestimmt die Kontexteinheit 934, ob ein Kontext einer elektronischen Vorrichtung eine vorbestimmte Art von Kontext ist, der eine Kommunikation mit einer externen elektronischen Vorrichtung gemäß den vorstehend erörterten Techniken darstellt.
  • Das Anheben-um-zu-sprechen-Modell 924 empfängt eine Eingabe von der Eingabeeinheit 902. In einigen Beispielen bestimmt das Anheben-um-zu-Sprechen-Modell 934 basierend auf dem durch die Kontexteinheit 924 bestimmten Kontext entweder (1) ob eine virtuelle Assistentensitzung initiiert werden soll oder (2) ob eine der Audioeingabe zugeordnete Kommunikation an eine externe elektronische Vorrichtung übertragen werden soll.
  • Wenn der Kontext der elektronischen Vorrichtung nicht der vorbestimmte Typ von Kontext ist, bestimmt das Anheben-um-zu-Sprechen-Modell 924, ob eine virtuelle Assistentensitzung gemäß den vorstehend erörterten Techniken zu initiieren oder zu deaktivieren ist (z. B. basierend auf einer Eingabe von der Eingabeeinheit 902). In einigen Beispielen bestimmt und/oder empfängt das Anheben-um-zu-Sprechen-Modell 924 einen Interaktionskontext des virtuellen Assistenten (z. B. vom digitalen Assistenzsystem 700) und bestimmt, auf Grundlage des Interaktionskontexts des virtuellen Assistenten gemäß einer beliebigen der vorstehend diskutierten Techniken, eine virtuelle Assistentensitzung zu initiieren oder zu deaktivieren. Das Anheben-um-zu-Sprechen-Modell 924 bestimmt wahlweise, ob eine virtuelle Assistentensitzung basierend auf entsprechenden Bestimmungen durch das Bewegungsmodell 926 und das Audiomodell 928 initiiert oder deaktiviert werden soll, um eine virtuelle Assistentensitzung zu initiieren oder zu deaktivieren. In einigen Beispielen initiiert und/oder deaktiviert das Anheben-um-zu-Sprechen-Modell 924 eine virtuelle Assistentensitzung.
  • Wenn der Kontext der elektronischen Vorrichtung der vorbestimmte Typ von Kontext ist, bestimmt das Anheben-um-zu-Sprechen-Modell 924, ob eine mit einer Audioeingabe verbundene Kommunikation gemäß den vorstehend diskutierten Techniken (z. B. basierend auf einer Eingabe von der Eingabeeinheit 902) zu einer externen elektronischen Vorrichtung gesendet werden soll. In einigen Beispielen bewirkt das Anheben-um-zu-Sprechen-Modell 924, dass die Kommunikation, die der Audioeingabe zugeordnet ist, an die externe elektronische Vorrichtung übertragen wird (z. B. unter Verwendung der HF-Schaltung 208). In einigen Beispielen bewirkt das Anheben-um-zu-Sprechen-Modell 924 gemäß der Bestimmung, dass eine Vorrichtung abgesenkt wird (oder abgesenkt wurde), dass eine oder mehrere Vorrichtungsfunktionen gemäß den vorstehend erörterten Techniken durchgeführt werden. In einigen Beispielen verhindert das Anheben-um-zu-Sprechen-Modell 924 die Übertragung der Kommunikation gemäß den vorstehend beschriebenen Techniken.
  • In einigen Beispielen beinhaltet das Anheben-um-zu-Sprechen-Modell 924 ein neuronales Netz (z. B. RNN-Netz (Recurrent Neuronal Network), CNN-Netz (Convolutional Neuronal Network) und dergleichen). In einigen Beispielen schließt das Anheben-um-zu-Sprechen-Modell 924 einen Entscheidungsbaum (z. B. einen Gradienten-verstärkten Entscheidungsbaum) ein und/oder wird unter Verwendung irgendeiner geeigneten Maschinenlerntechnik implementiert.
  • In einigen Beispielen empfängt das Bewegungsmodell 926 eine Bewegungseingabe und bestimmt auf Grundlage der Bewegungseingabe gemäß den vorstehend erörterten Beispielen, ob eine Vorrichtungsfunktion durchzuführen ist (z. B. Initiieren einer virtuellen Assistentensitzung, Übertragen einer Kommunikation, die einer Audioeingabe zugeordnet ist). Beispielsweise bestimmt das Bewegungsmodell 926 unter Verwendung von Bewegungseingaben Stellungen einer elektronischen Vorrichtung (z. B. abgesenkt, anhebend, angehoben, absenkend) und/oder entsprechende Stellungswahrscheinlichkeiten. In einigen Beispielen bestimmt das Bewegungsmodell 926 basierend auf Bewegungseingaben ferner Wechsel zwischen Stellungen, die jeweiligen Wahrscheinlichkeiten solcher Wechsel, die jeweilige Dauern von Stellungen und Stellungswechseln und/oder die entsprechenden Zeitpunkte, die mit den Wechseln zwischen Stellungen verbunden sind.
  • In einigen Beispielen beinhaltet das Bestimmen einer der oben genannten Stellungsmerkmale die Analyse von Beschleunigungsmesser- und/oder Gyroskopdaten (z. B. im Laufe der Zeit). Beispielsweise ist eine abgesenkte Stellung (z. B. 8A) mit Beschleunigungsmesserwerten verbunden, die beispielsweise eine geringe bis keine Beschleunigung in einer oder mehreren Richtungen anzeigen. Eine anhebende Stellung (z. B. 8B) ist mit Beschleunigungsmesserwerten verbunden, die beispielsweise eine Beschleunigung in einer Richtung und eine Drehbeschleunigung in einer anderen Richtung anzeigen. Eine angehobene Stellung (z.B. 8C) ist mit Beschleunigungsmesserwerten verbunden, die wenig bis keine Beschleunigung in alle Richtungen anzeigen, nachdem zum Beispiel Beschleunigungsmesserwerte erfasst worden waren, die einer anhebenden Stellung entsprechen. Eine absenkende Stellung (z. B. 8F) ist mit Beschleunigungsmesserwerten verbunden, die beispielsweise eine Beschleunigung in einer Richtung und eine Drehbeschleunigung in einer anderen Richtung anzeigen, nachdem zum Beispiel Beschleunigungsmesserwerte erfasst worden waren, die einer angehobenen Stellung entsprechen.
  • In einigen Beispielen schließt das Bewegungsmodell 926 ein neuronales Netz (z. B. RNN-Netz (Recurrent Neuronal Network), CNN-Netz (Convolutional Neuronal Network) und dergleichen) ein. In einigen Beispielen schließt das Bewegungsmodell einen Entscheidungsbaum (z. B. einen Gradienten-verstärkten Entscheidungsbaum) ein und/oder wird unter Verwendung irgendeiner geeigneten Maschinenlerntechnik implementiert.
  • In einigen Beispielen ist das Bewegungsmodell 926 spezifisch für einen Benutzer (z. B. einen autorisierten Benutzer) einer elektronischen Vorrichtung. Beispielsweise wird das Bewegungsmodell 926 wahlweise trainiert und/oder optimiert, um basierend auf einer Bewegungseingabe von einem bestimmten Benutzer genau zu bestimmen, ob eine Vorrichtungsfunktion durchzuführen ist (z. B. Initiieren einer virtuellen Assistentensitzung, Übertragen einer Kommunikation, die einer Audioeingabe zugeordnet ist). Wenn ein Benutzer beispielsweise lange/kurze Arme hat und/oder eine bestimmte Art hat, eine Vorrichtung anzuheben, um einen virtuellen Assistenten zu initiieren, berücksichtigt das Bewegungsmodell 926 diese benutzerspezifischen Eigenschaften bei der Bestimmung von Stellungen, Stellungswechseln, Stellungsdauern und dergleichen. Dementsprechend zieht die vorliegende Offenbarung eine Benutzerregistrierung in Betracht, um das Bewegungsmodell 926 zu trainieren und/oder zu optimieren. So gibt beispielsweise ein Benutzer während der Registrierung eine oder mehrere Vorrichtungsbewegung(en) vor, mit denen er die Ausführung einer Funktion bewirken möchte und das Bewegungsmodell 926 wird basierend auf der bereitgestellten Bewegungseingabe trainiert.
  • In einigen Beispielen empfängt das Audiomodell 928 eine Audioeingabe (z. B. von einem oder mehreren Mikrofonen 904) und bestimmt auf Grundlage der Audioeingabe gemäß den vorstehend erörterten Beispielen, ob eine Vorrichtungsfunktion durchzuführen ist (z. B. Initiieren einer virtuellen Assistentensitzung, Übertragen einer Kommunikation, die einer Audioeingabe zugeordnet ist). Beispielsweise ist das Audiomodell 928 konfiguriert, um unter anderem zu bestimmen, ob eine Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer gesprochen wird, und eine Nähe einer Audioeingabe zu einer Vorrichtung gemäß den vorstehend erörterten Beispielen zu bestimmen.
  • In einigen Beispielen schließt das Audiomodell 928 ein neuronales Netz (z. B. RNN-Netz (Recurrent Neuronal Network), CNN-Netz (Convolutional Neuronal Network) und dergleichen) ein. In einigen Beispielen schließt das Audiomodell 928 einen Entscheidungsbaum (z. B. einen Gradienten-verstärkten Entscheidungsbaum) ein und/oder wird unter Verwendung irgendeiner geeigneten Maschinenlerntechnik implementiert.
  • In einigen Beispielen ist das Audiomodell 928 spezifisch für einen Benutzer (z. B. einen autorisierten Benutzer) einer elektronischen Vorrichtung. Beispielsweise wird das Audiomodell 928 optional trainiert und/oder optimiert, um genau zu bestimmen, ob eine Audioeingabe die Durchführung einer Vorrichtungsfunktion basierend auf benutzerspezifischen Audiomerkmalen bewirken sollte. Wenn ein Benutzer beispielsweise eine bestimmte Art (z. B. Intonation, Tonhöhe, Akzent, Sprechgeschwindigkeit usw.) hat, mit einer Vorrichtung zu sprechen, wenn er beabsichtigt, eine virtuelle Assistentensitzung zu initiieren, berücksichtigt das Audiomodell 928 diese benutzerspezifischen Merkmale, um zu bestimmen, ob eine virtuelle Assistentensitzung initiiert werden soll. Dementsprechend zieht die vorliegende Offenbarung eine Benutzerregistrierung in Betracht, um das Audiomodell 928 zu trainieren und/oder zu optimieren. Zum Beispiel stellt ein Benutzer während der Registrierung Audioeingaben bereit und das Audiomodell 928 wird basierend auf den Audioeingaben trainiert und/oder optimiert.
  • In einigen Beispielen wird das Registrieren basierend auf Audioeingaben und Bewegungseingaben gleichzeitig, simultan oder auf eine ansonsten überlappende Weise durchgeführt. Beispielsweise stellt ein Benutzer gleichzeitig Audio- und Bewegungseingaben bereit, mit denen der Benutzer in Kombination die Durchführung einer Funktion verursachen möchte. In einigen Beispielen wird das Anheben-um-zu-Sprechen-Modell 924 unter Verwendung der Bewegungs- und Audioeingaben trainiert (z. B. werden das Bewegungsmodell 926 und das Audiomodell 928 jeweils unter Verwendung der Bewegungs- bzw. Audioeingaben trainiert).
  • In einigen Beispielen schließt das Trainieren des Anheben-um-zu-sprechen-Modells 924 (z. B. basierend auf benutzerspezifischen Präferenzen für die Ausführung einer Vorrichtungsfunktion) das Anpassen einer oder mehrerer der vorstehend genannten Zeitdauern und/oder einer oder mehrerer der vorstehend erläuterten Schwellenwerte ein. Basierend auf dem Interaktionskontext des virtuellen Assistenten, dem Vorrichtungskontext, der Bewegung, dem Audio und/oder anderen Eingaben werden beispielsweise eine oder mehrere der Zeitdauern und/oder einer oder mehrere der oben genannten Schwellenwerte angepasst. Auf diese Weise wird das Anheben-um-zu-sprechen-Modell 924 angepasst (z. B. im Laufe der Zeit und/oder während der Registrierung), um die Ausführung von Vorrichtungsfunktionen basierend auf benutzerspezifischen Einstellungen zu bewirken.
  • Die Modelltrainiereinheit 930 ist konfiguriert, um das Anheben-um-zu-Sprechen-Modell 924 gemäß den oben beschriebenen Beispielen zu trainieren. So empfängt beispielsweise die Modelltrainiereinheit Eingaben von der Eingabeeinheit 902 und trainiert das Anheben-um-zu-sprechen-Modell 924 unter Verwendung der empfangenen Eingaben als Trainingsdaten. Beispielsweise ist die Modelltrainiereinheit 930 konfiguriert, um das Bewegungsmodell 926 und/oder das Audiomodell 928 zu trainieren, z. B. basierend auf einer jeweiligen Bewegungs- und Audioeingabe als Trainingsdaten.
  • Wenn das Anheben-um-zu-sprechen-Modell 924 ein neuronales Netz einschließt, schließt das Trainieren des Anheben-um-zu-sprechen-Modells 924 das Bestimmen einer Reihe von optimalen Gewichtungswerten beispielsweise für Verbindungen zwischen Knoten des neuronalen Netzes ein. Wenn das Anheben-um-zu-Sprechen-Modell 924 ein Gradienten-verstärktes Baummodell einschließt, schließt das Trainieren des Anheben-um-zu-sprechen-Modells 924 beispielsweise das Minimieren einer Verlustfunktion ein. Das Trainieren des Anheben-um-zu-Sprechen-Modells 924 auf diese Weise erhöht die Wahrscheinlichkeit, dass Audioeingaben, Bewegungseingaben, andere Eingabe(n), Gerätekontexte und/oder Interaktionskontexte des virtuellen Assistenten die Vorrichtung veranlassen, eine korrekte Funktion auszuführen und verringert die Wahrscheinlichkeit, dass eine falsche Funktion ausgeführt wird. Auf diese Weise initiieren beispielsweise Bewegungseingaben und Audioeingaben, die eine Übertragung einer Kommunikation bewirken sollen, nicht versehentlich eine virtuelle Assistentensitzung. Als ein weiteres Beispiel können auf diese Weise Bewegungseingaben und Audioeingaben, die dazu bestimmt sind, eine virtuelle Assistentensitzung zu initiieren, eine virtuelle Assistentensitzung korrekt initiieren und unangemessene Bewegungs- und Audioeingaben führen nicht versehentlich zu einer virtuellen Assistentensitzung.
  • 10A-D veranschaulichen einen Prozess 1000 zum Betreiben eines digitalen Assistenten gemäß verschiedenen Beispielen. Der Prozess 1000 wird beispielsweise unter Verwendung einer oder mehrerer elektronischer Vorrichtungen (z. B. Vorrichtungen 104, 106, 200, 400, 600 oder 800) durchgeführt, die einen digitalen Assistenten implementieren. In einigen Beispielen wird der Prozess 1000 unter Verwendung eines Client-Serversystems (z. B. System 100) durchgeführt und die Prozessblöcke 1000 werden auf beliebige Weise zwischen dem Server (z. B. DA-Server 106) und einer Client-Vorrichtung aufgeteilt. In anderen Beispielen werden die Prozessblöcke 1000 zwischen dem Server und mehreren Client-Vorrichtungen (z. B. einem Mobiltelefon und einer Smart Watch) aufgeteilt. Während Teile des Prozesses 1000 hierin zwar als von bestimmten Vorrichtungen eines Client-Server-Systems ausgeführt beschrieben werden, ist jedoch zu beachten, dass der Prozess 1000 nicht darauf begrenzt ist. In anderen Beispielen wird der Prozess 1000 nur mit einer Client-Vorrichtung (z. B. Benutzervorrichtung 104) oder nur mit mehreren Client-Vorrichtungen durchgeführt. Im Prozess 1000 werden einige Blöcke wahlweise kombiniert, die Reihenfolge einiger Blöcke wird wahlweise geändert und einige Blöcke werden wahlweise weggelassen. In einigen Beispielen können zusätzliche Schritte in Kombination mit dem Prozess 1000 durchgeführt werden.
  • Wie im Folgenden beschrieben, schließt der Prozess 1000 das Erfassen von Eingaben, die die Bewegung einer elektronischen Vorrichtung repräsentieren (z. B. ein Anheben der elektronischen Vorrichtung in Richtung des Mundes eines Benutzers) und das Abtasten einer Audioeingabe (z. B. eine gesprochene Benutzeranforderung wie „Wie ist das Wetter in Palo Alto?“) mit einem Mikrofon der elektronischen Vorrichtung ein. Der Prozess 1000 schließt ferner ein, dass auf Grundlage der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt wird, ob eine virtuelle Assistentensitzung initiiert werden soll. Gemäß einer Bestimmung, die virtuelle Assistentensitzung zu initiieren, schließt der Prozess 1000 das Initiieren der virtuellen Assistentensitzung (z. B. wird eine Benutzerschnittstelle, die der virtuellen Assistentensitzung zugeordnet ist, angezeigt) ein. Gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, schließt der Prozess 1000 das Unterlassen des Initiierens der virtuellen Assistentensitzung ein.
  • Das Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert (z. B. „Bewegungseingabe“), ob eine virtuelle Assistentensitzung initiiert werden soll, bietet eine natürliche und effiziente Möglichkeit, einen virtuellen Assistenten zu initiieren und mit ihm zu interagieren. Um beispielsweise einen virtuellen Assistenten zu initiieren und eine Aufgabe durch den virtuellen Assistenten basierend auf einer gesprochenen Anforderung ausführen zu lassen, hebt ein Benutzer einfach eine Vorrichtung in die Nähe seines Mundes an und äußert die Anforderung ungefähr zur gleichen Zeit (z. B. ohne dass die Anforderung einen gesprochenen Auslöser wie „Hey Siri“ beinhaltet). Die auf diese Weise ermöglichte Interaktion mit virtuellen Assistenten ermöglicht eine effiziente Interaktion mit virtuellen Assistenten (z. B. ist vor jeder Interaktion kein gesprochener Auslöser erforderlich) und eine schnelle Reaktion des virtuellen Assistenten auf gesprochene Anfragen. Darüber hinaus verhindert die Verwendung von Audioeingabe und Bewegungseingabe zum Initiieren einer virtuellen Assistentensitzung eine versehentliche Aktivierung des virtuellen Assistenten, die entweder auf Audioeingabe oder Bewegungseingabe allein basiert. Dies verringert die Wahrscheinlichkeit, versehentlich einen virtuellen Assistenten zu initiieren, und spart Batterieleistung, die ansonsten aufgrund des nicht erwünschten Betriebs eines virtuellen Assistenten verbraucht werden würde. Auf diese Weise wird die Schnittstelle der Benutzervorrichtung effizienter gestaltet (z. B. durch Reduzierung der Anzahl der Audioeingaben, die der Benutzer bereitstellt, durch Verringerung der Reaktionszeit des virtuellen Assistenten, durch Verhinderung einer unbeabsichtigten Aktivierung des virtuellen Assistenten), was zusätzlich den Stromverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht, die Vorrichtung schneller und effizienter zu nutzen.
  • Bei Block 1002 wird bei einer elektronischen Vorrichtung mit einem Mikrofon und einer Anzeige (z. B. Vorrichtung 800) eine Eingabe erfasst, die die Bewegung der elektronischen Vorrichtung repräsentiert. In einigen Beispielen ist die elektronische Vorrichtung ein Computer, ein Lautsprecher, eine Smart Watch, ein Telefon oder eine Kombination davon.
  • In einigen Beispielen wird die Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, durch einen oder mehrere Beschleunigungsmesser (z. B. 906) der elektronischen Vorrichtung erfasst. In einigen Beispielen wird die Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, durch ein oder mehrere Gyroskope (z. B. 908) der elektronischen Vorrichtung erfasst. In einigen Beispielen beinhaltet das Erfassen der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, das Abtasten der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert unter Verwendung eines ersten Prozessors (z. B. 920), wie im optionalen Block 1004 gezeigt.
  • In einigen Beispielen schließt die Bewegung der elektronischen Vorrichtung einen Wechsel der elektronischen Vorrichtung zwischen zwei oder mehr Stellungen einer Vielzahl von Stellungen ein. In einigen Beispielen schließt die Vielzahl der Stellungen eine abgesenkte Stellung (z. B. in 8A dargestellt), eine anhebende Stellung (z. B. in 8B dargestellt), eine angehobene Stellung (z. B. in 8C-E dargestellt) und eine absenkende Stellung (z. B. in 8F dargestellt) ein.
  • Beim optionalen Block 1006 wird eine Anzeige der elektronischen Vorrichtung (z. B. 804) basierend auf einem ersten Teil der Eingabe, der die Bewegung der elektronischen Vorrichtung repräsentiert, eingeschaltet. In einigen Beispielen stellt der erste Teil der Eingabe, der die Bewegung der elektronischen Vorrichtung repräsentiert, eine Handgelenkanhebungsgeste und/oder eine Handgelenkdrehungsgeste dar (z. B. in 8B gezeigt).
  • Bei Block 1008 wird eine Audioeingabe (z. B. 806) mit dem Mikrofon (z. B. 904) der elektronischen Vorrichtung abgetastet. In einigen Beispielen wird das Abtasten der Audioeingabe gemäß dem Einschalten der Anzeige durchgeführt. In einigen Beispielen wird die Audioeingabe abgetastet, während mindestens ein zweiter Teil der Eingabe erfasst wird, der die Bewegung der elektronischen Vorrichtung repräsentiert (z. B. wird die Audioeingabe 806 abgetastet, während die Bewegungseingabe in 8C erfasst wird). Das Abtasten der Audioeingabe während des Erkennens der Bewegungseingabe ermöglicht es einem Benutzer, gleichzeitige (oder annähernd gleichzeitige) Audio- und Bewegungseingaben zum Initiieren einer virtuellen Assistentensitzung bereitzustellen (und einer Vorrichtung, diese abzutasten und/oder zu erkennen). Wie erläutert, bietet die Bereitstellung der Initiierung eines virtuellen Assistenten auf diese Weise eine natürliche und effiziente Möglichkeit, eine virtuelle Assistentensitzung zu initiieren und verringert die Wahrscheinlichkeit einer versehentlichen Initiierung eines virtuellen Assistenten. Dementsprechend wird die Schnittstelle der Benutzervorrichtung effizienter gestaltet (z. B. durch die schnelle und einfache Initiierung eines virtuellen Assistenten), was zusätzlich den Stromverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht, die Vorrichtung schneller und effizienter zu nutzen.
  • In einigen Beispielen schließt das Abtasten der Audioeingabe das Abtasten der Audioeingabe unter Verwendung des ersten Prozessors ein, wie im optionalen Block 1010 gezeigt. In einigen Beispielen schließt das Abtasten der Audioeingabe das Abtasten der Audioeingabe unter Verwendung des zweiten Prozessors (z. B. 918) ein, wie im optionalen Block 1012 gezeigt. In einigen Beispielen verbraucht der zweite Prozessor während des Betriebs mehr Leistung als der erste Prozessor. In einigen Beispielen wird der zweite Prozessor basierend auf mindestens einem dritten Teil der Eingabe aktiviert, die die Bewegung der elektronischen Vorrichtung repräsentiert.
  • In einigen Beispielen schließt die Audioeingabe (z. B. 806) keinen gesprochenen Auslöser (z. B. einen gesprochenen Auslöser zum Initiieren eines virtuellen Assistenten wie „Hey Siri“) ein. Das Abtasten einer Audioeingabe, die keinen gesprochenen Auslöser enthält, und die Verwendung einer derartigen Audioeingabe, um eine virtuelle Assistentensitzung einzuleiten, ermöglicht eine natürliche und effiziente Initiierung/Interaktion des/mit dem virtuellen Assistenten. Beispielsweise kann ein Benutzer einfach eine Anforderung (die kein „Hey Siri“ enthält) an einen virtuellen Assistenten senden, um den virtuellen Assistenten zu initiieren und auf die Anforderung reagieren zu lassen. Auf diese Weise wird die Benutzervorrichtungsschnittstelle effizienter gemacht (z. B. durch Reduzieren der Menge an Audioeingaben, die ein Benutzer bereitstellt), was zusätzlich den Energieverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht wird, die Vorrichtung schneller und effizienter zu verwenden.
  • Bei Block 1014 wird basierend auf der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt (z. B. durch das Anheben-um-zu-sprechen-Modell 924), ob eine virtuelle Assistentensitzung initiiert werden soll. Wie erörtert, können die beispielhaften Techniken zur Bestimmung, ob eine virtuelle Assistentensitzung initiiert werden soll, die nachstehend diskutiert werden, eine geeignete Bewegung und/oder Audioeingabe ermöglichen, um eine virtuelle Assistentensitzung einzuleiten und eine unangemessene Bewegung und/oder Audioeingabe daran zu hindern, eine virtuelle Assistentensitzung zu initiieren. Auf diese Weise wird die Bedienbarkeit der Vorrichtung verbessert und die Mensch-Maschine-Schnittstelle effizienter gemacht (z. B. durch genaues und effizientes Auslösen einer virtuellen Assistentensitzung, wenn sie angefordert wird, indem verhindert wird, dass ein Benutzer durch eine versehentlich initiierte virtuelle Assistentensitzung gestört wird, durch Reduzieren oder Eliminieren von Batterieleistung, die ansonsten durch eine versehentlich initiierte virtuelle Assistentensitzung verbraucht wird und durch Reduzieren oder Eliminieren von Benutzereingaben, die bereitgestellt werden müssten, um die versehentlich initiierte virtuelle Assistentensitzung zu deaktivieren).
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen, ob die virtuelle Assistentensitzung basierend auf einem Bewegungsmodell (z. B. 926) initiiert werden soll, wie im optionalen Block 1016 gezeigt. In einigen Beispielen schließt das Bewegungsmodell ein erstes neuronales Netz ein. In einigen Beispielen ist das Bewegungsmodell für einen ersten Benutzer der elektronischen Vorrichtung spezifisch. In einigen Beispielen wird unter Verwendung des Bewegungsmodells eine Wahrscheinlichkeit des Wechsels der elektronischen Vorrichtung zwischen zwei oder mehr Stellungen der Vielzahl von Stellungen bestimmt, wie im optionalen Block 1018 gezeigt. In einigen Beispielen wird unter Verwendung des Bewegungsmodells eine Wahrscheinlichkeit einer Stellung aus der Vielzahl von Stellungen bestimmt, wie im optionalen Block 1020 gezeigt.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen (z. B. durch Modell 926) basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, ob die Bewegung der elektronischen Vorrichtung einen Wechsel von der anhebenden Stellung zu der angehobenen Stellung einschließt (z. B. wie in den 8B und 8C gezeigt), wie im optionalen Block 1022 gezeigt.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen (z. B. durch Modell 926) einer Dauer des Wechsels von der anhebenden Stellung in die angehobene Stellung, wie im optionalen Block 1024 gezeigt.
  • In einigen Beispielen wird die Audioeingabe zu einem ersten Zeitpunkt abgetastet, der Wechsel von der anhebenden Stellung in die angehobene Stellung wird einem zweiten Zeitpunkt zugeordnet und das Bestimmen (z. B. durch Modell 924), ob die virtuelle Assistentensitzung initiiert werden soll, erfolgt basierend auf dem ersten Zeitpunkt und dem zweiten Zeitpunkt, wie im optionalen Block 1026 gezeigt. Auf diese Weise kann eine virtuelle Assistentensitzung initiiert werden, indem annähernd synchrone Bewegungs- und Audioeingaben erfasst werden, die zum Initiieren eines virtuellen Assistenten geeignet sind. Darüber hinaus kann eine unbeabsichtigte Initiierung des virtuellen Assistenten auf Grundlage der Bewegungseingabe allein oder der Audioeingabe allein verhindert werden (z. B. wenn die Bewegungseingabe und die Audioeingabe nicht innerhalb einer angemessenen Zeitspanne nacheinander empfangen werden, ist es unwahrscheinlich, dass die Eingaben zur Initiierung eines virtuellen Assistenten dienen).
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen (z. B. durch Modell 926) basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, ob eine Dauer der angehobenen Stellung (z. B. in 8C gezeigt) eine erste vorbestimmte Dauer überschreitet, wie im optionalen Block 1028 gezeigt.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen (z. B. durch Modell 926) basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, ob die Bewegung der elektronischen Vorrichtung einen ersten Wechsel von der angehobenen Stellung zu der absenkenden Stellung einschließt (z. B. wie in 8F dargestellt), wie im optionalen Block 1030 gezeigt.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll basierend auf einem Audiomodell (z. B. 928), wie im optionalen Block 1032 gezeigt. In einigen Beispielen schließt das Audiomodell ein zweites neuronales Netz ein. In einigen Beispielen ist das Audiomodell für einen zweiten Benutzer der elektronischen Vorrichtung spezifisch.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Sitzung initiiert werden soll, das Bestimmen (z. B. durch das Modell 928), ob die Audioeingabe menschliche Sprache beinhaltet, wie im optionalen Block 1034 gezeigt. In einigen Beispielen beinhaltet das Bestimmen, ob die Audioeingabe menschliche Sprache beinhaltet, das Bestimmen, ob die Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer der elektronischen Vorrichtung gesprochen wird, wie im optionalen Block 1036 gezeigt. Auf diese Weise kann eine unbeabsichtigte Initiierung des virtuellen Assistenten aufgrund von Abtasten von Hintergrundgeräuschen (und/oder Sprache von einem nicht autorisierten Benutzer) verhindert werden. Darüber hinaus kann eine genaue Initiierung des virtuellen Assistenten, die auf dem Empfang von Anfragen basiert, die von einem Menschen (und/oder von einem autorisierten Benutzer) gesprochenen werden, bereitgestellt werden.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen (z. B. durch das Modell 928) einer der Audioeingabe zugeordneten Richtung, wie im optionalen Block 1038 gezeigt. Auf diese Weise kann eine unbeabsichtigte Initiierung des virtuellen Assistenten aufgrund von Abtastungen von Audio, das nicht an die Vorrichtung gerichtet ist, die für den Betrieb des virtuellen Assistenten konfiguriert ist, verhindert werden. Darüber hinaus kann eine genaue Initiierung des virtuellen Assistenten, die auf dem Empfang einer an die Vorrichtung gerichteten Audioeingaben basiert, bereitgestellt werden.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung eingeleitet werden soll, das Bestimmen (z. B. durch Modell 928) einer Nähe der Audioeingabe zur elektronischen Vorrichtung, wie im optionalen Block 1040 gezeigt. Auf diese Weise kann die unbeabsichtigte Initiierung des virtuellen Assistenten durch das Abtasten von Audiodaten, die von einer Quelle stammen, die zu weit von der für den Betrieb des virtuellen Assistenten konfigurierten Vorrichtung entfernt ist, verhindert werden (z. B. weil in einigen Beispielen ein Benutzer mit einer Vorrichtung spricht, wenn sich die Vorrichtung in der Nähe des Mundes des Benutzers befindet). Darüber hinaus kann eine genaue Initiierung des virtuellen Assistenten, die auf dem Empfang von Audioeingaben basiert, die aus einer Quelle in der Nähe der Vorrichtung stammen, bereitgestellt werden.
  • In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, ein Bestimmen (z. B. durch das Modell 928) zu einem dritten Zeitpunkt, ob die virtuelle Assistentensitzung basierend auf der Audioeingabe initiiert werden soll, wie im optionalen Block 1042 gezeigt. In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, ein Bestimmen (z. B. durch Modell 926) zu einem vierten Zeitpunkt, ob die virtuelle Assistentensitzung basierend auf der Eingabe initiiert werden soll, die die Bewegung der elektronischen Vorrichtung repräsentiert, wie im optionalen Block 1044 gezeigt. In einigen Beispielen beinhaltet das Bestimmen, ob die virtuelle Assistentensitzung eingeleitet werden soll, das Bestimmen (z. B. durch das Modell 924), ob der dritte Zeitpunkt und der vierte Zeitpunkt innerhalb einer zweiten vorbestimmten Dauer liegen, wie im optionalen Block 1046 gezeigt. In einigen Beispielen wird das Initiieren der virtuellen Assistentensitzung gemäß einer Bestimmung durchgeführt, dass der dritte Zeitpunkt und der vierte Zeitpunkt innerhalb der zweiten vorbestimmten Dauer liegen. Dementsprechend basiert in einigen Beispielen das Initiieren einer virtuellen Assistentensitzung auf dem Erfassen einer synchronen oder annähernd synchronen Bewegungs- und Audioeingabe, die zum Initiieren der virtuellen Assistentensitzung geeignet ist. Somit kann eine unbeabsichtigte Initiierung basierend auf einer Bewegungseingabe und/oder einer Audioeingabe allein verhindert werden, obwohl die Bewegungseingabe und/oder Audioeingabe jeweils geeignet sein können, um den virtuellen Assistenten zu initiieren. Die Bereitstellung einer Aktivierung des virtuellen Assistenten auf diese Weise liefert somit eine effiziente und intuitive Möglichkeit, eine virtuelle Assistentensitzung zu initiieren, während die Möglichkeit einer unbeabsichtigten Initiierung reduziert wird.
  • Bei Block 1048 wird gemäß der Bestimmung, die virtuelle Assistentensitzung zu initiieren, die virtuelle Assistentensitzung initiiert (z. B. durch Modell 924). In einigen Beispielen beinhaltet das Initiieren der virtuellen Assistentensitzung das Anzeigen einer ersten dem virtuellen Assistenten zugeordneten Benutzerschnittstelle (z. B. wie auf der rechten Anzeige 804 in 8C gezeigt), wie im optionalen Block 1050 gezeigt. In einigen Beispielen beinhaltet das Initiieren der virtuellen Assistentensitzung das Bereitstellen der Audioausgabe, wie im optionalen Block 1052 gezeigt. In einigen Beispielen beinhaltet das Initiieren der virtuellen Assistentensitzung das Bereitstellen von haptischer Ausgabe, wie im optionalen Block 1054 gezeigt.
  • Im optionalen Block 1056 wird ein Zeitpunkt bestimmt, der einem dritten Wechsel von der angehobenen Stellung zur absenkenden Stellung zugeordnet ist (z. B. durch das Modell 924). Am optionalen Block 1058 wird ein Endpunkt der Audioeingabe basierend auf dem Zeitpunkt bestimmt, der dem dritten Wechsel von der angehobenen Stellung zur absenkenden Stellung zugeordnet ist (z. B. durch Modell 924). Das Bestimmen eines Endpunkts der Audioeingabe auf diese Weise liefert eine effiziente und genaue Art und Weise, den Endzeitpunkt von Audioeingaben zu bestimmen. Zum Beispiel kann ein Benutzer einfach sein Handgelenk absenken (z. B. wie in 8F gezeigt), um anzuzeigen, dass er aufgehört hat zu sprechen.
  • Bei Block 1060 wird gemäß der Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, auf die Initiierung der virtuellen Assistentensitzung verzichtet.
  • Beim optionalen Block 1062 wird gemäß dem Initiieren der virtuellen Assistentensitzung basierend auf der Audioeingabe (z. B. durch den in 7B dargestellten digitalen Assistenten) eine Benutzerabsicht bestimmt. Beim optionalen Block 1064 wird gemäß dem Initiieren der virtuellen Assistentensitzung eine Aufgabe basierend auf der Benutzerabsicht ausgeführt. Beim optionalen Block 1066 wird gemäß dem Initiieren der virtuellen Assistentensitzung eine der Aufgabe zugeordnete Ausgabe bereitgestellt (z. B. Ausgabe 808).
  • Beim optionalem Block 1068 wird gemäß dem Initiieren der virtuellen Assistentensitzung und gemäß dem Nichtbestimmen einer Benutzerabsicht basierend auf der Audioeingabe, auf die Bereitstellung einer Ausgabe, die auf die Audioeingabe reagiert, verzichtet.
  • Beim optionalen Block 1070 wird gemäß dem Initiieren der virtuellen Assistentensitzung die virtuelle Assistentensitzung deaktiviert (z. B. durch Modell 924). In einigen Beispielen beinhaltet das Deaktivieren der virtuellen Assistentensitzung das Beenden der Anzeige einer zweiten Benutzerschnittstelle, die dem digitalen Assistenten zugeordnet ist (z. B. wie in den 8E und 8F gezeigt), wie im optionalen Block 1072 gezeigt. In einigen Beispielen schließt das Deaktivieren der virtuellen Assistentensitzung den Verzicht auf die Antwort auf die Audioeingabe ein, wie im optionalen Block 1074 gezeigt.
  • Das Deaktivieren einer virtuellen Assistentensitzung ermöglicht den Abbruch einer versehentlich initiierten virtuellen Assistentensitzung. Dementsprechend wird die Batterie- und Rechenleistung, die sonst durch den Betrieb eines unerwünschterweise aktivierten virtuellen Assistenten verbraucht wird, reduziert. Darüber hinaus verbessert das Deaktivieren einer virtuellen Assistentensitzung, wenn diese nicht erwünscht ist, die Benutzerfreundlichkeit und Bedienbarkeit der Vorrichtung (z. B. kann ein Benutzer die Verwendung der Vorrichtung für andere Zwecke fortsetzen, ohne durch einen initiierten virtuellen Assistenten gestört zu werden). Auf diese Weise wird die Benutzervorrichtungsschnittstelle effizienter gemacht (z. B. durch vorbeugendes Deaktivieren einer virtuellen Assistentensitzung, wenn diese nicht gewünscht wird), was zusätzlich den Energieverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht wird, die Vorrichtung schneller und effizienter zu verwenden.
  • Ferner können die nachstehend beschriebenen Techniken zum Deaktivieren einer virtuellen Assistentensitzung eine genaue und effiziente Bestimmung bereitstellen, ob die virtuelle Assistentensitzung deaktiviert werden soll sowie eine genaue und effiziente Deaktivierung der virtuellen Assistentensitzung bereitstellen. Die Verbesserung der Deaktivierung des virtuellen Assistenten auf diese Weise verbessert die Benutzerfreundlichkeit und Effizienz der Vorrichtung (z. B. indem eine virtuelle Assistentensitzung deaktiviert wird, wenn diese nicht gewünscht wird und indem verhindert wird, dass eine gewünschte initiierte virtuelle Assistentensitzung deaktiviert wird). Dementsprechend wird die Benutzervorrichtungsschnittstelle effizienter gemacht (z. B. durch genaues Bestimmen, ob die virtuelle Assistentensitzung deaktiviert werden soll), was zusätzlich den Energieverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht wird, die Vorrichtung schneller und effizienter zu verwenden.
  • Beim optionalen Block 1076 wird gemäß dem Initiieren der virtuellen Assistentensitzung basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt (z. B. durch das Modell 924), ob die Bewegung der elektronischen Vorrichtung einen zweiten Wechsel von der angehobenen Stellung in die absenkende Stellung einschließt (z. B. wie in 8F gezeigt).
  • Im optionalen Block 1078 wird ein Zeitpunkt bestimmt, der dem zweiten Wechsel von der angehobenen Stellung zur absenkenden Stellung zugeordnet ist (z. B. durch das Modell 924).
  • Bei dem optionalen Block 1080 wird ein Zeitpunkt bestimmt, der einem Ende der Sprache in der Audioeingabe zugeordnet ist (z. B. durch Modell 924).
  • Beim optionalen Block 1082 wird gemäß einer Bestimmung, dass die Bewegung der elektronischen Vorrichtung den zweiten Wechsel von der angehobenen Stellung in die absenkende Stellung einschließt, die virtuelle Assistentensitzung deaktiviert (z. B. durch Modell 924). In einigen Beispielen wird das Deaktivieren der virtuellen Assistentensitzung ferner gemäß einer Bestimmung (z. B. durch Modell 924) durchgeführt, dass der Zeitpunkt, der dem zweiten Wechsel von der angehobenen Stellung in die absenkenden Stellung zugeordnet ist, vor dem Zeitpunkt liegt, der dem Ende der Sprache in der Audioeingabe zugeordnet ist, wie im optionalen Block 1084 gezeigt.
  • Beim optionalen Block 1086 wird gemäß dem Initiieren der virtuellen Assistentensitzung basierend auf dem linguistischen Inhalt der Audioeingabe (z. B. der in 8E dargestellten Audioeingabe) bestimmt (z. B. durch Modell 924), ob die virtuelle Assistentensitzung deaktiviert werden soll. Beim optionalen Block 1088 wird gemäß der Bestimmung, die virtuelle Assistentensitzung zu deaktivieren, die virtuelle Assistentensitzung deaktiviert (z. B. durch Modell 924). Beim optionalen Block 1090 wird gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu deaktivieren (z. B. durch Modell 924), auf die Deaktivierung der virtuellen Assistentensitzung verzichtet.
  • Beim optionalen Block 1092 wird gemäß dem Initiieren der virtuellen Assistentensitzung bestimmt, ob eine Dauer der Audioeingabe kürzer als eine Schwellendauer ist (z. B. durch Modell 924). Beim optionalen Block 1094 wird gemäß einer Bestimmung, dass die Dauer der Audioeingabe kürzer als die Schwellendauer ist, die virtuelle Assistentensitzung deaktiviert (z. B. durch Modell 924).
  • Die vorstehend beschriebenen Vorgänge in Bezug auf die 10A-D werden wahlweise durch die in den 1-4, 6A-B, 7A-C, 8A-F und 9 dargestellten Komponenten ausgeführt. So können beispielsweise die Vorgänge des Prozesses 1000 durch die Verarbeitungseinheit 916 und/oder die Modelleinheit 922 realisiert werden. Für Durchschnittsfachleute ist klar, wie andere Prozesse basierend auf den in den 1-4, 6A-B, 7A-C, 8A-F und 9 dargestellten Komponenten implementiert werden.
  • 11 veranschaulicht einen Prozess 1100 zum Übertragen von Kommunikation gemäß verschiedenen Beispielen. Der Prozess 1100 wird beispielsweise unter Verwendung einer oder mehrerer elektronischer Vorrichtungen (z. B. Vorrichtungen 104, 106, 200, 400, 600 oder 800) durchgeführt. In einigen Beispielen wird der Prozess 1100 unter Verwendung eines Client-Serversystems (z. B. System 100) durchgeführt und die Prozessblöcke 1100 werden auf beliebige Weise zwischen dem Server (z. B. DA-Server 106) und einer Client-Vorrichtung aufgeteilt. In anderen Beispielen werden die Prozessblöcke 1100 zwischen dem Server und mehreren Client-Vorrichtungen (z. B. einem Mobiltelefon und einer Smart Watch) aufgeteilt. Während Teile des Prozesses 1100 hierin zwar als von bestimmten Vorrichtungen eines Client-Server-Systems ausgeführt beschrieben werden, ist jedoch zu beachten, dass der Prozess 1100 nicht darauf begrenzt ist. In anderen Beispielen wird der Prozess 1100 nur mit einer Client-Vorrichtung (z. B. Benutzervorrichtung 104) oder nur mit mehreren Client-Vorrichtungen durchgeführt. Im Prozess 1100 werden einige Blöcke wahlweise kombiniert, die Reihenfolge einiger Blöcke wird wahlweise geändert, und einige Blöcke werden wahlweise weggelassen. In einigen Beispielen können zusätzliche Schritte in Kombination mit dem Prozess 1100 durchgeführt werden.
  • Wie nachstehend beschrieben, beinhaltet der Prozess 1100 das Erfassen von Eingaben, die die Bewegung einer elektronischen Vorrichtung repräsentieren (z. B. ein Anheben der elektronischen Vorrichtung in Richtung des Mundes eines Benutzers), und das Abtasten einer Audioeingabe (z. B. „Hey Shawn, wie geht es dir?“) mit einem Mikrofon der elektronischen Vorrichtung. Prozess 1100 schließt ferner das Bestimmen eines Kontexts der elektronischen Vorrichtung (z. B., dass die Vorrichtung aktuell einen Telefonanruf empfängt (z. B. von einem Kontakt mit dem Namen „Shawn“)) ein. Gemäß einer Bestimmung, dass der Kontext ein vorbestimmter Kontext ist, der die Kommunikation mit einer externen elektronischen Vorrichtung (z. B. dem Kontext des Empfangs eines Telefonanrufs) repräsentiert, beinhaltet der Prozess 1110 das Bestimmen, basierend auf der Audioeingabe und der Eingabe, die die Bewegung der Vorrichtung repräsentiert, ob eine mit der Audioeingabe verbundene Kommunikation an die externe elektronische Vorrichtung übertragen werden soll. Z. B. ob das Audio „Hey Shawn, wie geht es dir?“ an Shawns Vorrichtung übertragen werden soll. Gemäß einer Bestimmung, die der Audioeingabe zugeordnete Kommunikation an die externe elektronische Vorrichtung zu übertragen, beinhaltet der Prozess 1110 das Übertragen dieser der Audioeingabe zugeordneten Kommunikation an die externe elektronische Vorrichtung. Z. B. beantwortet die Vorrichtung den Telefonanruf von Shawn und überträgt „Hey Shawn, wie geht es dir?“ an Shawns Vorrichtung. Gemäß einer Bestimmung, die der Audioeingabe zugeordnete Kommunikation an die externe elektronische Vorrichtung nicht zu übertragen, beinhaltet der Prozess 1100 den Verzicht auf das Übertragen dieser der Audioeingabe zugeordneten Kommunikation an die externe elektronische Vorrichtung.
  • Durch Bestimmen eines Kontexts einer elektronischen Vorrichtung kann die elektronische Vorrichtung auf der Grundlage einer Audioeingabe und einer Bewegungseingabe genau bestimmen, welche Vorrichtungsfunktion auszuführen ist. Insbesondere in Beispielen, in denen eine gleiche oder ähnliche Kombination aus Bewegungseingabe und Audioeingabe die Ausführung mehrerer Vorrichtungsfunktionen bewirken kann (z. B. die Beantwortung eines Telefonats, die Initiierung einer virtuellen Assistentensitzung), kann es wichtig sein, zu unterscheiden (z. B. basierend auf einem bestimmten Vorrichtungskontext), welche Funktion der Vorrichtung basierend auf Audioeingabe und Bewegungseingabe aufgerufen werden soll. Anderenfalls können zum Beispiel Audio- und Bewegungseingaben, die dazu gedacht sind, einen Telefonanruf zu beantworten, versehentlich eine virtuelle Assistentensitzung initiieren. Dementsprechend ermöglicht die Verwendung von Kontextinformationen zum Bestimmen der auszuführenden Vorrichtungsfunktion die Ausführung einer korrekten Vorrichtungsfunktion. Auf diese Weise wird die Benutzervorrichtungsschnittstelle effizienter gestaltet (z. B. durch das Veranlassen der korrekten Ausführung einer Vorrichtungsfunktion, durch das Verhindern der fehlerhaften Ausführung einer Vorrichtungsfunktion, durch das Reduzieren oder Eliminieren von Benutzereingaben, um eine fehlerhaft ausgeführte Vorrichtungsfunktion abzubrechen), was zusätzlich den Stromverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht, die Vorrichtung schneller und effizienter zu verwenden.
  • Das Bestimmen, basierend auf der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert (z. B. „Bewegungseingabe“), ob eine mit der Audioeingabe verbundene Kommunikation an eine externe elektronische Vorrichtung übertragen werden soll, bietet eine natürliche und effiziente Möglichkeit der Kommunikation mit externen elektronischen Vorrichtungen. Um beispielsweise einen Telefonanruf zu beantworten, hebt ein Benutzer einfach eine Vorrichtung in die Nähe seines Mundes an und stellt eine Antwort auf den Telefonanruf ungefähr zur gleichen Zeit zur Verfügung (z. B. ohne eine taktile Eingabe bereitzustellen, um den Telefonanruf zu beantworten). Die auf diese Weise ermöglichte Kommunikation mit externen elektronischen Vorrichtungen ermöglicht eine schnelle Kommunikation mit externen Vorrichtungen (z. B. hebt ein Benutzer einfach seine Vorrichtung an und spricht, um die Übertragung einer Kommunikation zu veranlassen). Zusätzlich kann die Verwendung von sowohl Audioeingabe als auch Bewegungseingabe zum Übertragen einer Kommunikation eine unbeabsichtigte Kommunikationsübertragung auf der Grundlage entweder einer Audioeingabe oder einer Bewegungseingabe allein verhindern. Dies verringert die Wahrscheinlichkeit, Kommunikationen zu senden, wenn dies nicht erwünscht ist. Auf diese Weise wird die Benutzervorrichtungsschnittstelle effizienter gemacht (z. B. durch Ermöglichen einer schnellen Antwort auf Kommunikationen von externen Vorrichtungen durch Verhindern einer versehentlichen Kommunikationsübertragung), was zusätzlich den Leistungsverbrauch reduziert und die Akkulaufzeit der Vorrichtung verbessert, indem es dem Benutzer ermöglicht wird, die Vorrichtung schneller und effizienter zu verwenden.
  • Bei Block 1102 wird eine Eingabe, die die Bewegung einer elektronischen Vorrichtung repräsentiert, erfasst (z. B. durch die Eingabeeinheit 902).
  • Bei Block 1104 wird die Audioeingabe mit einem Mikrophon der elektronischen Vorrichtung abgetastet (z. B. durch Mikrofon(e) 904).
  • Bei Block 1106 wird ein Kontext der elektronischen Vorrichtung bestimmt (z. B. durch die Kontexteinheit 934).
  • Bei Block 1108 wird bestimmt, ob der Kontext der elektronischen Vorrichtung eine vorbestimmte Art von Kontext ist, der die Kommunikation mit einer externen elektronischen Vorrichtung repräsentiert (z. B. durch die Kontexteinheit 934).
  • Bei Block 1110 wird gemäß einer Bestimmung, dass der Kontext die vorbestimmte Art von Kontext ist, der die Kommunikation mit der externen elektronischen Vorrichtung repräsentiert (Block 1108, JA), basierend auf der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt (z. B. durch Modell 924), ob eine der Audioeingabe zugeordnete Kommunikation an die externe elektronische Vorrichtung übertragen werden soll.
  • Bei Block 1112 wird gemäß einer Bestimmung zum Übertragen der mit der Audioeingabe verbundenen Kommunikation an die externe elektronische Vorrichtung die mit der Audioeingabe verbundene Kommunikation an die externe elektronische Vorrichtung übertragen (z. B. durch die HF-Schaltung 208).
  • Bei Block 1114 wird gemäß einer Bestimmung, die der Audioeingabe zugeordnete Kommunikation nicht an die externe elektronische Vorrichtung zu übertragen, die Übertragung der der Audioeingabe zugeordneten Kommunikation an die externe elektronische Vorrichtung unterlassen.
  • Bei Block 1116 wird gemäß einer Bestimmung, dass der Kontext nicht die vorbestimmte Art von Kontext ist, der die Kommunikation mit der externen elektronischen Vorrichtung repräsentiert (Block 1108 NEIN), basierend auf der Audioeingabe und der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, bestimmt, ob eine virtuelle Assistentensitzung initiiert werden soll (z. B. basierend auf den vorstehend in Bezug auf die 10A-D beschriebenen Techniken).
  • Die vorstehend beschriebenen Vorgänge in Bezug auf 11 werden wahlweise durch die in den 1-4, 6A-B, 7A-C, 8A-F und 9 dargestellten Komponenten ausgeführt.
  • So können beispielsweise die Vorgänge des Prozesses 1100 durch die Verarbeitungseinheit 916 und/oder die Modelleinheit 922 realisiert werden. Für Durchschnittsfachleute ist klar, wie andere Prozesse basierend auf den in den 1-4, 6A-B, 7A-C, 8A-F und 9 dargestellten Komponenten implementiert werden.
  • Gemäß einigen Implementierungen wird ein computerlesbares Speichermedium (z. B. ein nichtflüchtiges computerlesbares Speichermedium) bereitgestellt, wobei auf dem computerlesbaren Speichermedium ein oder mehrere Programme für die Ausführung durch einen oder mehrere Prozessoren einer elektronischen Vorrichtung gespeichert sind, wobei das oder die Programme Anweisungen für die Durchführung beliebiger der hierin beschriebenen Verfahren oder Prozesse enthalten.
  • Gemäß einigen Implementierungen wird eine elektronische Vorrichtung (z. B. eine tragbare elektronische Vorrichtung) bereitgestellt, die Mittel für die Durchführung beliebiger der hierin beschriebenen Verfahren oder Prozesse umfasst.
  • Gemäß einigen Implementierungen wird eine elektronische Vorrichtung (z. B. eine tragbare elektronische Vorrichtung) bereitgestellt, die eine Verarbeitungseinheit umfasst, die für die Durchführung beliebiger der hierin beschriebenen Verfahren und Prozesse konfiguriert ist.
  • Gemäß einigen Implementierungen wird eine elektronische Vorrichtung (z. B. eine tragbare elektronische Vorrichtung) bereitgestellt, die einen oder mehrere Prozessoren und Speicher, auf denen Anweisungen für die Ausführung durch den oder die Prozessoren gespeichert sind, umfasst, wobei das oder die Programme Anweisungen für die Durchführung beliebiger der hierin beschriebenen Verfahren und Prozesse enthalten.
  • Die vorstehende Beschreibung wurde zum Zweck der Erklärung unter Bezugnahme auf spezifische Ausführungsformen beschrieben. Jedoch sollen die vorstehenden veranschaulichenden Erörterungen weder erschöpfend sein noch die Erfindung auf die genauen, offenbarten Formen beschränken. Angesichts der vorstehenden Lehre sind viele Abänderungen und Variationen möglich. Die Ausführungsformen wurden gewählt und beschrieben, um die Grundsätze der Techniken und deren praktische Anwendungen am besten zu erklären. Andere Fachleute werden dadurch befähigt, die Techniken und vielfältigen Ausführungsformen mit vielfältigen Modifikationen, wie sie für die bestimmte betrachtete Verwendung geeignet sind, am besten zu nutzen.
  • Obwohl die Offenbarung und Beispiele unter Bezugnahme auf die begleitenden Zeichnungen vollständig beschrieben wurden, ist zu beachten, dass vielfältige Änderungen und Modifikationen für den Fachmann ersichtlich sind. Solche Änderungen und Modifikationen sind als innerhalb des Umfangs der Offenbarung und Beispiele, wie sie durch die Ansprüche definiert sind, eingeschlossen zu verstehen.
  • Wie oben beschrieben, ist ein Aspekt der vorliegenden Technologie das Sammeln und Verwenden von Daten, die aus verschiedenen Quellen verfügbar sind, um ein Modell zum Initiieren/Deaktivieren eines virtuellen Assistenten zu verbessern. Die vorliegende Offenbarung geht davon aus, dass diese erhobenen Daten in manchen Fällen personenbezogene Daten beinhalten können, die eine bestimmte Person eindeutig erkennbar machen oder die verwendet werden können, um diese zu kontaktieren oder zu lokalisieren. Solche personenbezogenen Daten können demographische Daten, standortbezogene Daten, Telefonnummern, E-Mail-Adressen, Twitter-IDs, Privatadressen, Daten oder Aufzeichnungen über die Gesundheit oder den Fitnesslevel eines Benutzers (z. B. Vitalparameter-Messungen, Medikamenteninformationen, Trainingsinformationen), das Geburtsdatum oder andere identifizierende oder persönliche Informationen beinhalten.
  • Die vorliegende Offenbarung erkennt, dass die Verwendung solcher personenbezogenen Daten in der vorliegenden Technologie zum Vorteil der Benutzer verwendet werden kann. So können beispielsweise die personenbezogenen Daten verwendet werden, um ein personalisiertes Modell für die Initiierung eines virtuellen Assistenten zu generieren und/oder zu trainieren. Dementsprechend ermöglicht die Verwendung solcher personalisierter Informationsdaten verbesserte Modelle für die Initiierung eines virtuellen Assistenten, die auf die Art und Weise zugeschnitten sind, wie ein bestimmter Benutzer einen virtuellen Assistenten initiiert. Ferner werden von der vorliegenden Offenbarung auch andere Verwendungen personenbezogener Informationen, die für den Benutzer von Vorteil sind, in Betracht gezogen. So können beispielsweise Gesundheits- und Fitnessdaten verwendet werden, um Einblicke in das allgemeine Wohlbefinden eines Benutzers zu geben, oder sie können als positives Feedback an Personen verwendet werden, die Technologie zur Verfolgung von Wellnesszielen einsetzen.
  • Die vorliegende Offenbarung zieht in Betracht, dass die Stellen, die für die Sammlung, Analyse, Offenlegung, Übertragung, Speicherung oder andere Verwendung solcher personenbezogenen Daten verantwortlich sind, allgemein eingerichtete Datenschutzrichtlinien und/oder Datenschutzpraktiken einhalten werden. Insbesondere sollten solche Stellen Datenschutzvorschriften und -praktiken implementieren und konsistent anwenden, die allgemein als solche anerkannt sind, welche die von der Industrie oder der Regierung aufgestellten Anforderungen an die vertrauliche und sichere Aufbewahrung personenbezogener Daten erfüllen oder übererfüllen. Solche Richtlinien sollten für Benutzer leicht zugänglich sein und sollten aktualisiert werden, wenn sich die Sammlung und/oder Verwendung von Daten ändert. Personenbezogene Informationen von Benutzern sollten für legitime und sinnvolle Verwendungen durch die Stellen gesammelt und nicht außerhalb dieser legitimen Verwendungen geteilt oder verkauft werden. Ferner sollte eine solche Erfassung/Weitergabe stattfinden, nachdem die informierte Zustimmung der Benutzer erhalten worden ist. Außerdem sollten solche Stellen in Betracht ziehen, alle notwendigen Schritte für den Schutz und die Sicherung des Zugangs zu solchen personenbezogenen Daten zu ergreifen und sicherstellen, dass andere, die Zugang zu den personenbezogenen Daten haben, sich an ihre Datenschutzvorschriften und -abläufe halten. Ferner können solche Stellen sich einer Evaluierung durch Dritte unterwerfen, um bestätigen zu lassen, dass sie sich an gemeinhin anerkannte Datenschutzvorschriften und -praktiken halten. Darüber hinaus sollten die Richtlinien und Praktiken an die besonderen Arten von personenbezogenen Daten, die gesammelt und/oder abgerufen werden, angepasst und an die geltenden Gesetze und Normen, einschließlich gerichtsspezifischer Erwägungen, angepasst werden. So kann beispielsweise in den USA die Erhebung oder der Zugriff auf bestimmte Gesundheitsdaten durch Bundes- und/oder Landesgesetze geregelt werden, wie beispielsweise den Health Insurance Portability and Accountability Act (HIPAA); während Gesundheitsdaten in anderen Ländern anderen Vorschriften und Richtlinien unterliegen können und entsprechend behandelt werden sollten. Daher sollten für die verschiedenen Arten von personenbezogenen Daten in jedem Land unterschiedliche Datenschutzpraktiken eingehalten werden.
  • Trotz der obigen Ausführungen zieht die vorliegende Offenbarung auch Ausführungsformen in Betracht, in denen Benutzer die Nutzung von oder den Zugang zu personenbezogenen Daten selektiv blockieren. Das heißt, die vorliegende Offenbarung geht davon aus, dass Hardware- und/oder Software-Elemente bereitgestellt werden können, um einen Zugang zu solchen personenbezogenen Daten zu verhindern oder zu blockieren. Im Falle der Erfassung benutzerspezifischer Bewegungseingaben und Audioeingaben zur Initiierung eines virtuellen Assistenten (z. B. während eines Anmeldevorgangs) kann die vorliegende Technologie so konfiguriert werden, dass die Benutzer die Möglichkeit haben, sich bei der Registrierung für Dienste oder zu einem späteren Zeitpunkt zu entscheiden, ob sie der Teilnahme an der Erfassung personenbezogener Daten „zustimmen“ oder diese „ablehnen“. In einem weiteren Beispiel können Benutzer entscheiden, die Zeitdauer der Speicherung von benutzerspezifischen Bewegungseingaben und/oder Audioeingaben zu begrenzen, oder die Erfassung von benutzerspezifischen Bewegungseingaben und/oder Audioeingaben vollständig zu verbieten. Zusätzlich zu den Optionen „zustimmen“ und „ablehnen“ erwägt die vorliegende Offenbarung die Bereitstellung von Benachrichtigungen über den Zugang zu oder die Verwendung von personenbezogenen Daten. So kann ein Benutzer beispielsweise beim Herunterladen einer App benachrichtigt werden, dass auf seine personenbezogenen Daten zugegriffen wird, und dann kurz vor dem Zugriff der App auf die personenbezogenen Daten erneut daran erinnert werden.
  • Darüber hinaus ist es die Absicht der vorliegenden Offenbarung, dass personenbezogene Daten so verwaltet und behandelt werden, dass das Risiko eines unbeabsichtigten oder unbefugten Zugriffs oder Gebrauchs minimiert wird. Das Risiko kann minimiert werden, indem die Sammlung von Daten begrenzt wird und Daten gelöscht werden, sobald sie nicht mehr benötigt werden. Darüber hinaus und bei Bedarf, einschließlich in bestimmten gesundheitsbezogenen Anwendungen, kann die Daten-Deidentifizierung zum Schutz der Privatsphäre eines Benutzers verwendet werden. Die Deidentifizierung kann gegebenenfalls erleichtert werden, indem spezifische Identifikatoren (z. B. Geburtsdatum usw.) entfernt, die Menge oder Spezifität der gespeicherten Daten kontrolliert (z. B. Erhebung von Standortdaten auf Stadtebene statt auf Adressebene), die Art und Weise, wie Daten gespeichert werden (z. B. Aggregation von Daten über Benutzer hinweg) gesteuert wird und/oder durch den Einsatz anderer Methoden.
  • Obwohl die vorliegende Offenbarung die Verwendung personenbezogener Daten zur Implementierung einer oder mehrerer unterschiedlicher, offenbarter Ausführungsformen breit abdeckt, zieht die vorliegende Offenbarung auch in Betracht, dass die unterschiedlichen Ausführungsformen auch ohne die Notwendigkeit für einen Zugang zu solchen personenbezogenen Daten implementiert werden kann. Das heißt, die verschiedenen Ausführungsformen der vorliegenden Technologie werden aufgrund des Fehlens aller derartigen personenbezogenen Daten oder eines Teils davon nicht funktionsunfähig. So kann beispielsweise ein virtueller Assistent unter Verwendung eines generischen (z. B. nicht benutzerspezifischen und/oder einer bestimmten Gruppe von Benutzern zugeordneten) Modells zur Initiierung eines virtuellen Assistenten auf Grundlage von nicht personenbezogenen Daten oder einer absoluten Mindestmenge an personenbezogenen Daten, wie beispielsweise dem Inhalt, der von der Vorrichtung angefordert wird, die einem Benutzer zugeordnet ist, anderen nicht personenbezogenen Informationen, die dem Modell zur Initiierung eines virtuellen Assistenten zur Verfügung stehen, oder öffentlich zugänglichen Informationen initiiert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62668154 [0001]
    • US 62679798 [0001]
    • US 16032487 [0001]
    • US 11322549 [0035]
    • US 7657849 [0035]
    • US 2002/0015024 A1 [0039]
    • US 11381313 [0040]
    • US 10840862 [0040]
    • US 10903964 [0040]
    • US 11048264 [0040]
    • US 11038590 [0040]
    • US 11228758 [0040]
    • US 11228700 [0040]
    • US 11228737 [0040]
    • US 11367749 [0040]
    • US 11241839 [0046]
    • US 60936562 [0084]
    • US 11968067 [0084]
    • US 2013040061 PCT [0127]
    • US 2013069483 PCT [0127]
    • US 14/298725 [0176]
    • US 12/987982 [0186]
    • US 13/251088 [0186]
    • US 14796675 [0200]
    • US 14841449 [0242]
    • US 14846667 [0266]
    • US 14701147 [0266]

Claims (51)

  1. Verfahren, umfassend: auf einer elektronischen Vorrichtung mit einem Mikrofon und einer Anzeige: Erfassen einer Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert; Abtasten einer Audioeingabe mit dem Mikrofon; Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine virtuelle Assistentensitzung initiiert werden soll, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einschließt, ob die virtuelle Assistentensitzung auf der Grundlage eines Bewegungsmodells initiiert werden soll; gemäß einer Bestimmung, die virtuelle Assistentensitzung zu initiieren, Initiieren der virtuellen Assistentensitzung; und gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, Unterlassen der Initiierung der virtuellen Assistentensitzung.
  2. Verfahren nach Anspruch 1, ferner umfassend: gemäß der Initiierung der virtuellen Assistentensitzung: Bestimmen einer Benutzerabsicht basierend auf der Audioeingabe; Ausführen einer Aufgabe basierend auf der Benutzerabsicht; und Bereitstellen einer Ausgabe, die der Aufgabe zugeordnet ist.
  3. Verfahren nach Anspruch 1, ferner umfassend: gemäß der Initiierung der virtuellen Assistentensitzung: gemäß dem Nichtbestimmen einer Benutzerabsicht basierend auf der Audioeingabe, das Unterlassen der Bereitstellung einer Ausgabe als Reaktion auf die Audioeingabe.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Audioeingabe keinen gesprochenen Auslöser einschließt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, ferner umfassend: Einschalten der Anzeige basierend auf einem ersten Teil der Eingabe, der eine Bewegung der elektronischen Vorrichtung repräsentiert; und wobei die Audioeingabe gemäß dem Einschalten der Anzeige abgetastet wird.
  6. Verfahren nach Anspruch 5, wobei der erste Teil der Eingabe, der die Bewegung der elektronischen Vorrichtung repräsentiert, eine Handgelenkanhebungsgeste und/oder eine Handgelenkdrehungsgeste repräsentiert.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Abtasten der Audioeingabe gemäß dem Einschalten der Anzeige durchgeführt wird.
  8. Verfahren nach einem der Ansprüche 1-7, wobei die Audioeingabe abgetastet wird, während mindestens ein zweiter Teil der Eingabe erfasst wird, der die Bewegung der elektronischen Vorrichtung repräsentiert.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, durch einen oder mehrere Beschleunigungsmesser der elektronischen Vorrichtung erfasst wird.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei die Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, durch ein oder mehrere Gyroskope der elektronischen Vorrichtung erfasst wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die Bewegung der elektronischen Vorrichtung einen Wechsel der elektronischen Vorrichtung zwischen zwei oder mehr Stellungen einer Vielzahl von Stellungen einschließt.
  12. Verfahren nach Anspruch 11, wobei die Vielzahl von Stellungen eine abgesenkte Stellung, eine anhebende Stellung, eine angehobene Stellung und eine absenkende Stellung einschließen.
  13. Verfahren nach Anspruch 12, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, einschließt: Bestimmen, basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, ob die Bewegung der elektronischen Vorrichtung einen Wechsel von der anhebenden zu der angehobenen Stellung einschließt.
  14. Verfahren nach Anspruch 13, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, einschließt: Bestimmen einer Dauer des Wechsels von der anhebenden Stellung zu der angehobenen Stellung.
  15. Verfahren nach einem der Ansprüche 13 bis 14, wobei die Audioeingabe zu einem ersten Zeitpunkt abgetastet wird, wobei der Wechsel von der anhebenden Stellung zu der angehobenen Stellung einem zweiten Zeitpunkt zugeordnet ist und wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einschließt, ob die virtuelle Assistentensitzung basierend auf der ersten Zeit und der zweiten Zeit initiiert werden soll.
  16. Verfahren nach einem der Ansprüche 12 bis 15, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, einschließt: Bestimmen, basierend auf der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine Dauer der angehobenen Stellung eine erste vorbestimmte Dauer überschreitet.
  17. Verfahren nach einem der Ansprüche 12 bis 16, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, einschließt: Bestimmen, basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, ob die Bewegung der elektronischen Vorrichtung einen ersten Wechsel von der angehoben zu der absenkenden Stellung einschließt.
  18. Verfahren nach einem der Ansprüche 12 bis 17, ferner umfassend: gemäß der Initiierung der virtuellen Assistentensitzung: Bestimmen, basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, ob die Bewegung der elektronischen Vorrichtung einen zweiten Wechsel von der angehoben zu der absenkenden Stellung einschließt, und gemäß einer Bestimmung, dass die Bewegung der elektronischen Vorrichtung den zweiten Wechsel von der angehobenen Stellung in die absenkende Stellung einschließt, Deaktivieren der virtuellen Assistentensitzung.
  19. Verfahren nach Anspruch 18, ferner umfassend: Bestimmen eines Zeitpunktes, der dem zweiten Wechsel von der angehobenen Stellung zu der absenkenden Stellung zugeordnet ist; Bestimmen eines Zeitpunktes, der einem Ende der Rede in der Audioeingabe zugeordnet ist; und wobei das Deaktivieren der virtuellen Assistentensitzung ferner gemäß einer Bestimmung durchgeführt wird, dass der Zeitpunkt, der dem zweiten Wechsel von der angehobenen Stellung zu der absenkenden Stellung zugeordnet ist, vor dem Zeitpunkt liegt, der dem Ende der Rede in der Audioeingabe zugeordnet ist.
  20. Verfahren nach einem der Ansprüche 12 bis 19, ferner umfassend: Bestimmen eines Zeitpunktes, der einem dritten Wechsel von der angehobenen Stellung zu der absenkenden Stellung zugeordnet ist; und Bestimmen eines Endpunkts der Audioeingabe basierend auf dem Zeitpunkt, der dem dritten Wechsel von der angehobenen Stellung zu der absenkenden Stellung zugeordnet ist.
  21. Verfahren nach einem der Ansprüche 12 bis 20, wobei das Bewegungsmodell ein erstes neuronales Netz einschließt.
  22. Verfahren nach einem der Ansprüche 12 bis 21, wobei das Bewegungsmodell für einen ersten Benutzer der elektronischen Vorrichtung spezifisch ist.
  23. Verfahren nach einem der Ansprüche 12 bis 22, ferner umfassend: Bestimmen, unter Verwendung des Bewegungsmodells, einer Wahrscheinlichkeit des Wechsels der elektronischen Vorrichtung zwischen zwei oder mehr Stellungen der Vielzahl von Stellungen; und Bestimmen, unter Verwendung des Bewegungsmodells, einer Wahrscheinlichkeit einer Stellung der Vielzahl von Stellungen.
  24. Verfahren nach einem der Ansprüche 1 bis 23, wobei das Erfassen der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, das Abtasten der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, unter Verwendung eines ersten Prozessors einschließt.
  25. Verfahren nach Anspruch 24, wobei das Abtasten der Audioeingabe das Abtasten der Audioeingabe unter Verwendung des ersten Prozessors einschließt.
  26. Verfahren nach Anspruch 24, wobei das Abtasten der Audioeingabe das Abtasten der Audioeingabe unter Verwendung eines zweiten Prozessors einschließt.
  27. Verfahren nach Anspruch 26, wobei der zweite Prozessor während des Betriebs mehr Leistung verbraucht als der erste Prozessor.
  28. Verfahren nach einem der Ansprüche 26 bis 27, wobei der zweite Prozessor basierend auf zumindest einem dritten Teil der Eingabe aktiviert wird, der die Bewegung der elektronischen Vorrichtung repräsentiert.
  29. Verfahren nach einem der Ansprüche 1 bis 28, wobei das Bestimmen, ob die virtuelle Sitzung initiiert werden soll, das Bestimmen einschließt, ob die Audioeingabe menschliche Sprache beinhaltet.
  30. Verfahren nach Anspruch 29, wobei das Bestimmen, ob die Audioeingabe menschliche Sprache beinhaltet, das Bestimmen, ob die Audioeingabe menschliche Sprache beinhaltet, die von einem autorisierten Benutzer der elektronischen Vorrichtung gesprochen wird, einschließt.
  31. Verfahren nach einem der Ansprüche 1 bis 30, wobei das Bestimmen, ob eine virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einer Richtung, die der Audioeingabe zugeordnet ist, einschließt.
  32. Verfahren nach einem der Ansprüche 1 bis 31, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einer Nähe der Audioeingabe zur elektronischen Vorrichtung einschließt.
  33. Verfahren nach einem der Ansprüche 1 bis 32, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einschließt, ob die virtuelle Assistentensitzung basierend auf einem Audiomodell initiiert werden soll.
  34. Verfahren nach Anspruch 33, wobei das Audiomodell ein zweites neuronales Netz einschließt.
  35. Verfahren nach einem der Ansprüche 33 bis 34, wobei das Audiomodell für einen zweiten Benutzer der elektronischen Vorrichtung spezifisch ist.
  36. Verfahren nach einem der Ansprüche 1 bis 35, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, einschließt: Bestimmen, zu einem dritten Zeitpunkt, ob die virtuelle Assistentensitzung basierend auf der Audioeingabe initiiert werden soll; Bestimmen, zu einem vierten Zeitpunkt, ob die virtuelle Assistentensitzung basierend auf der Eingabe, die die Bewegung der elektronischen Vorrichtung repräsentiert, initiiert werden soll; und Bestimmen, ob der dritte Zeitpunkt und der vierte Zeitpunkt innerhalb einer zweiten vorbestimmten Dauer liegen; und wobei das Initiieren der virtuellen Assistentensitzung gemäß einer Bestimmung durchgeführt wird, dass der dritte Zeitpunkt und der vierte Zeitpunkt innerhalb der zweiten vorbestimmten Dauer liegen.
  37. Verfahren nach einem der Ansprüche 1 bis 36, ferner umfassend: gemäß der Initiierung der virtuellen Assistentensitzung: Bestimmen, basierend auf dem linguistischen Inhalt der Audioeingabe, ob die virtuelle Assistentensitzung deaktiviert werden soll; gemäß einer Bestimmung, die virtuelle Assistentensitzung zu deaktivieren, Deaktivieren der virtuellen Assistentensitzung; und gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu deaktivieren, Unterlassen der Deaktivierung der virtuellen Assistentensitzung.
  38. Verfahren nach einem der Ansprüche 1 bis 37, ferner umfassend: gemäß der Initiierung der virtuellen Assistentensitzung: Bestimmen, ob eine Dauer der Audioeingabe kürzer als eine Schwellendauer ist; und gemäß einer Bestimmung, dass die Dauer der Audioeingabe kürzer als die Schwellendauer ist, Deaktivieren der virtuellen Assistentensitzung.
  39. Verfahren nach einem der Ansprüche 1 bis 38, wobei das Initiieren der virtuellen Assistentensitzung das Anzeigen einer ersten Benutzerschnittstelle einschließt, die dem virtuellen Assistenten zugeordnet ist.
  40. Verfahren nach einem der Ansprüche 1 bis 39, wobei das Initiieren der virtuellen Assistentensitzung das Bereitstellen einer Audioausgabe einschließt.
  41. Verfahren nach einem der Ansprüche 1 bis 40, wobei das Initiieren der virtuellen Assistentensitzung das Bereitstellen einer haptischen Ausgabe einschließt.
  42. Verfahren nach einem der Ansprüche 1 bis 41, ferner umfassend: gemäß der Initiierung der virtuellen Assistentensitzung, Deaktivieren der virtuellen Assistentensitzung.
  43. Verfahren nach Anspruch 42, wobei das Deaktivieren der virtuellen Assistentensitzung das Beenden der Anzeige einer zweiten Benutzerschnittstelle einschließt, die dem digitalen Assistenten zugeordnet ist.
  44. Verfahren nach einem der Ansprüche 42 bis 43, wobei das Deaktivieren der virtuellen Assistentensitzung das Unterlassen einer Reaktion auf die Audioeingabe einschließt.
  45. Verfahren nach einem der Ansprüche 1 bis 44, wobei die elektronische Vorrichtung ein Computer, ein Lautsprecher, eine Smart Watch, ein Telefon oder eine Kombination davon ist.
  46. Elektronische Vorrichtung, umfassend: ein Mikrofon; eine Anzeige; einen oder mehrere Prozessoren; einen Speicher; und ein oder mehrere Programme, wobei das eine oder die mehreren Programme im Speicher gespeichert und dazu ausgelegt sind, von dem einen oder den mehreren Prozessoren ausgeführt zu werden, wobei das eine oder die mehreren Programme Anweisungen für Folgendes einschließen: Erfassen einer Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert; Abtasten einer Audioeingabe mit dem Mikrofon; Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine virtuelle Assistentensitzung initiiert werden soll, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einschließt, ob die virtuelle Assistentensitzung auf der Grundlage eines Bewegungsmodells initiiert werden soll; gemäß einer Bestimmung, die virtuelle Assistentensitzung zu initiieren, Initiieren der virtuellen Assistentensitzung; und gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, Unterlassen der Initiierung der virtuellen Assistentensitzung.
  47. Nichtflüchtiges, computerlesbares Datenspeichermedium in dem ein oder mehrere Programme gespeichert sind, wobei das eine oder die mehreren Programme Anweisungen umfassen, die bei Ausführen durch einen oder mehrere Prozessoren einer elektronischen Vorrichtung mit einem Mikrofon und einer Anzeige die elektronische Vorrichtung veranlassen zum: Erfassen einer Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert; Abtasten einer Audioeingabe mit dem Mikrofon; Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine virtuelle Assistentensitzung initiiert werden soll, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einschließt, ob die virtuelle Assistentensitzung auf der Grundlage eines Bewegungsmodells initiiert werden soll; gemäß einer Bestimmung, die virtuelle Assistentensitzung zu initiieren, Initiieren der virtuellen Assistentensitzung; und gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, Unterlassen der Initiierung der virtuallen Assistentensitzung.
  48. Elektronische Vorrichtung, umfassend Mittel zum: Erfassen einer Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert; Abtasten eine Audioeingabe; Bestimmen, basierend auf der Audioeingabe und der Eingabe, die eine Bewegung der elektronischen Vorrichtung repräsentiert, ob eine virtuelle Assistentensitzung initiiert werden soll, wobei das Bestimmen, ob die virtuelle Assistentensitzung initiiert werden soll, das Bestimmen einschließt, ob die virtuelle Assistentensitzung auf der Grundlage eines Bewegungsmodells initiiert werden soll; gemäß einer Bestimmung, die virtuelle Assistentensitzung zu initiieren, Initiieren der virtuellen Assistentensitzung; und gemäß einer Bestimmung, die virtuelle Assistentensitzung nicht zu initiieren, Unterlassen der Initiierung der virtuellen Assistentensitzung.
  49. Elektronische Vorrichtung, umfassend: einen oder mehrere Prozessoren; einen Speicher; und ein oder mehrere Programme, wobei das eine oder die mehreren Programme im Speicher gespeichert und konfiguriert sind, von dem einen oder den mehreren Prozessoren ausgeführt zu werden, wobei das eine oder die mehreren Programme Anweisungen zum Durchführen der Verfahren nach einem der Ansprüche 1 bis 45 einschließen.
  50. Nichtflüchtiges, computerlesbares Datenspeichermedium in dem ein oder mehrere Programme gespeichert sind, wobei das eine oder die mehreren Programme Anweisungen umfassen, die bei Ausführen durch einen oder mehrere Prozessoren einer elektronischen Vorrichtung die elektronische Vorrichtung veranlassen, die Verfahren nach einem der Ansprüche 1 bis 45 durchzuführen.
  51. Elektronische Vorrichtung, umfassend: Mittel zum Durchführen der Verfahren nach einem der Ansprüche 1-45.
DE112019000018.7T 2018-05-07 2019-03-21 Anheben, um zu sprechen Pending DE112019000018T5 (de)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201862668154P 2018-05-07 2018-05-07
US62/668,154 2018-05-07
US201862679798P 2018-06-02 2018-06-02
US62/679,798 2018-06-02
DKPA201870384 2018-06-12
DKPA201870384A DK179959B1 (en) 2018-05-07 2018-06-12 Lift to speak
US16/032,487 2018-07-11
US16/032,487 US10928918B2 (en) 2018-05-07 2018-07-11 Raise to speak
PCT/US2019/023337 WO2019216996A1 (en) 2018-05-07 2019-03-21 Raise to speak

Publications (1)

Publication Number Publication Date
DE112019000018T5 true DE112019000018T5 (de) 2020-01-09

Family

ID=66290329

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000018.7T Pending DE112019000018T5 (de) 2018-05-07 2019-03-21 Anheben, um zu sprechen

Country Status (6)

Country Link
EP (1) EP3567456A1 (de)
KR (1) KR20190128113A (de)
CN (4) CN110460715A (de)
AU (3) AU2019203209B1 (de)
DE (1) DE112019000018T5 (de)
WO (1) WO2019216996A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10901520B1 (en) * 2019-11-05 2021-01-26 Microsoft Technology Licensing, Llc Content capture experiences driven by multi-modal user inputs
CN111613219B (zh) * 2020-05-15 2023-10-27 深圳前海微众银行股份有限公司 语音数据识别方法、设备及介质
CN111524517B (zh) * 2020-06-24 2023-11-03 深圳前海微众银行股份有限公司 语音识别方法、装置、设备及存储介质
US20220100453A1 (en) * 2020-09-25 2022-03-31 Microsoft Technology Licensing, LLC, Redmond, WA Contextual workflow triggering on devices
CN112242141B (zh) * 2020-10-15 2022-03-15 广州小鹏汽车科技有限公司 一种语音控制方法、智能座舱、服务器、车辆和介质
CN114826803B (zh) * 2022-04-26 2023-10-31 北京字跳网络技术有限公司 会议状态处理方法、装置、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3859008A (en) 1971-07-06 1975-01-07 Andritz Ag Maschf Pump with offset inflow and discharge chambers
US4826405A (en) 1985-10-15 1989-05-02 Aeroquip Corporation Fan blade fabrication system
US20020015024A1 (en) 1998-01-26 2002-02-07 University Of Delaware Method and apparatus for integrating manual input
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US20130040061A1 (en) 2011-08-09 2013-02-14 Kateeva, Inc. Face-down printing apparatus and method
US20130069483A1 (en) 2011-09-19 2013-03-21 Chief Land Electronic Co., Ltd. Transducer and transducer module

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3859005A (en) 1973-08-13 1975-01-07 Albert L Huebner Erosion reduction in wet turbines
US7688306B2 (en) 2000-10-02 2010-03-30 Apple Inc. Methods and apparatuses for operating a portable device based on an accelerometer
US7218226B2 (en) 2004-03-01 2007-05-15 Apple Inc. Acceleration-based theft detection system for portable electronic devices
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
KR20210152028A (ko) * 2008-11-10 2021-12-14 구글 엘엘씨 멀티센서 음성 검출
US8922485B1 (en) * 2009-12-18 2014-12-30 Google Inc. Behavioral recognition on mobile devices
US9576574B2 (en) * 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
CN113470640B (zh) * 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
WO2014159581A1 (en) * 2013-03-12 2014-10-02 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
CN104700832B (zh) * 2013-12-09 2018-05-25 联发科技股份有限公司 语音关键字检测系统及方法
US20150092520A1 (en) * 2013-09-27 2015-04-02 Google Inc. Adaptive Trigger Point For Smartwatch Gesture-to-Wake
US9715875B2 (en) * 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
WO2016010857A1 (en) * 2014-07-18 2016-01-21 Apple Inc. Raise gesture detection in a device
KR20160065503A (ko) * 2014-12-01 2016-06-09 엘지전자 주식회사 이동 단말기 및 그 제어 방법
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
CN104836909B (zh) * 2015-04-27 2018-05-11 广东小天才科技有限公司 一种来电自动接通的方法及装置
US9961521B2 (en) * 2015-04-27 2018-05-01 Apple Inc. Contextual call notification user interface
CN106773742B (zh) * 2015-11-23 2019-10-25 宏碁股份有限公司 语音控制方法及语音控制系统
US10223066B2 (en) * 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
CN105554217B (zh) * 2015-12-24 2019-12-24 联想(北京)有限公司 一种控制方法以及电子设备
EP3454535B1 (de) * 2016-05-20 2021-10-20 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur interaktion bei einem anruf
US10043516B2 (en) * 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3859008A (en) 1971-07-06 1975-01-07 Andritz Ag Maschf Pump with offset inflow and discharge chambers
US4826405A (en) 1985-10-15 1989-05-02 Aeroquip Corporation Fan blade fabrication system
US20020015024A1 (en) 1998-01-26 2002-02-07 University Of Delaware Method and apparatus for integrating manual input
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US20130040061A1 (en) 2011-08-09 2013-02-14 Kateeva, Inc. Face-down printing apparatus and method
US20130069483A1 (en) 2011-09-19 2013-03-21 Chief Land Electronic Co., Ltd. Transducer and transducer module

Also Published As

Publication number Publication date
WO2019216996A1 (en) 2019-11-14
EP3567456A1 (de) 2019-11-13
AU2020256472B1 (en) 2020-11-12
AU2019232936B2 (en) 2020-07-23
AU2019203209B1 (en) 2019-06-20
CN112217941B (zh) 2022-05-24
KR20190128113A (ko) 2019-11-15
CN112217941A (zh) 2021-01-12
AU2019232936A1 (en) 2019-10-24
CN113992788A (zh) 2022-01-28
CN110460715A (zh) 2019-11-15
CN113973151A (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
DE112016003459B4 (de) Sprecherkennung
KR102651921B1 (ko) 비디오 통신 세션 환경에서의 디지털 어시스턴트 상호작용
KR102608221B1 (ko) 관심 인식 가상 어시스턴트 해제
CN110473538B (zh) 检测数字助理的触发
CN110223698B (zh) 训练数字助理的说话人识别模型
CN110851101B (zh) 虚拟助理激活
CN110442319B (zh) 对语音触发进行响应的竞争设备
DE102017209504A1 (de) Datenbezogene Erkennung und Klassifizierung von natürlichen Sprachereignissen
DE202017004558U1 (de) Intelligenter automatisierter Assistent
DE102016214955A1 (de) Latenzfreier digitaler Assistent
DE202017000991U1 (de) Identifikation von Spracheingaben zum Bereitstellen von Anmeldeinformationen
CN112567332A (zh) 语音命令的多模态输入
KR20200090916A (ko) 가변 레이턴시 디바이스 조정
CN116414282A (zh) 多模态界面
DE112019000018T5 (de) Anheben, um zu sprechen
KR20190063480A (ko) 착신 통화를 거절하기 위한 지능형 디지털 어시스턴트
KR20180133526A (ko) 지능형 디바이스 중재 및 제어
CN115132203A (zh) 与数字助理的连续对话
US20230098174A1 (en) Digital assistant for providing handsfree notification management
KR20240027140A (ko) 통신 세션에서의 디지털 어시스턴트 상호작용
CN116486799A (zh) 从用户话语生成emoji
CN115083414A (zh) 用于连续对话的多状态数字助理
CN112099721A (zh) 数字助理用户界面和响应模式
CN112015873A (zh) 通过设备内置目标定位和个性化实现语音助理可发现性
CN110651324B (zh) 多模态界面

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: ZACCO LEGAL RECHTSANWALTSGESELLSCHAFT MBH, DE