-
HINTERGRUND
-
Paketbasierte oder anderweitige überhöhte Netzwerkübertragungen von Netzwerkverkehrsdaten zwischen Computergeräten können ein Computergerät daran hindern, die Netzwerkverkehrsdaten richtig zu verarbeiten, einen Vorgang, der mit den Netzwerkverkehrsdaten verbunden ist, abzuschließen oder zeitgerecht auf die Netzwerkverkehrsdaten zu reagieren. Die überhöhten Netzwerkübertragungen von Netzwerkverkehrsdaten können zudem ein Datenrouting erschweren oder die Qualität der Antwort verschlechtern, falls das reagierende Computergerät an oder über dessen Verarbeitungskapazität gelangt, was eine ineffiziente Bandbreitenauslastung zur Folge haben kann. Die Steuerung von Netzwerkübertragungen, die Inhaltselementobjekten entsprechen, kann durch die große Anzahl von Inhaltselementobjekten erschwert werden, die Netzwerkübertragungen von Netzwerkverkehrsdaten zwischen Computergeräten initiieren können.
-
KURZDARSTELLUNG
-
Mindestens ein Aspekt ist auf ein System zum Verwalten sprachaktivierter Threads in einer auf sprachaktivierten, Datenpaketen basierten Computernetzwerkumgebung gerichtet. Eine Prozessorkomponente für natürliche Sprache, die durch ein Datenverarbeitungssystem ausgeführt wird, kann, über eine Schnittstelle des Datenverarbeitungssystems, Datenpakete empfangen, die ein durch einen Sensor eines ersten Client-Computergeräts erkanntes erstes Eingabeaudiosignal umfassen. Die Prozessorkomponente für natürliche Sprache kann das erste Eingabeaudiosignal parsen, um eine erste Anfrage und ein erstes Auslöserschlüsselwort zu identifizieren, das der ersten Anfrage entspricht. Eine Direktaktions-Anwendungsprogrammierschnittstelle („API“) des Datenverarbeitungssystems kann, basierend auf dem ersten Auslöserschlüsselwort und in Reaktion auf die erste Anfrage, eine erste Aktionsdatenstruktur mit einem Parameter erzeugen, der eine erste Aktion identifiziert. Die Prozessorkomponente für natürliche Sprache kann, über die Schnittstelle des Datenverarbeitungssystems, Datenpakete empfangen, die ein zweites Eingabeaudiosignal umfassen, das von einem Sensor eines zweiten Client-Computergeräts erkannt wurde, und kann das zweite Eingabeaudiosignal parsen, um eine zweite Anfrage und ein zweites Auslöserschlüsselwort zu identifizieren, das der zweiten Anfrage entspricht. Die Direktaktions-Anwendungsprogrammierschnittstelle kann, basierend auf dem zweiten Auslöserschlüsselwort und in Reaktion auf die zweite Anfrage, eine zweite Aktionsdatenstruktur mit einem Parameter erzeugen, der eine zweite Aktion definiert. Die Pooling-Komponente des Datenverarbeitungssystems kann, basierend auf einer heuristischen Technik, die auf den Parameter der ersten Datenstruktur und den Parameter der zweite Datenstruktur angewandt wird, einen Pooling-Parameter ermitteln, der einen Grad der Überlappung zwischen der ersten Datenstruktur und der zweiten Datenstruktur angibt. Die Pooling-Komponente kann, basierend auf dem Pooling-Parameter, die erste Aktionsdatenstruktur mit der zweiten Aktionsdatenstruktur in einer gepoolten Datenstruktur kombinieren. Die Pooling-Komponente kann, über ein Computernetzwerk, die gepoolte Datenstruktur an ein Dienstanbieter-Computergerät übertragen, um das Dienstanbieter-Computergerät zu veranlassen, einen Vorgang durchzuführen, der durch die gepoolte Datenstruktur definiert wird und der ersten Aktion und der zweiten Aktion entspricht.
-
Mindestens ein Aspekt offenbart ein Verfahren, sprachaktivierte Threads in einer auf sprachaktivierten, Datenpaketen basierten Computernetzwerkumgebung zu verwalten. Das Verfahren kann das Empfangen von Datenpaketen, die ein durch einen Sensor eines ersten Client-Computergeräts erkanntes erstes Eingabeaudiosignal umfassen, durch eine Prozessorkomponente für natürliche Sprache, die durch ein Datenverarbeitungssystem ausgeführt wird, über eine Schnittstelle des Datenverarbeitungssystems, beinhalten. Das Verfahren kann das Parsen des ersten Eingabeaudiosignals zum Identifizieren einer ersten Anfrage und eines ersten Auslöserschlüsselworts, das der ersten Anfrage entspricht, durch die Prozessorkomponente für natürliche Sprache beinhalten. Das Verfahren kann das Erzeugen einer ersten Aktionsdatenstruktur mit einem Parameter, der die erste Aktion definiert, durch eine Direktaktions-Anwendungsprogrammierschnittstelle („API“) des Datenverarbeitungssystems basierend auf dem ersten Auslöserschlüsselwort und in Reaktion auf die erste Anfrage beinhalten. Das Verfahren kann das Empfangen, durch die Prozessorkomponente für natürliche Sprache, über die Schnittstelle des Datenverarbeitungssystems, von Datenpaketen beinhalten, die ein zweites Eingabeaudiosignal umfassen, das von einem Sensor eines zweiten Client-Computergeräts erkannt wurde, und das Parsen, durch die Prozessorkomponente für natürliche Sprache, des zweiten Eingabeaudiosignals, um eine zweite Anfrage und ein zweites Auslöserschlüsselwort zu identifizieren, das der zweiten Anfrage entspricht. Das Verfahren kann das Erzeugen einer zweiten Aktionsdatenstruktur mit einem Parameter, der eine zweite Aktion definiert, durch die Direktaktions-API, basierend auf dem zweiten Auslöserschlüsselwort und in Reaktion auf die zweite Anfrage beinhalten. Das Verfahren kann das Ermitteln eines Pooling-Parameters, der einen Grad der Überlappung zwischen der ersten Datenstruktur und der zweiten Datenstruktur angibt, durch die Pooling-Komponente des Datenverarbeitungssystems, basierend auf einer heuristischen Technik, die auf den Parameter der ersten Datenstruktur und den Parameter der zweite Datenstruktur angewandt wird, beinhalten. Das Verfahren kann das Kombinieren, basierend auf dem Pooling-Parameter, der ersten Aktionsdatenstruktur mit der zweiten Aktionsdatenstruktur in einer gepoolten Datenstruktur beinhalten. Das Verfahren kann das Übertragen, über ein Computernetzwerk, der gepoolten Datenstruktur an ein Dienstanbieter-Computergerät beinhalten, um das Dienstanbieter-Computergerät zu veranlassen, einen Vorgang durchzuführen, der durch die gepoolte Datenstruktur definiert wird und der ersten Aktion und der zweiten Aktion entspricht.
-
Mindestens ein Aspekt bezieht sich auf ein computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen oder mehrere Datenprozessoren ausgeführt werden, den einen oder die mehreren Datenprozessoren veranlassen, Vorgänge auszuführen, um sprachaktivierte Threads in einer auf sprachaktivierten Datenpakten basierenden Computernetzwerkumgebung zu verwalten. Die Vorgänge können das Empfangen von Datenpaketen, die ein durch einen Sensor eines ersten Client-Computergeräts erkanntes erstes Eingabeaudiosignal umfassen, durch eine Prozessorkomponente für natürliche Sprache, die durch ein Datenverarbeitungssystem ausgeführt wird, über eine Schnittstelle des Datenverarbeitungssystems, beinhalten. Die Vorgänge können das Parsen des ersten Eingabeaudiosignals zum Identifizieren einer ersten Anfrage und eines ersten Auslöserschlüsselworts, das der ersten Anfrage entspricht, durch die Prozessorkomponente für natürliche Sprache beinhalten. Die Vorgänge können das Erzeugen einer ersten Aktionsdatenstruktur mit einem Parameter, der die erste Aktion definiert, durch eine Direktaktions-Anwendungsprogrammierschnittstelle („API“) des Datenverarbeitungssystems basierend auf dem ersten Auslöserschlüsselwort und in Reaktion auf die erste Anfrage beinhalten. Die Vorgänge können das Empfangen, durch die Prozessorkomponente für natürliche Sprache, über die Schnittstelle des Datenverarbeitungssystems, von Datenpaketen beinhalten, die ein zweites Eingabeaudiosignal umfassen, das von einem Sensor eines zweiten Client-Computergeräts erkannt wurde, sowie das Parsen, durch die Prozessorkomponente für natürliche Sprache, des zweiten Eingabeaudiosignals, um eine zweite Anfrage und ein zweites Auslöserschlüsselwort zu identifizieren, das der zweiten Anfrage entspricht. Die Vorgänge können das Erzeugen einer zweiten Aktionsdatenstruktur mit einem Parameter, der eine zweite Aktion definiert, durch die Direktaktions-API, basierend auf dem zweiten Auslöserschlüsselwort und in Reaktion auf die zweite Anfrage beinhalten. Die Vorgänge können das Ermitteln eines Pooling-Parameters, der einen Grad der Überlappung zwischen der ersten Datenstruktur und der zweiten Datenstruktur angibt, durch die Pooling-Komponente des Datenverarbeitungssystems, basierend auf einer heuristischen Technik, die auf den Parameter der ersten Datenstruktur und den Parameter der zweite Datenstruktur angewandt wird, beinhalten. Die Vorgänge können das Kombinieren, basierend auf dem Pooling-Parameter, der ersten Aktionsdatenstruktur mit der zweiten Aktionsdatenstruktur in einer gepoolten Datenstruktur beinhalten. Die Vorgänge können das Übertragen, über ein Computernetzwerk, der gepoolten Datenstruktur an ein Dienstanbieter-Computergerät beinhalten, um das Dienstanbieter-Computergerät zu veranlassen, einen Vorgang durchzuführen, der durch die gepoolte Datenstruktur definiert wird und der ersten Aktion und der zweiten Aktion entspricht.
-
Diese und andere Aspekte und Implementierungen werden nachfolgend näher erläutert. Die vorstehenden Informationen und die folgende ausführliche Beschreibung beinhalten veranschaulichende Beispiele verschiedener Aspekte und Implementierungen und stellen einen Überblick oder einen Rahmen für das Verständnis des Wesens und Charakters der beanspruchten Aspekte und Implementierungen bereit. Die Zeichnungen bieten eine Veranschaulichung und ein weiteres Verständnis der verschiedenen Aspekte und Implementierungen und sind in diese Spezifikation einbezogen und stellen einen Teil derselben dar.
-
Figurenliste
-
Die begleitenden Zeichnungen sollen nicht maßstabsgetreu sein. In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet. Aus Gründen der Übersichtlichkeit ist möglicherweise nicht jede Komponente in jeder Zeichnung beschriftet. In den Zeichnungen:
- 1 stellt ein System zum Verwalten sprachaktivierter Threads in einer auf sprachaktivierten Datenpaketen basierenden Computernetzwerkumgebung dar;
- 2 stellt ein Funktionsdiagramm einer gepoolten Datenstruktur für eine auf sprachaktivierten Datenpaketen basierenden Computernetzwerkumgebung dar;
- 3 stellt ein Funktionsdiagramm des Aktionsdatenstruktur-Poolings und der Kommunikation zwischen Remote-Datenverarbeitungssystemen und Dienstanbieter-Computergeräten in einer auf sprachaktivierten Datenpaketen basierenden Computernetzwerkumgebung dar;
- 4 stellt ein Verfahren zum Verwalten sprachaktivierter Threads in einer auf sprachaktivierten Datenpaketen basierenden Computernetzwerkumgebung dar; und
- 5 zeigt ein Blockdiagramm, das eine allgemeine Architektur für ein Computersystem veranschaulicht, das zum Implementieren von Elementen der hierin beschriebenen und veranschaulichten Systeme und Verfahren eingesetzt werden kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Nachfolgend finden sich ausführlichere Beschreibungen von verschiedenen Konzepten, die Verfahren, Vorrichtungen und Systeme zum Verwalten von sprachaktivierten Threads in einer auf sprachaktivierten Datenpaketen (oder einem anderen Protokoll) basierenden Computernetzwerkumgebung verbunden sind, und von Implementierungen derselben. Die verschiedenen Konzepte, die vorstehend vorgestellt wurden und nachstehend ausführlicher erläutert werden, können auf beliebige von zahlreichen Weisen implementiert werden.
-
Systeme und Verfahren der vorliegenden Offenbarung betreffen im Allgemeinen ein Datenverarbeitungssystem, das redundante oder überlappende sprachaktivierte Threads in einer sprachaktivierten Computernetzwerkumgebung verwaltet. Die sprachaktivierten Threads können eine oder mehrere Aktionen angeben, die durch mindestens eine Aktionsdatenstruktur repräsentiert werden. Das Datenverarbeitungssystem kann die Effizienz und Effektivität der Datenpaketübertragung über eines oder mehrere Computernetzwerke beispielsweise durch Poolen (z. B. Zusammenführen, Zusammenfassen oder Stapeln) von Aktionsdatenstrukturen aufgrund überlappender Gegenstände oder anderer überlappender oder gemeinsamer Parameter verbessern. Datenpakete oder andere protokollbasierte Signale, die den gepoolten Aktionsdatenstrukturen entsprechen, können durch eine Direktaktions-Anwendungsprogrammierschnittstelle („API“) des Datenverarbeitungssystems verarbeitet werden um responsive Daten (z. B. Audioausgabe) bereitzustellen oder eine Aufgabe oder Aktion in Verbindung mit der gepoolten Aktionsdatenstruktur zu erledigen. Die Datenpakete oder andere protokollbasierte Signale, die den gepoolten Aktionsdatenstrukturen entsprechen, können durch eine Direktaktions-Anwendungsprogrammierschnittstelle („API“) des Datenverarbeitungssystems zu mindestens einem Dienstanbieter-Computergerät geleitet werden, um eine Aufgabe oder Aktion in Verbindung mit der gepoolten Aktionsdatenstruktur zu erledigen.
-
Durch Zusammenführen oder Poolen mehrerer Aktionsdatenstrukturen in einer einzelnen oder gepoolten Aktionsdatenstruktur und Stapelverarbeitung der gepoolten Aktionsdatenstruktur kann das Datenverarbeitungssystem die Prozessornutzung, den Stromverbrauch, die Bandbreitennutzung und die Speichernutzung gegenüber individueller oder nicht gepoolter Evaluierung der individuellen Aktionsdatenstrukturen verringern. Das Bereitstellen der gepoolten Aktionsdatenstruktur für das Dienstanbieter-Computergerät über ein Computernetzwerk kann beispielsweise weniger Bandbreite nutzen als das Bereitstellen mehrerer individueller Aktionsdatenstrukturen für das Dienstanbieter-Computergerät. Die gepoolte Aktionsdatenstruktur kann Redundanzen beseitigen, die in mehreren individuellen Aktionsdatenstrukturen vorhanden sind, was eine verringerte Prozessorauslastung und Stromnutzung durch das Datenverarbeitungssystem beim Ermitteln von Aktionen in Reaktion auf die gepoolte Aktionsdatenstruktur relativ zu dem Ermitteln von Aktionen in Reaktion auf jede individuelle oder nicht gepoolte Aktionsdatenstruktur zur Folge hat.
-
Durch zumindest teilweises Umgehen individueller Aktionsdatenstruktur-Verarbeitung und stattdessen Erzeugen gepoolter Aktionsdatenstrukturen kann das Datenverarbeitungssystem Datenverarbeitung verringern, verzögern oder beseitigen, die mit individuellen Aktionsdatenstrukturvorgängen verknüpft ist. Dies spart Verarbeitungsleistung und andere Rechenressourcen, wie z. B. Speicher, reduziert den Stromverbrauch des Datenverarbeitungssystems, darüber hinaus werden durch die reduzierte Datenübertragung über das Computernetzwerk der Bandbreitenbedarf und die Auslastung des Datenverarbeitungssystems reduziert.
-
Die hierin beschriebenen Systeme und Verfahren können ein Datenverarbeitungssystem beinhalten, das eine Eingabeaudioabfrage empfängt, die auch als ein Eingabeaudiosignal bezeichnet werden kann. Vom Eingabeaudiosignal kann das Datenverarbeitungssystem eine Anfrage und ein Auslöserschlüsselwort gemäß der Anfrage identifizieren. Basierend auf dem Auslöserschlüsselwort oder der Anfrage kann das Datenverarbeitungssystem eine erste Aktionsdatenstruktur ermitteln, die mindestens einen Parameter beinhaltet, der eine erste Aktion definiert. Das Datenverarbeitungssystem kann außerdem ein zweites Eingabeaudiosignal empfangen und von mindestens einer Anfrage oder einem Auslöserschlüsselwort des zweiten Eingabeaudiosignals eine zweite Aktionsdatenstruktur identifizieren, die mindesten einen Parameter beinhaltet, der die zweite Aktion definiert. Das Datenverarbeitungssystem kann aus den Parametern der ersten und zweiten Aktionsdatenstrukturen mindestens einen Pooling-Parameter ermitteln. Der Pooling-Parameter kann einen Grad der Überlappung (z. B. Gemeinsamkeit des Gegenstands) zwischen der ersten Aktionsdatenstruktur und der zweiten Aktionsdatenstruktur angeben.
-
Basierend auf dem Pooling-Parameter kann das Datenverarbeitungssystem die erste Aktionsdatenstruktur und die zweite Datenstruktur kombinieren, um eine gepoolte Datenstruktur zu erzeugen. Die gepoolte Datenstruktur kann mindestens einen Parameter der Aktionen (z. B. der ersten Aktion oder der zweiten Aktion) angeben, der den Client-Computergeräten gemeinsam ist, die die Quellen der Eingabeaudiosignale sind. Das Datenverarbeitungssystem kann die gepoolte Datenstruktur verarbeiten, um Ausgabesignale (z. B. ein Audioinhaltselement für das Wiedergeben auf einem oder mehreren Client-Computergeräten) zu erzeugen oder um Aufgaben in Verbindung mit den ersten und zweiten Aktionen zu erledigen. Das Datenverarbeitungssystem kann außerdem die gepoolte Datenstruktur an mindestens ein Dienstanbieter-Computergerät übertragen, um den Dienstanbieter zu veranlassen, von der gepoolten Datenstruktur definierte Vorgänge durchzuführen. Diese Vorgänge können den ersten oder zweiten Aktionen entsprechen und können Aufgaben in Verbindung mit den ersten oder zweiten Aktionen erledigen. Das Poolen der Aktionsdatenstrukturen bewirkt, dass die Vorgänge oder Aufgaben, die den ersten oder zweiten Aktionen entsprechen, mit weniger Datenverarbeitung oder weniger Stromverbrauch durch das Datenverarbeitungssystem (oder durch das Dienstanbieter-Computergerät) durchgeführt oder erledigt werden, als es ohne den Pooling-Vorgang der Fall wäre.
-
1 stellt ein exemplarisches System 100 zum Verwalten oder sonstigen Optimieren der Verarbeitung sprachaktivierter Threads in einer auf sprachaktivierten Datenpaketen (oder einem anderen Protokoll) basierenden Computernetzwerkumgebung dar. Das System 100 kann mindestens ein Datenverarbeitungssystem 105 beinhalten. Das Datenverarbeitungssystem 105 kann mindestens einen Server, der mindestens einen Prozessor aufweist, beinhalten. Das Datenverarbeitungssystem 105 kann beispielsweise eine Vielzahl von Servern beinhalten, die sich in mindestens einem Rechenzentrum oder einer Serverfarm befinden. Das Datenverarbeitungssystem 105 kann aus Audioeingabesignalen Anfragen und mit der Anfrage verbundene Auslöserschlüsselwörter ermitteln. Basierend auf den Anfragen und Auslöserschlüsselwörtern kann das Verarbeitungssystem 105 Aktionsdatenstrukturen erzeugen, die jeweils jeweilige Parameter aufweisen, die jeweilige Aktionen angeben oder definieren. Das Datenverarbeitungssystem 105 kann aus den jeweiligen Parametern einen Grad der Gemeinsamkeit oder Überlappung zwischen den Aktionsdatenstrukturen ermitteln. In Reaktion auf das Ermitteln eines ausreichenden Grades der Überlappung durch das Datenverarbeitungssystem kann das Datenverarbeitungssystem 105 mehrere verschiedene Aktionsdatenstrukturen in einer gepoolten Aktionsdatenstruktur poolen (oder anderweitig kombinieren oder zusammenführen).
-
Das Datenverarbeitungssystem 105 kann mehrere, logisch gruppierte Server beinhalten und verteilte Rechenprozesse ermöglichen. Die logische Gruppe von Servern kann als Rechenzentrum, Serverfarm oder Computerfarm bezeichnet werden. Die Server können auf verschiedene Standorte verteilt sein. Ein Rechenzentrum oder eine Computerfarm kann als eine einzelne Entität verwaltet werden oder die Computerfarm kann eine Vielzahl von Computerfarmen beinhalten. Die Server in einer Computerfarm können heterogen sein - ein oder mehrere der Server oder Computer können gemäß einem oder mehreren Arten von Betriebssystemplattformen betrieben werden. Das Datenverarbeitungssystem 105 kann Server in einem Rechenzentrum beinhalten, die in einem oder mehreren Lagersystemen mit hoher Dichte gespeichert sind, zusammen mit verbundenen Speichersystemen, die sich beispielsweise in einem Enterprise-Rechenzentrum befinden. Das Datenverarbeitungssystem 105 mit konsolidierten Servern kann auf diese Weise Systemverwaltung, Datensicherheit, physische Sicherheit des Systems sowie Systemleistung durch das Lokalisieren von Servern und Hochleistungsspeichersystemen in lokalisierten Hochleistungsnetzwerken verbessern. Die Zentralisierung sämtlicher oder einiger Komponenten des Datenverarbeitungssystems 105, einschließlich Server und Speichersysteme, sowie das Koppeln dieser mit verbesserten System-Management-Tools ermöglicht eine effizientere Verwendung von Server-Ressourcen, wodurch Strom- und Verarbeitungsanforderungen eingespart und die Bandbreitenauslastung reduziert werden.
-
Das Datenverarbeitungssystem 105 kann mindestens eine Prozessorkomponente 110 für natürliche Sprache (NLP), mindestens eine Schnittstelle 115, mindestens eine Pooling-Komponente 120, mindestens eine Inhaltsauswahlelementkomponente 125, mindestens eine Audiosignalgeneratorkomponente 130, mindestens eine Direktaktions-Anwendungsprogrammierschnittstelle (API) 135, mindestens eine Sitzungshandhabungskomponente 140 und mindestens ein Datenbehälter 145 beinhalten. Die NLP-Komponente 110, Schnittstelle 115, Pooling-Komponente 120, Inhaltsauswahlelementkomponente 125, Audiosignalgeneratorkomponente 130, Direktaktions-API 135 und Sitzungshandhabungskomponente 140 können jeweils mindestens eine Verarbeitungseinheit, einen Server, virtuellen Server, eine Schaltung, eine Maschine, einen Agenten, eine Vorrichtung oder ein sonstiges Logik-Gerät, wie z. B. programmierbare Arrays beinhalten, die konfiguriert sind, mit dem Datenbehälter 145 und mit sonstigen Computergeräten (z. B. dem Client-Computergerät 150, dem Inhaltsanbieter-Computergerät 155 oder dem Dienstanbieter-Computergerät 160) über das mindestens eine Computernetzwerk 165 kommunizieren zu können. Das Netzwerk 165 kann Computernetzwerke, wie z. B. das Internet, lokale Netzwerke, regionale Netzwerke und Großraumnetzwerke oder sonstige Bereichsnetzwerke, Intranets, Satellitennetzwerke oder sonstige Computernetzwerke, wie z. B. sprach- oder datenbezogene Mobilfunknetze und Kombinationen derselben, beinhalten.
-
Das Netzwerk 165 kann ein Anzeigenetzwerk, wie z. B. eine im Internet verfügbare Untergruppe von Informationsquellen, beinhalten oder bilden, die mit einem sprachaktivierten Assistentensystem, Inhaltsanordnungs- oder Suchmaschinenergebnissystem verknüpft sind, oder die geeignet sind, Drittanbieterinhaltselemente als Teil einer Inhaltselementanordnungskampagne zu beinhalten. Das Netzwerk 165 kann durch das Datenverarbeitungssystem 105 verwendet werden, um auf Informationsressourcen, wie z. B. Webseiten, Internetpräsenzen, Domänennamen oder URL-Adressen zuzugreifen, die durch das Client-Computergerät 150 präsentiert, ausgegeben, wiedergegeben oder angezeigt werden können. Über das Netzwerk 165 kann ein Benutzer des Client-Computergeräts 150 beispielsweise auf Informationen oder Daten zugreifen, die durch das Inhaltsanbieter-Computergerät 155 oder das Dienstanbieter-Computergerät 160 bereitgestellt werden.
-
Das Netzwerk 165 kann beispielsweise ein Point-to-Point-Netzwerk, ein Broadcast-Netzwerk, ein Großraumnetzwerk, ein lokales Netzwerk, ein Telekommunikationsnetzwerk, ein Datenkommunikationsnetzwerk, ein Computernetzwerk, ein ATM (Asynchroner Transfermodus)-Netzwerk, ein SONET (Synchrones Optisches Netzwerk)-Netzwerk, ein SDH (Synchrone Digitale Hierarchie)-Netzwerk, ein Drahtlosnetzwerk oder ein kabelgebundenes Netzwerk, und Kombinationen derselben, beinhalten. Das Netzwerk 165 kann eine Drahtlosverbindung, wie beispielsweise einen Infrarotkanal oder ein Satellitenfrequenzband, beinhalten. Die Topologie des Netzwerks 165 kann eine Bus-, Stern- oder Ringnetzwerktopologie beinhalten. Das Netzwerk 165 kann ein beliebiges Protokoll oder beliebige Protokolle verwendende Mobilfunknetze, die zur Kommunikation zwischen Mobilgeräten verwendet werden, beinhalten, darunter auch Advanced Mobile Phone Protocol („AMPS“), Time Division Multiple Access („TDMA“), Code-Division Multiple Access („CDMA“), Global System for Mobile Communication („GSM“), General Packet Radio Services („GPRS“) und Universal Mobile Telecommunications System („UMTS“). Verschiedene Arten von Daten können über verschiedene Protokolle übertragen werden oder es können gleiche Arten von Daten über verschiedene Protokolle übertragen werden.
-
Das Client-Computergerät 150, das Inhaltsanbieter-Computergerät 155 und das Dienstanbieter-Computergerät 160 können mindestens ein Logikgerät, wie z. B. ein Computergerät mit einem Prozessor, zur Kommunikation miteinander oder mit dem Datenverarbeitungssystem 105 über das Netzwerk 165 beinhalten. Das Client-Computergerät 150, das Inhaltsanbieter-Computergerät 155 und das Dienstanbieter-Computergerät 160 können jeweils mindestens einen Server, Prozessor oder Speicher oder eine Vielzahl von Rechenressourcen oder Servern, die sich in mindestens einem Rechenzentrum befinden, beinhalten. Das Client-Computergerät 150, das Inhaltsanbieter-Computergerät 155 und das Dienstanbieter-Computergerät 160 können jeweils mindestens ein Computergerät, wie z. B. einen Desktop-Computer, Laptop, Tablet, persönlichen digitalen Assistenten, Smartphone, tragbaren Computer, Server, Thin Client-Computer, virtuellen Server, oder ein anderes Computergerät beinhalten.
-
Das Client-Computergerät 150 kann mindestens einen Sensor 151, mindestens einen Wandler 152, mindestens einen Audiotreiber 153 und mindestens einen Lautsprecher 154 beinhalten. Der Sensor 151 kann ein Mikrofon oder einen Audioeingabesensor beinhalten. Der Wandler 152 kann die Audioeingabe in ein elektronisches Signal umwandeln. Der Audiotreiber 153 kann ein Script oder Programm beinhalten, das durch einen oder mehrere Prozessoren des Client-Computergeräts 150 ausgeführt wird, um den Sensor 151, den Wandler 152, den Audiotreiber 153 oder andere Komponenten des Client-Computergeräts 150 zwecks Verarbeitens der Audioeingaben oder Bereitstellens der Audioausgaben zu steuern. Der Lautsprecher 154 kann das Audioausgabesignal übertragen oder wiedergeben.
-
Das Client-Computergerät 150 kann mit einem Endbenutzer verknüpft sein, der Sprachabfragen als Audioeingabe in das Client-Computergerät 150 (über den Sensor 151) eingibt, und eine Audioausgabe in Form einer computergenerierten Stimme empfängt, die von dem Datenverarbeitungssystem 105 (oder dem Inhaltsanbieter-Computergerät 155 oder dem Dienstanbieter-Computergerät 160) für das Client-Computergerät 150 bereitgestellt und von einem Lautsprecher 154 ausgegeben werden kann. Die computergenerierte Stimme kann Aufzeichnungen von einer realen Person oder einer computergenerierten Sprache beinhalten.
-
Das Inhaltsanbieter-Computergerät 155 kann audiobasierte Inhaltselemente zwecks Anzeigens durch das Client-Computergerät 150 als ein Audioausgabeinhaltselement bereitstellen. Das Inhaltselement kann ein Angebot für eine Ware oder eine Dienstleistung beinhalten, wie beispielsweise eine sprachbasierte Nachricht, die besagt: „Möchten Sie, dass ich für Sie ein Taxi bestelle?“ Beispielsweise kann das Inhaltsanbieter-Computergerät 155 einen Speicher zum Speichern einer Reihe von Audioinhaltselementen, die in Reaktion auf eine sprachbasierte Abfrage bereitgestellt werden können, beinhalten. Das Inhaltsanbieter-Computergerät 155 kann ebenfalls audiobasierte Inhaltselemente (oder andere Inhaltselemente) an das Datenverarbeitungssystem 105 bereitstellen, wo diese im Datenbehälter 145 gespeichert werden können. Das Datenverarbeitungssystem 105 kann die Audioinhaltselemente auswählen und die Audioinhaltselemente an das Client-Computergerät 150 bereitstellen (oder das Inhaltsanbieter-Computergerät 155 anweisen, diese bereitzustellen). Die audiobasierten Inhaltselemente können ausschließlich Audio sein oder mit Text-, Bild- oder Videodaten kombiniert sein.
-
Das Datenverarbeitungssystem 105 kann außerdem Umwandlungen durchführen, z. B. Aufgaben in Reaktion auf das Eingabeaudiosignal erledigen. Das Datenverarbeitungssystem 105 kann beispielsweise über die Direktaktions-API 135 ein Taxi anfordern, in Reaktion auf eine Anfrage, dies zu tun, die vom Client-Computergerät 150 empfangen wird. Das Datenverarbeitungssystem 105 kann außerdem eine Umwandlung durchführen, indem es dem Dienstanbieter-Computergerät 160 Daten (z. B. eine gepoolte Datenstruktur) bereitstellt, sodass das Dienstanbieter-Computergerät eine Aufgabe erledigen kann, indem es zum Beispiel ein Taxi anfordert, in Reaktion auf eine Anfrage dies zu tun, die durch das Datenverarbeitungssystem 105 vom Client-Computergerät 150 empfangen wurde. Das Datenverarbeitungssystem 105 kann außerdem Umwandlungsinformationen, die z. B. angeben, dass eine Aufgabe oder Aktion erledigt wurde, von den Client-Computergeräten 150, von den Inhaltsanbieter-Computergeräten 155 oder von den Dienstanbieter-Computergeräten 160 empfangen.
-
Das Dienstanbieter-Computergerät 160 kann mindestens eine Prozessorkomponente für natürliche Sprache (NLP) 161 des Dienstanbieters und mindestens eine Dienstanbieterschnittstelle 162 beinhalten. Die Dienstanbieter-NLP-Komponente 161 (oder andere Komponenten, wie z. B. eine Direktaktions-API des Dienstanbieter-Computergeräts 160) kann das Client-Computergerät 150 (über das Datenverarbeitungssystem 105 oder durch Umgehen des Datenverarbeitungssystems 105) ansteuern, um eine hin und her gehende sprach- oder audiobasierte Konversation in Echtzeit (z. B. eine Sitzung) zwischen dem Client-Computergerät 150 und dem Dienstanbieter-Computergerät 160 zu erzeugen. Die Dienstanbieterschnittstelle 162 kann beispielsweise Datennachrichten empfangen oder diese an die Direktaktions-API 135 des Datenverarbeitungssystems 105 bereitstellen. Das Dienstanbieter-Computergerät 160 und das Inhaltsanbieter-Computergerät 155 können mit der gleichen Entität verknüpft sein. Beispielsweise kann das Dienstanbieter-Computergerät 155 Inhalte für einen Fahrgemeinschaftsdienst erzeugen, speichern oder bereitstellen, und das Dienstanbieter-Computergerät 160 kann eine Sitzung mit dem Client-Computergerät 150 herstellen, um die Bereitstellung eines Taxis oder Autos des Fahrgemeinschaftsdienstes zu veranlassen, den Endbenutzer des Client-Computers 150 abzuholen. Das Datenverarbeitungssystem 105 kann über die Direktaktions-API 135, die NLP-Komponente 110 oder andere Komponenten zudem die Sitzung mit dem Client-Computergerät herstellen, einschließlich oder unter Umgehung des Dienstanbieter-Computergeräts 160, um z. B. die Bereitstellung eines Taxis oder Autos des Fahrgemeinschaftsdienstes zu veranlassen.
-
Der Datenbehälter 145 kann eine oder mehrere lokale oder verteilte Datenbanken sowie ein Datenbankverwaltungssystem beinhalten. Der Datenbehälter 145 kann Computerdatenspeicher oder Arbeitsspeicher beinhalten und kann einen oder mehrere Parameter 146, eine oder mehrere Richtlinien 147, Interaktionsmodi 148 und Vorlagen 149 neben anderen Daten speichern. Die Parameter 146, Richtlinien 147 und Vorlagen 149 können Informationen, wie z. B. Regeln über eine sprachbasierte Sitzung zwischen dem Client-Computergerät 150 und dem Datenverarbeitungssystem 105 (oder dem Dienstanbieter-Computergerät 160) beinhalten. Die Inhaltsdaten 148 können Inhaltselemente zur Audioausgabe oder verknüpfte Metadaten sowie eingegebene Audionachrichten, die Teil von einer oder mehreren Kommunikationssitzungen mit dem Client-Computergerät 150 sein können, beinhalten.
-
Das System 100 kann die Verarbeitung von sprachaktivierten Threads (die z. B. eine oder mehrere Aktionen angeben) in einer auf sprachaktivierten, Datenpaketen (oder einem anderen Protokoll) basierenden Computernetzwerkumgebung optimieren. Beispielsweise kann das Datenverarbeitungssystem 105 einen sprachaktivierten Assistentendienst, ein Sprachbefehlsgerät, einen intelligenten persönlichen Assistenten, einen Wissensnavigator, eine Ereignisplanung oder ein anderes Assistentenprogramm beinhalten oder Teil davon sein. Das Datenverarbeitungssystem 105 kann eine oder mehrere Instanzen der Audioausgabe für die Anzeige von dem Client-Computergerät 150 bereitstellen, um Aufgaben im Zusammenhang mit diesem Eingabeaudiosignal zu erfüllen. Zu den Aufgaben kann z. B. die Kommunikation mit dem Dienstanbieter-Computergerät 160 oder anderen Drittanbieter-Computergeräten gehören, um Abendessen zu reservieren oder Kinokarten zu kaufen. Zum Beispiel kann ein Endbenutzer ein Eingabeaudiosignal in das Client-Computergerät 150 wie folgt eingeben: „OK, ich würde heute Abend gerne aus essen und dann ins Kino gehen.“
-
Das Datenverarbeitungssystem 105 kann eine Anwendung, ein Script oder ein Programm beinhalten, die/das auf dem Client-Computergerät 150 installiert ist, wie beispielsweise eine App eines sprachaktivierten Assistentensystems, um Eingabeaudiosignale an die Schnittstelle 115 des Datenverarbeitungssystems 105 zu kommunizieren, und um Komponenten des Client-Computergeräts anzusteuern, um Ausgabeaudiosignale wiederzugeben. Das Datenverarbeitungssystem 105 kann Datenpakete oder ein anderes Signal empfangen, das ein Audioeingabesignal beinhaltet oder identifiziert. Beispielsweise kann das Datenverarbeitungssystem 105 die NLP-Komponente 110 ausführen oder ausführen lassen, um das Audiosignal zu empfangen.
-
Das Audioeingabesignal kann durch den Sensor 151 (z. B. ein Mikrofon) von dem Client-Computergerät erkannt werden. Über den Wandler 152, den Audiotreiber 153 oder andere Komponenten kann das Client-Computergerät 150 das Audioeingabesignal an das Datenverarbeitungssystem 105 (z. B. über das Netzwerk 165) bereitstellen, wo es (z. B. durch die Schnittstelle 115) empfangen werden kann, und an die NLP-Komponente 110 bereitgestellt, oder in dem Datenbehälter 145 als Inhaltsdaten 148 gespeichert werden kann.
-
Die NLP-Komponente 110 kann das Eingabeaudiosignal erhalten. Aus dem Eingabeaudiosignal kann die NLP-Komponente 110 mindestens eine Anfrage oder mindestens ein der Anfrage entsprechendes Auslöserschlüsselwort identifizieren. Die Anfrage kann Absicht oder Gegenstand des Eingabeaudiosignals anzeigen. Das Auslösersschlüsselwort kann eine Aktionsart anzeigen, die voraussichtlich vorzunehmen ist. Die NLP-Komponente 110 kann beispielsweise das Eingabeaudiosignal parsen, um mindestens eine Anfrage zu identifizieren, am Abend aus essen und ins Kino zu gehen. Das Auslöserschlüsselwort kann mindestens ein Wort, eine Phrase, einen Wortstamm oder ein Wortteil oder eine Ableitung beinhalten, das bzw. die eine vorzunehmende Aktion anzeigen. Das Auslöserschlüsselwort „gehen“ oder „gehen zu“ von dem Eingabeaudiosignal kann beispielsweise eine Notwendigkeit für einen Transport anzeigen. Bei diesem Beispiel drückt das Eingabeaudiosignal (oder die identifizierte Anfrage) nicht direkt eine Absicht für einen Transport aus, das Auslöserschlüsselwort zeigt jedoch an, dass ein Transport eine Zusatz- oder Teilaktion für mindestens eine andere Aktion ist, die durch die Anfrage angezeigt wird.
-
Die NLP-Komponente 110 kann das Audioeingabesignal durch Vergleichen des Eingabesignals mit einer gespeicherten repräsentativen Reihe von Audiowellenformen (z. B. im Datenbehälter 145) und Auswählen der größten Übereinstimmungen in erkannten Text umwandeln. Die repräsentativen Wellenformen werden über eine große Menge von Benutzern erzeugt und können mit Sprachproben erweitert werden. Nachdem das Audiosignal in erkannten Text umgewandelt wurde, kann die NLP-Komponente 110 den Text mit Worten in Übereinstimmung bringen, die beispielsweise via Training über Benutzer oder durch manuelle Beschreibung mit Aktionen verknüpft sind, die das Datenverarbeitungssystem 105 bereitstellen kann.
-
Die Direktaktions-API 135 kann Programme oder Scripts ausführen, z. B. aus der NLP-Komponente 110, der Pooling-Komponente 120 oder der Inhaltsauswahlelementkomponente 125, um Inhaltselemente für eine oder mehrere dieser Aktionen zu identifizieren. Die Direktaktions-API 135 kann eine bestimmte Aktion ausführen, um die von dem Datenverarbeitungssystem 105 bestimmte Absicht des Endbenutzers zu erfüllen. Abhängig von der in ihren Eingaben spezifizierten Aktion, kann die Direktaktions-API 135 einen Code oder ein Dialogscript ausführen, der/das die zur Erfüllung einer Benutzeranfrage erforderlichen Parameter identifiziert. Dieser Code kann zusätzliche Informationen, beispielsweise in dem Datenbehälter 145, suchen, wie z. B. den Namen eines Hausautomatisierungsdienstes, oder kann Audioausgaben zum Wiedergeben auf dem Client-Computergerät 150 bereitstellen, um dem Endbenutzer Fragen, wie beispielsweise nach dem beabsichtigten Ziel eines angeforderten Taxis, zu stellen. Die Direktaktions-API 135 kann erforderliche Parameter bestimmen und die Informationen in eine Aktions-Datenstruktur zusammenfassen, welche sodann an eine andere Komponente, wie beispielsweise die Inhaltsauswahlelementkomponente 125 oder das Dienstanbieter-Computergerät 160, gesendet werden kann, um erfüllt zu werden. Die Direktaktions-API 135 kann auf Hardware des Datenverarbeitungssystems 105 ausgeführt werden oder diese beinhalten, wie z. B. ein oder mehrere Prozessoren von ein oder mehreren Servern in ein oder mehreren Rechenzentren.
-
Die Direktaktions-API 135 des Datenverarbeitungssystems 105 kann, basierend auf der Anfrage oder dem Auslöserschlüsselwort, Datenstrukturen für die Aktionen des Threads erzeugen. Die Aktionsdatenstrukturen können in Reaktion auf die erzeugte Anfrage vorhanden sein. Die Aktionsdatenstruktur kann in den Nachrichten enthalten sein, die an das Dienstanbieter-Computergerät 160 übertragen oder von diesem empfangen werden, z. B. als Teil von oder verknüpft mit gepoolten Datenstrukturen. Basierend auf der Anfrage, die von der NLP-Komponente 110 analysiert wird, kann die Direktaktions-API 135 ermitteln, an welche von mehreren Dienstanbieter-Computergeräten 160 die Nachricht übertragen werden soll. Wenn beispielsweise ein Eingabeaudiosignal „Bestellen Sie ein Taxi“ beinhaltet, kann die NLP-Komponente 110 das Auslöserwort „Bestellen“ und die Anfrage eines Taxis identifizieren. Die Direktaktions-API 135 kann die Anfrage in eine Aktionsdatenstruktur packen und als Nachricht an ein Dienstanbieter-Computergerät 160 eines Taxidienstes übertragen. Die Nachricht kann auch an die Inhaltsauswahlelementkomponente 125 weitergeleitet werden. Die Aktionsdatenstruktur kann Informationen zum Abschließen der Anfrage beinhalten. In diesem Beispiel können die Informationen einen Abholort und einen Zielort beinhalten. Die Direktaktions-API 135 kann eine Vorlage 149 aus dem Behälter 145 abrufen, um zu bestimmen, welche Felder in die Aktionsdatenstruktur aufgenommen werden sollen. Die Direktaktions-API 135 kann Inhalte aus dem Behälter 145 abrufen, um Informationen für die Felder der Datenstruktur zu erhalten. Die Direktaktions-API 135 kann die Felder der Vorlage mit diesen Informationen füllen, um die Datenstruktur zu generieren. Die Direktaktions-API 135 kann die Felder auch mit Daten aus dem Eingabeaudiosignal füllen. Die Vorlagen 149 können für Kategorien von Dienstanbietern standardisiert oder für bestimmte Dienstanbieter standardisiert werden. Beispielsweise können Fahrgemeinschaftsdienstanbieter die folgende standardisierte Vorlage 149 verwenden, um die Datenstruktur zu erzeugen: {client_device_identifier; authentication_credentials; pick_up_location; destination_location; no_passengers; service_level}.
-
Die NLP-Komponente 110 kann das Eingabeaudiosignal als Datenpaket oder andere protokollbasierte Übertragungen vom Client-Computergerät 150 empfangen. Das Eingabeaudiosignal könnte beispielsweise eine Spracheingabe in den Sensor 152 (z. B. ein Mikrofon) „OK, bring mich nach Hause“ sein. Aus diesem Eingabeaudiosignal kann die NLP-Komponente 110 mindestens eine Anfrage oder mindestens ein Auslöserschlüsselwort identifizieren. Die Anfrage kann den Gegenstand des Eingabeaudiosignals, z. B. Reise, angeben. Ein Auslöserschlüsselwort kann eine Aktion angeben, z. B. kann „bringen“ oder „nach Hause“ die Notwendigkeit eines Fahrgemeinschaftsdienstes zu einem Ziel angeben, das mit einem Heimatziel des Client-Computergeräts 150 verknüpft ist, von dem das Eingabeaudiosignal stammt.
-
Die Direktaktions-API 135 kann Anfragen oder Auslöserschlüsselwörter erhalten, die dem Eingabeaudiosignal entsprechen, und kann aus diesen Informationen eine Aktionsdatenstruktur erzeugen. Die Aktionsdatenstruktur kann Informationen beinhalten, die zum Beispiel für die Kommunikation mit dem Dienstanbieter-Computergerät verwendet werden, um ein Auto von einem Fahrgemeinschaftsdienst zu reservieren, das den Endbenutzer (von dem das Eingabeaudiosignal in das Client-Computergerät stammt) zu einem Ziel bringt. Die Aktionsdatenstruktur kann, mit Zustimmung des Endbenutzers, Parameter, wie z. B. das Identifizieren des Standorts des Client-Computergeräts 150 beinhalten, um das Abholen durch den Fahrgemeinschaftsdienst zu vereinbaren, sowie Informationen, die den Zielort identifizieren. Die Parameter können von Komponenten des Datenverarbeitungssystems 105 im Datenbehälter gespeichert und von diesem abgerufen werden (z. B. Parameter 146). Die Direktaktions-API 135 kann außerdem die Aktionsdatenstruktur so erzeugen, dass sie Parameter, wie z. B. Kontoinformationen eines mit dem Fahrgemeinschaftsdienst verbundenen Kontos, beinhaltet oder angibt. Die Direktaktions-API 135 kann beispielsweise, mit Zustimmung des Endbenutzers, diese Kontoinformationen (oder andere Parameter) von einer App oder einem Programm für den Fahrgemeinschaftsdienst, die/das auf dem Client-Computergerät 150 installiert ist, erhalten. Die Parameter können Aktionen angeben oder definieren, die mit Aktionsdatenstrukturen verknüpft sind. Die Direktaktions-API 135 kann auf dem Datenverarbeitungssystem 105 vom Client-Computergerät 150 entfernt installiert sein. Die Direktaktions-API 135 kann eine direkte Umwandlung durchführen, z. B. einen Auftrag bei dem Dienstanbieter-Computergerät 160 für die Fahrt mit dem Fahrgemeinschaftsdienst aufgeben, oder indirekt durch Bereitstellen der Aktionsdatenstruktur für das Dienstanbieter-Computergerät 160, damit das Dienstanbieter-Computergerät 160 die Aktionsdatenstruktur verarbeitet, um die Autoreservierungsaktion abzuschließen.
-
Die NLP-Komponente 110 kann mehrere Eingabeaudiosignale vom selben oder von verschiedenen Client-Computergeräten 150 erhalten. Für jedes Eingabeaudiosignal kann die NLP-Komponente entsprechende Anfragen oder entsprechende Auslöserschlüsselwörter identifizieren oder erstellen. Die Direktaktions-API 135 kann, basierend auf den jeweiligen Anfragen oder Auslöserschlüsselwörtern, Aktionsdatenstrukturen erzeugen, die den jeweiligen Eingabeaudiosignalen entsprechen. Die NLP-Komponente 110 kann beispielsweise ein erstes Eingabeaudiosignal empfangen, das die Spracheingabe „OK, bring mich nach Hause“ angibt. In Reaktion kann die Direktaktions-API 135 eine erste Aktionsdatenstruktur erzeugen, die zum Reservieren eines Autos von einem Fahrgemeinschaftsdienst für den Endbenutzer verwendet werden kann, der mit dem ersten Eingabeaudiosignal verknüpft ist. Die NLP-Komponente 110 kann außerdem ein zweites Eingabeaudiosignal empfangen, das zum Beispiel „OK, kann ich bitte ein Taxi bekommen“ angibt. In Reaktion kann die Direktaktions-API 135 eine zweite Aktionsdatenstruktur für einen Fahrgemeinschaftsdienst für den Endbenutzer erzeugen, der mit dem zweiten Eingabeaudiosignal verknüpft ist.
-
Das erste und das zweite Audioeingabesignal können vom selben Client-Computergerät 150 oder von verschiedenen Client-Computergeräten 150 stammen und können mit demselben oder verschiedenen Endbenutzern verknüpft sein. Die NLP-Komponente 110 kann ein erstes Eingabeaudiosignal von einem ersten Client-Computergerät 150 empfangen und kann ein zweites Eingabeaudiosignal von einem zweiten Client-Computergerät 150 empfangen, die mit verschiedenen Endbenutzern verknüpft sein können. Aus diesen Informationen, die Metadaten oder Header-Informationen paketbasierter Übertragungen neben ergänzenden Informationen beinhalten können, die von anderen Quellen als dem Eingabeaudiosignal erhalten werden können, wie z. B. von Inhaltsdaten 148 des Datenbehälters 145, kann die Direktaktions-API 135 eine erste Datenstruktur für das erste Eingabeaudiosignal und eine zweite Datenstruktur für das zweite Eingabeaudiosignal erzeugen. Die ersten und zweiten Datenstrukturen können beide Anfragen angeben, ein Auto von einem Fahrgemeinschaftsdienst zu reservieren. Jede Aktionsdatenstruktur kann Parameter beinhalten, die ihre eigenen Ursprungs- und Zielorte angeben, oder kann verschiedene Konten, die verschiedene Endbenutzer mit dem Fahrgemeinschaftsdienst haben (oder andere Parameter) angeben. Die Aktionsdatenstruktur kann außerdem einen oder mehrere Parameter beinhalten, die angeben, dass ein Client-Computergerät 150 (oder der verbundene Endbenutzer) kein Konto mit dem Fahrgemeinschaftsdienst oder einer anderen Entität hat.
-
Basierend beispielsweise auf Parametern mehrerer Aktionsdatenstrukturen kann die Pooling-Komponente 120 Überlappung oder Ähnlichkeiten zwischen zwei oder mehreren verschiedenen Aktionsdatenstrukturen identifizieren, die von verschiedenen Eingabeaudiosignalen erzeugt wurden. Einer oder mehrere Prozessoren des Datenverarbeitungssystems 105 können beispielsweise die Pooling-Komponente 120 entfernt vom Client-Computergerät 105 und entfernt vom Dienstanbieter-Computergerät 160 beinhalten oder ausführen, um einen überlappenden oder gemeinsamen Gegenstand von zwei oder mehr verschiedenen Aktionsdatenstrukturen zu identifizieren. Die Pooling-Komponente 120 kann eine heuristische Technik anwenden, um mit einem Schwellenwertgrad der Gewissheit gemeinsame Muster unter den Parametern der verschiedenen Aktionsdatenstrukturen zu identifizieren.
-
Der Grad der Überlappung kann eine Ähnlichkeitsmetrik sein oder beinhalten, die ein gemeinsames Merkmal mehrerer Aktionsdatenstrukturen angibt. Die Pooling-Komponente 120 kann eine Ähnlichkeitsmetrik ermitteln, die mehrere Aktionsdatenstrukturen in Bezug auf Zeitdaten, Standortdaten, Dienstanbieter-Entitätsdaten, Gegenstandsdaten oder geografische Daten angibt. Die Pooling-Komponente 120 kann beispielsweise ermitteln, dass mehrere Aktionsdatenstrukturen Anfragen für Transport von demselben Transportunternehmen oder Reservierungen für verschiedene Zeiten oder Abende für dasselbe Restaurant, Anfragen zur Anfahrt zu oder von einem gemeinsamen Ziel oder geografischen Bereich oder Anfragen zum Bestellen eines oder mehrerer Produkte von einer Entität beinhalten. Die Pooling-Komponente 120 kann die Ähnlichkeitsmetriken oder gemeinsamen Merkmale als mindestens einen Pooling-Parameter identifizieren, woraufhin die Pooling-Komponente die gestapelte oder gepoolte Datenstruktur basierend auf dem Pooling-Parameter erstellen kann. Die Überlappung kann, muss jedoch nicht, mindestens teilweise identischen Code oder teilweise identische Aktionsdatenstrukturen beinhalten. Die Pooling-Komponente 120 kann beispielsweise Überlappung basierend auf Anfragen von Dienstleistungen von derselben Entität oder auf Basis einer Gemeinsamkeit unter Parametern der Aktionsdatenstrukturen wie z. B. ähnliche, jedoch nicht identische, Zeit- oder Standortdaten identifizieren.
-
Parameter der ersten Datenstruktur können beispielsweise eine Anfrage für einen Fahrgemeinschaftsdienst von einem Abholort „Punkt A“ zu einem Ziel „Punkt B“ angeben. Parameter der zweiten Datenstruktur können eine andere Anfrage für einen Fahrgemeinschaftsdienst von einem Abholort „Punkt C“ zu einem Ziel „Punkt D“ angeben. Durch Anwenden einer heuristischen oder anderen statistischen Technik kann das Datenverarbeitungssystem 105 oder eine Komponente davon (z. B. die Pooling-Komponente 120) ermitteln, dass sich Abholort „Punkt C“ zwischen oder innerhalb einer Schwellenwertentfernung (z. B. 1 Meile) von einer Route zwischen „Punkt A“ und „Punkt B“ befindet. Die Pooling-Komponente 120 kann außerdem ermitteln, dass sich „Punkt D“ innerhalb einer Schwellenwertentfernung (z. B. 5 Meilen) vom Ziel „Punkt B“ befindet. Auch wenn die Parameter der verschiedenen Aktionsdatenstrukturen (z. B. Parameter, die verschiedene Punkte A-D angeben oder andere Informationen, wie z. B. verschiedene Konten, die mit verschiedenen Client-Computergeräten 150 verknüpft sind, kann die Pooling-Komponente 120 ermitteln, dass ausreichende Überlappung oder Gemeinsamkeit zwischen den Parametern, z. B. aufgrund von Routenähnlichkeiten bestehen, die Schwellenwertmetriken erfüllen. Die Pooling-Komponente 120 kann außerdem ermitteln, dass die zwei Aktionsdatenstrukturen sich überlappen, da jeweilige Parameter angeben, dass sie mit jeweiligen Eingabeaudiosignalen verknüpft sind, die innerhalb eines Schwellenwertzeitraums, wie z. B. 1 Minute, einer Stunde oder einem anderen Zeitraum voneinander erfolgt sind, oder da ihre jeweiligen Parameter angeben, dass sie beide eine Ware oder eine Dienstleistung von derselben Entität anfordern.
-
Die Pooling-Komponente 120 kann, basierend auf der Analyse von mindestens zwei Aktionsdatenstrukturen, mindestens einen Pooling-Parameter erzeugen. Der Pooling-Parameter kann einen gemeinsamen Gegenstand, gemeinsame Merkmale, Entitäten oder Parameter unter zwei oder mehr Datenstrukturen angeben. Der Pooling-Parameter kann beispielsweise angeben, dass die Anfragen für Fahrgemeinschaftsdienst, die durch Parameter der ersten und zweiten Aktionsdatenstrukturen angegeben werden, ähnliche Orte oder ähnliche Routen zwischen jeweiligen Quellen und Zielen teilen. Die Direktaktions-API 135 (oder das Dienstanbieter-Computergerät 160) kann diese Informationen verwenden, um die Aktionen, die mit den Aktionsdatenstrukturen verknüpft sind oder durch diese angegeben werden, wie z. B. Autodienstfahrten zwischen jeweiligen Quellen und Zielen, bereitzustellen.
-
Wie unter Bezugnahme auf 1 und 2 ersichtlich, kann unter anderem, die Pooling-Komponente 120 basierend auf dem ermittelten Grad der Überlappung mindestens eine gepoolte Datenstruktur 200 erstellen. Die gepoolte Datenstruktur kann eine paketbasierte Architektur (oder ein anderes Format) sowie einen Header 205 beinhalten. Der Header 205 kann ergänzende Daten beinhalten, die das Datenverarbeitungssystem 105 identifizieren, Quell- oder Zieladressinformationen, geltende Protokollinformationen, IP-Adressen, Frame-Synchronisierungsdaten, Größendaten, Auflösungsdaten oder Metadaten, die mit Aktionsdatenstrukturen verknüpft sind. Die Nutzlast oder der Korpus der gepoolten Datenstruktur 200 kann mindestens einen Pooling-Parameter 210 oder andere Informationen, wie z. B. mindestens einen ersten Parameter 215 oder mindestens einen zweiten Parameter 220, beinhalten. Der erste Parameter 215 kann einen Parameter der ersten Aktionsdatenstruktur 225 beinhalten und die zweiten Parameter 220 können einen Parameter der zweiten Aktionsdatenstruktur 230 beinhalten. Der erste Parameter 215, der zweite Parameter 220, die erste Aktionsdatenstruktur 225 und die zweite Aktionsdatenstruktur 230 können, müssen jedoch nicht, in der gepoolten Datenstruktur 200 enthalten sein. Der Korpus der gepoolten Datenstruktur 200 kann beispielsweise nur den ersten Pooling-Parameter 210 beinhalten (und nicht den ersten Parameter 215, den zweiten Parameter 220, die erste Aktionsdatenstruktur 225 oder die zweite Aktionsdatenstruktur 230 beinhalten) oder der Korpus der gepoolten Datenstruktur 200 kann den Pooling-Parameter 210 sowie eine oder mehrere aus dem ersten Parameter 215, dem zweiten Parameter 220, der ersten Aktionsdatenstruktur 225 oder der zweiten Aktionsdatenstruktur 230 beinhalten. Die gepoolte Datenstruktur 200 kann ein oder mehrere individuelle Pakete beinhalten, die getrennt nacheinander oder parallel als Teil von einer oder mehreren Datenübertragungen zwischen dem Datenverarbeitungssystem 105 und dem Dienstanbieter-Computergerät 160 übertragen werden. Der Pooling-Parameter oder Informationen in Header 205 können angeben, dass die getrennten Übertragungen oder getrennten Datenpakete mit derselben Stapelübertragung, z. B. derselben gesamten gepoolten Datenstruktur 200, verknüpft sind.
-
Wie unter Bezugnahme auf 3 ersichtlich, kann unter anderem, das Datenverarbeitungssystem 105 von einem ersten Client-Computergerät 150 das erste Eingabeaudiosignal 305 (z. B. „OK, bring mich nach Hause“) empfangen. Das Datenverarbeitungssystem 105 kann außerdem, von einem zweiten Client-Computergerät 150, das zweite Eingabeaudiosignal 310 (z. B. „OK, kann ich bitte ein Taxi bekommen“) empfangen. Das Datenverarbeitungssystem 105 kann jeweilige Parameter ermitteln, die Aktionen definieren, die mit dem ersten Eingabeaudiosignal 305 und dem zweiten Eingabeaudiosignal 305 verknüpft sind. Komponenten des Datenverarbeitungssystems 105, wie z. B. die Pooling-Komponente 120, können statistische oder heuristische Techniken auf Parameter anwenden, die mit dem ersten Eingabeaudiosignal 305 und dem zweiten Eingabeaudiosignal 310 verknüpft sind, um mindestens einen Pooling-Parameter zu erzeugen, der eine Gegenstandsüberlappung oder Gemeinsamkeit zwischen dem ersten Eingabeaudiosignal 305 und dem zweiten Eingabeaudiosignal 310 angibt. Der Pooling-Parameter kann beispielsweise angeben, dass das erste Eingabeaudiosignal 305 und das zweite Eingabeaudiosignal sich beide auf Anfragen beziehen, ein Auto von einem Fahrgemeinschaftsdienst zu mieten. Das Datenverarbeitungssystem 105 kann die Aktionsdatenstrukturen, die dem ersten Eingabeaudiosignal 305 und dem zweiten Eingabeaudiosignal 310 entsprechen, in Stapeln oder Pools zusammenfassen, um die gestapelte oder gepoolte Datenstruktur 200 zu erstellen. Das Datenverarbeitungssystem 105 kann die gepoolte Datenstruktur 200 zum Dienstanbieter-Computergerät 160 für die Verarbeitung durch das Dienstanbieter-Computergerät 160, mindestens ein Auto zu reservieren, in Reaktion auf die ersten und zweiten Eingabeaudiosignale 305, 310 übertragen oder anderweitig bereitstellen.
-
Die gepoolte Datenstruktur 200 kann Pooling-Parameter beinhalten, die aus mehr als zwei Aktionsdatenstrukturen (oder mehr als zwei Eingabeaudiosignalen) erzeugt wurden. Ein drittes Audioeingabesignal kann beispielsweise das Datenverarbeitungssystem 105 veranlassen, eine dritte Aktionsdatenstruktur für eine dritte Aktion zu erzeugen. Die Pooling-Komponente 120 kann mindestens einen Pooling-Parameter basierend auf Parametern der dritten Aktionsdatenstruktur identifizieren. In Reaktion auf diese Ermittlung kann die Pooling-Komponente 120 die gepoolte Datenstruktur 200 so ändern, dass sie eine Verbindung mit der dritten Datenstruktur beinhaltet oder angibt, oder kann eine neue gepoolte Datenstruktur beinhalten, die mit drei (oder mehr) Eingabeaudiosignalen verknüpft ist.
-
Durch Konsolidieren individueller Aktionsdatenstrukturen in mindestens eine gepoolte Datenstruktur 200 und Übertragen der gepoolte Datenstruktur(en) 200 zum Dienstanbieter-Computergerät 160 anstatt der individuellen Aktionsdatenstrukturen für jedes Eingabeaudiosignal 305, 310 kann das Datenverarbeitungssystem 105 die Anzahl, Größe oder Häufigkeit der Datenübertragungen über das Netzwerk 165 verringern. Dies kann Bandbreitennutzung von Netzwerkübertragungen sowie die Verarbeitungsleistungs- und Speicheranforderungen sowohl des Datenverarbeitungssystems 105 (z. B. Datenbehälter 145) als auch des Dienstanbieter-Computergeräts 160 verringern, die sonst für das Verarbeiten und Übertragen individueller Aktionsdatenstrukturen verwendet werden würden, die einen Grad der Redundanz oder Gegenstandsüberlappung in ihren Daten enthalten können.
-
Die gepoolte Datenstruktur 200 kann, muss jedoch nicht, eine einzelne Datenstruktur sein. Die gepoolte Datenstruktur kann mehrere individuelle Datenstrukturen beinhalten, die vom Datenverarbeitungssystem 105 mit oder ohne die Pooling-Parameter als Teil einer gestapelten oder regelmäßigen Übertragung an ein oder mehrere Dienstanbieter-Computergerät 160 übertragen werden, die von einer Entität, wie z. B. einem Fahrgemeinschaftsdienstanbieter, kontrolliert werden.
-
Das Datenverarbeitungssystem 105 und das Dienstanbieter-Computergerät 160 können verschiedenen Entitäten entsprechen. Das Datenverarbeitungssystem 105 (und Komponenten wie z. B. die Direktaktions-API 135) kann Teil eines sprachbasierten Assistentencomputersystems sein, das für das schnittstellenmäßige Verbinden mit Endbenutzern des Client-Computergeräts 150 gedacht ist, um Audioantworten auf Audioeingabesignale bereitzustellen. Die Audiosignalgeneratorkomponente 130 kann beispielsweise eine Audioantwort „Es gibt ein Taxi in 5 Minuten Entfernung. Möchten Sie es bestellen?“ auf das Audioeingabesignal „OK, bring mich nach Hause.“ erstellen. Die Sitzungshandhabungskomponente 140 kann eine Kommunikationssitzung über das Computernetzwerk 165 zwischen dem Datenverarbeitungssystem 105 und dem Client-Computergerät 150 herstellen, um diese Audioantwort bereitzustellen. Die Audioantwort kann den Audiotreiber 153 des Client-Computergeräts 150 veranlassen, den Lautsprecher 154 zu veranlassen, akustische Wellen auszugeben, um die Audioantwort für den Endbenutzer wiederzugeben.
-
Statt Teil des sprachbasierten Assistentencomputersystems zu sein, kann das Dienstanbieter-Computergerät 160 ein Computergerät der Fahrgemeinschafts- oder Taxidienst-Entität sein. Das Datenverarbeitungssystem 105, und nicht das Dienstanbieter-Computergerät 160, verarbeitet die Eingabeaudiosignale 305, 310, um die gepoolte Datenstruktur 200 zu erzeugen. Somit entsprechen in diesem Beispiel die Audioeingabesignale 305, 310 Aktionen für das Dienstanbieter-Computergerät 160, z. B. Bestellen eines Autos von der Fahrgemeinschafts-Entität, die das Dienstanbieter-Computergerät 160 kontrolliert. Das Datenverarbeitungssystem 105 kann als zwischengeschaltete Vorrichtung oder zwischengeschaltetes Gerät fungieren, das Eingabeaudiosignale, die Anfragen für eine Aktion durch das Dienstanbieter-Computergerät 160 beinhalten, per Hooking erhalten, abfangen oder anderweitig empfangen kann. Das Datenverarbeitungssystem 105 kann diese Anfragen in mindestens eine gepoolte Datenstruktur 200 stapeln oder konsolidieren, die dem Dienstanbieter-Computergerät 160 bereitgestellt wird. In diesem Beispiel empfängt das Dienstanbieter-Computergerät 160, statt Eingabeaudiosignale direkt von Client-Computergeräten 150 zu empfangen (z. B. durch Umgehung des Datenverarbeitungssystems 105), stattdessen eine gepoolte Datenstruktur 200 (z. B. eine gestapelte Übertragung konsolidierter Aktionsdatenstrukturen) vom zwischengeschalteten Datenverarbeitungssystem 105. In diesem Beispiel werden Anfragen von Client-Computergeräten 150 für Waren oder Dienstleistungen des Dienstanbieter-Computergeräts 160 über das Datenverarbeitungssystem 105 geroutet, wo sie in eine gepoolte Datenstruktur 200 konsolidiert werden können, die zum Dienstanbieter-Computergerät 160 übertragen werden kann.
-
In Reaktion auf das Empfangen der gepoolten Datenstruktur 200 kann das Dienstanbieter-Computergerät 160 mindestens einen Vorgang durchführen, der durch die gepoolte Datenstruktur 200 definiert oder angegeben wird. Der Vorgang kann einer oder mehreren der jeweiligen Aktionen der Aktionsdatenstrukturen der ersten oder zweiten Eingabeaudiosignale 305, 310 entsprechen. Die Vorgänge können beispielsweise das Reservieren eines Autos von einem Fahrgemeinschaftsdienst beinhalten. Das Dienstanbieter-Computergerät 160 kann Antworten für Client-Computergeräte 150 bereitstellen. Das Dienstanbieter-Computergerät 160 kann beispielsweise eine erste Antwort 315 für das erste Client-Computergerät 150 bereitstellen und eine zweite Antwort 320 für das zweite Client-Computergerät 150 bereitstellen. Die ersten und zweiten Antworten 315, 320 können das Datenverarbeitungssystem 105 während der Übertragung vom Dienstanbieter-Computergerät 160 zu den ersten und zweiten Client-Computergeräten 150 umgehen. Die Antworten 315 können Text-, Bild- oder andere Datennachrichten (einschl. Audio) beinhalten, die eine Umwandlungsaktion, wie z. B. eine Reservierung für ein Auto von einem Autodienst, bestätigen. Das Datenverarbeitungssystem 105 kann eine Angabe der Umwandlung (oder der Antworten 315, 320) über das Computernetzwerk 165 von dem Dienstanbieter-Computergerät 160 oder den Client-Computergeräten 150 empfangen. Das Datenverarbeitungssystem 105 kann außerdem die Antworten 315, 320 von dem/den Dienstanbieter-Computergerät(en) 160 empfangen.
-
Die Dienstanbieter-Entität, die einem oder mehreren Dienstanbieter-Computergeräten 160 entspricht, kann mehrere Vorgänge durchführen, um verschiedene Aktionen zu erledigen, die durch die gepoolte Datenstruktur 200 angegeben werden. Die Dienstanbieter-Entität kann beispielsweise Lebensmittellieferungen bereitstellen und einen Fahrgemeinschaftsdienst für Personentransport betreiben. Die gepoolte Datenstruktur 200 kann beide dieser Aktionen angeben, die durch eine einzige Dienstanbieter-Entität erledigt werden können, die ein oder mehrere Dienstanbieter-Computergeräte 160 kontrolliert. Die Dienstanbieter-Computergeräte 160 können außerdem Pooling-Richtliniendaten für das Datenverarbeitungssystem 105 bereitstellen. Die Direktaktions-API 135 kann beispielsweise Pooling-Richtliniendaten von Dienstanbieter-Computergeräten 160 empfangen. Die Pooling-Richtliniendaten können Richtlinienvorgaben bereitstellen, die durch die Pooling-Komponente 120 verwendet werden, um die gepoolte Datenstruktur 200 zu erzeugen. Die Pooling-Richtliniendaten können im Datenbehälter 145 (z. B. als Richtlinien 147) gespeichert sein. Die Pooling-Richtliniendaten können ein Format der gepoolten Datenstruktur, Vorlageninformationen (z. B. Vorlage 149) oder Informationsgrößendaten angeben, oder ungefähr wann, wie, wie häufig oder welche Informationen in der gepoolten Datenstruktur enthalten sein sollen. Die Pooling-Komponente 120 kann die gepoolte Datenstruktur 200 in Übereinstimmung mit den Pooling-Richtliniendaten erstellen.
-
In einigen Beispielen können die Antworten 315, 320 inhaltlich dieselbe Antwort beinhalten, die getrennt sowohl an das erste als auch das zweite Client-Computergerät 150 übertragen wird. Das Dienstanbieter-Computergerät 160 kann beispielsweise die ersten und zweiten Aktionen, die durch jeweilige Aktionsdatenstrukturen in der gepoolte Datenstruktur 200 angegeben werden, konsolidieren und kann ein einzelnes Auto bereitstellen, das nacheinander an Abholorten ankommt, die mit den ersten und zweiten Client-Computergeräten 150 verknüpft sind.
-
Die Antworten 315, 320 müssen jedoch nicht gepoolt sein. Die Antworten 315, 320 können sich voneinander unterscheiden oder individuelle Antworten für die erste Aktionsdatenstruktur 225 oder die zweite Aktionsdatenstruktur 230 (oder die ersten und zweiten Parameter 215, 220) der gepoolten Datenstruktur 200 sein. Das Dienstanbieter-Computergerät 160 kann beispielsweise die Antwort 315 mit Informationen über eine erste Fahrgemeinschafts-Reservierung für das erste Client-Computergerät 150 bereitstellen und kann die Antwort 320 mit Informationen über eine andere, zweite Fahrgemeinschafts-Reservierung für das zweite Client-Computergerät 150 bereitstellen.
-
Der von der Pooling-Komponente 120 erstellte und zum Erzeugen der gepoolten Datenstruktur 200 verwendete Pooling-Parameter kann außerdem Zeit-, Ziel- oder Ortsdaten beinhalten. Der Pooling-Parameter kann beispielsweise eine Vielzahl von Aktionsdatenstrukturen angeben, die jeweils Anfragen für Dienstleistungen von einer einzelnen Entität entsprechen, die mit dem Dienstanbieter-Computergerät verknüpft ist (z. B. Zielinformationen), wie z. B. Reservierungsanfragen für ein bestimmtes Restaurant, Bestellungen für eine Ware, die von der Entität hergestellt wird, oder Fahrgemeinschafts-Reservierungsanfragen von einem Fahrgemeinschaftsdienst. Der Pooling-Parameter kann außerdem eine Anzahl von Aktionsdatenstrukturen angeben, die innerhalb eines definierten Zeitraums erfolgen, wie z. B. innerhalb eines 2-Minuten-Intervalls, die jeweils einen Autodienst von derselben Fahrgemeinschafts-Entität anfordern. Der Pooling-Parameter kann Standortinformationen beinhalten, wie z. B. Standortinformationen, die einen definierten geografischen Bereich (z. B. ein Stadtviertel oder eine Nachbarschaft) angeben, von dem eine Vielzahl von Personen Eingabeaudiosignale bereitstellen, die eine Dienstleistung von derselben Entität anfordern, die mit dem Dienstanbieter-Computergerät 160 verknüpft ist. Aus dem Pooling-Parameter kann die Pooling-Komponente 120 die gepoolte Datenstruktur 200 erzeugen und diese dem Dienstanbieter-Computergerät 160 bereitstellen, das Vorgänge in Reaktion auf die gepoolte Datenstruktur durchführen kann, und verbundene Antworten 315, 320 für Client-Computergeräte 150 bereitstellen.
-
Die gepoolte Datenstruktur 200 kann ggf. nur Vorgänge für eine einzige Entität beinhalten, bei der es sich um eine andere Entität handelt als die Entität, die mit dem Datenverarbeitungssystem 105 verknüpft ist. Das Datenverarbeitungssystem 105 (oder Komponenten, wie z. B. die Pooling-Komponente 120) kann eine erste gepoolte Datenstruktur für ein oder mehrere erste Dienstanbieter-Computergeräte 160 bereitstellen, die durch eine erste Entität kontrolliert werden, und kann eine zweite gepoolte Datenstruktur für ein oder mehrere zweite Dienstanbieter-Computergeräte 160 erzeugen und bereitstellen, die durch eine andere, zweite Entität kontrolliert werden, die nicht mit der ersten Entität verbunden ist. Der erste gepoolte Datenstruktur kann beispielsweise mit konsolidierten Anfragen verbunden sein, Tickets für eine lokale Sportveranstaltung von einem Tickethändler zu kaufen, und die zweite gepoolte Datenstruktur kann mit Anfragen verbunden sein, Reisereservierungen für einen Strandurlaub in den Tropen von einem Reiseunternehmen vorzunehmen.
-
Die Inhaltsauswahlelementkomponente 125 kann Angaben mindestens einer Aktion der Aktionsdatenstrukturen der gepoolten Aktionsdatenstruktur 200 erhalten. Aus den von der Inhaltsauswahlelementkomponente 125 empfangenen Informationen, z. B. eine Angabe einer Aktion, kann die Inhaltsauswahlelementkomponente 125 mindestens ein Inhaltselement identifizieren. Das Inhaltselement kann in Reaktion auf die dritte Aktion sein oder mit dieser im Zusammenhang stehen. In Reaktion auf die einen Transportbedarf anzeigende dritte Aktion kann das Inhaltselement zum Beispiel eine Audionachricht beinhalten, die Dienstleistungen eines Fahrgemeinschafts-Unternehmens anbietet. Die Inhaltsauswahlelementkomponente 125 kann den Datenbehälter 145 abfragen, um das Inhaltselement, z. B. aus den Inhaltsdaten 148, auszuwählen oder anderweitig zu identifizieren. Die Inhaltsauswahlelementkomponente 125 kann außerdem das Inhaltselement von dem Inhaltsanbieter-Computergerät 155 auswählen. In Reaktion auf eine von dem Datenverarbeitungssystem 105 empfangene Abfrage kann das Inhaltsanbieter-Computergerät 155 zum Beispiel ein Inhaltselement an das Datenverarbeitungssystem 105 (oder einer Komponente dessen) zwecks letztendlicher Ausgabe durch das Client-Computergerät 150 bereitstellen. Das Inhaltselement kann mit einem Dienstanbieter verbunden sein, der mit der Aktionsdatenstruktur verknüpft ist, z. B. einem identifizierten Fahrgemeinschaftsdienst, oder einem anderen Dienst, wie z. B. einem Konkurrenz- oder Nebendienst.
-
Die Audiosignalgeneratorkomponente 130 kann ein Ausgabesignal erzeugen oder anderweitig erhalten, das das Inhaltselement beinhaltet. Beispielsweise kann das Datenverarbeitungssystem 105 die Audiosignalgeneratorkomponente ausführen, um ein dem Inhaltselement entsprechendes Ausgabesignal zu generieren oder zu erzeugen. Die Schnittstelle 115 des Datenverarbeitungssystems 105 kann ein oder mehrere Datenpakete mit dem Ausgabesignal über das Computernetzwerk 165 an das Client-Computergerät 150 übertragen. Die Schnittstelle 115 kann konzipiert, konfiguriert, aufgebaut oder betriebsfähig sein, Informationen beispielsweise unter Verwendung von Datenpaketen zu empfangen und zu übertragen. Die Schnittstelle 115 kann Informationen unter Verwendung eines oder mehrerer Protokolle, wie z. B. einem Netzwerkprotokoll, senden und empfangen. Die Schnittstelle 115 kann eine Hardwareschnittstelle, eine Softwareschnittstelle, eine drahtgebundene Schnittstelle oder eine drahtlose Schnittstelle beinhalten. Die Schnittstelle 115 kann das Übersetzen oder Formatieren von Daten von einem Format in ein anderes erleichtern. Die Schnittstelle 115 kann beispielsweise eine Anwendungsprogrammierschnittstelle beinhalten, die Definitionen zum Kommunizieren zwischen verschiedenen Komponenten, wie z. B. Softwarekomponenten des Systems 100, beinhaltet.
-
Das Datenverarbeitungssystem 105 kann das Audioausgabesignal (z. B. entsprechend dem Inhaltselement oder in Reaktion auf das Eingabeaudiosignal) von dem Datenbehälter 145 oder von der Audiosignalgeneratorkomponente 130 an das Client-Computergerät 150 bereitstellen. Das Datenverarbeitungssystem 105 kann auch über Datenpaketübertragungen das Inhaltsanbieter-Computergerät 155 oder das Dienstanbieter-Computergerät 160 anweisen, das Ausgabesignal an das Client-Computergerät 150 bereitzustellen. Das Ausgabesignal kann als ein oder mehrere Datenpakete (oder ein anderes Kommunikationsprotokoll) von dem Datenverarbeitungssystem 105 (oder einem anderen Datenverarbeitungsgerät) erhalten, erzeugt, umgewandelt oder an das Client-Computergerät 150 übertragen werden.
-
Die Inhaltsauswahlelementkomponente 125 kann das Inhaltselement als Teil eines Echtzeit-Inhaltsauswahlprozesses auswählen. Das Inhaltselement kann beispielsweise dem Client-Computergerät 150 zur Übertragung als Audioausgabe in gesprochener Weise in unmittelbarer Reaktion auf das Eingabeaudiosignal bereitgestellt werden. Der Echtzeit-Inhaltsauswahlprozess zwecks Identifizierens des Inhaltselements und Bereitstellens des Inhaltselements an das Client-Computergerät 150 kann innerhalb einer Minute oder weniger ab dem Zeitpunkt der Eingabe des Audiosignals erfolgen und als in Echtzeit erfolgend betrachtet werden.
-
Das dem Inhaltselement entsprechende Ausgabesignal, das z. B. von der Audiosignalgeneratorkomponente 130 erhalten oder generiert wird, die über die Schnittstelle 115 und das Computernetzwerk 165 an das Client-Computergerät 150 übertragen wird, kann dazu führen, dass das Client-Computergerät 150 den Audiotreiber 153 ausführt, um den Lautsprecher 154 anzusteuern und eine dem Ausgabesignal entsprechende akustische Welle zu erzeugen. Die akustische Welle kann Wörter des Inhaltselements für die dritte Aktion oder dem Inhaltselement für die dritte Aktion entsprechende Wörter beinhalten. Die akustische Welle kann vom Client-Computergerät 150 ausgegeben werden, z. B. als akustische Welle, die die Audioausgabe „Ihr Taxi wurde bestätigt“ oder „Sie können im Cafe um die Ecke auf Ihr Taxi warten“ beinhaltet.
-
Das Datenverarbeitungssystem 105 kann die Übertragung der gepoolten Datenstruktur an das Dienstanbieter-Computergerät 160 verhindern oder verzögern. Die Schnittstelle 115 oder ein Script, das über die Direktaktions-API 135 oder die Pooling-Komponente 120 ausgeführt wird, kann beispielsweise die Übertragung von Datenpaketen, die die gepoolte Datenstruktur beinhalten, bis zu einem auslösenden Ereignis verhindern. Das auslösende Ereignis kann den Ablauf eines bestimmten Zeitraums, von weniger als einer Stunde bis zu einem Zeitraum von Tagen, beinhalten. Das auslösende Ereignis kann außerdem auf der Verfügbarkeit von Bandbreite, Verarbeitung oder Speicher basieren. Das Dienstanbieter-Computergerät 160 kann beispielsweise vom Datenverarbeitungssystem die gepoolte Datenstruktur anfordern oder abfragen, die das Datenverarbeitungssystem 105 in Reaktion auf die Anforderung überträgt.
-
Das Datenverarbeitungssystem 105 kann auch die Übertragung der gepoolten Datenstruktur verzögern, um die Verarbeitungsauslastung zu optimieren. Beispielsweise kann das Datenverarbeitungssystem 105 die Übertragung von Inhaltselementen bis zu einer Zeitspanne verzögern, in der die Nutzung des Rechenzentrums außerhalb der Spitzenzeiten oder in Nicht-Spitzenzeiten erfolgt, was zu einer effizienteren Auslastung des Rechenzentrums führt, indem die Auslastung der Spitzenbandbreite, die Wärmeleistung oder der Kühlbedarf reduziert wird. Das Datenverarbeitungssystem 105 kann auch eine Umwandlung oder eine andere mit dem Inhaltselement verbundene Aktivität auslösen, wie z. B. die Bestellung eines Autodienstes, basierend auf Datenzentrum-Auslastungsraten oder Bandbreitenmetriken oder Anfragen des Netzwerks 165 oder eines Rechenzentrums, das das Datenverarbeitungssystem 105 beinhaltet. Dadurch können Netzwerkverkehr und Lastanforderungen verringert und Verarbeitungs- und Stromanforderungen gespart werden.
-
Das Datenverarbeitungssystem 105 kann eine Antwort auf das Inhaltselement, wie z. B. ein Angebot für einen Fahrgemeinschaftsdienst, die angibt „Möchten Sie vom Kino nach Hause fahren?“ empfangen. Die Antwort kann ein Eingabeaudiosignal, z. B. „Ja bitte“, beinhalten, das von dem Endbenutzer in das Client-Computergerät 150 eingegeben und von dem Datenverarbeitungssystem 105 empfangen wurde. Basierend auf dieser Antwort kann die Direktaktions-API 135 mit dem Dienstanbieter-Computergerät 160 (das mit dem Inhaltselement, wie z. B. einem Fahrgemeinschafts-Unternehmen, in Verbindung gebracht werden kann) kommunizieren, um ein Taxi oder ein Fahrgemeinschaftsfahrzeug für den Standort des Kinos zu dem Zeitpunkt zu bestellen, an dem der Kinofilm endet. Das Datenverarbeitungssystem 105 kann diese Standort- oder Zeitinformationen als Teil des Datenpakets (oder eines anderen Protokolls) erhalten, das auf der Datennachrichtenkommunikation mit dem Client-Computergerät 150, dem Datenbehälter 145 oder aus anderen Quellen, wie z. B. dem Dienstanbieter-Computergerät 160 oder dem Inhaltsanbieter-Computergerät 155, basiert. Die Bestätigung dieses Auftrags (oder eine andere Umwandlung) kann als Audiokommunikation von dem Datenverarbeitungssystem 105 zu dem Client-Computergerät 150 in Form eines Ausgabesignals von dem Datenverarbeitungssystem 105 erfolgen, das das Client-Computergerät 150 ansteuert, um Audioausgaben, wie z. B. „Bestens, ein Auto wird um 23 Uhr außerhalb des Kinos auf Sie warten“, wiederzugeben. Das Datenverarbeitungssystem 105 kann über die Direktaktions-API 135 mit dem Dienstanbieter-Computergerät 160 kommunizieren, um den Auftrag für das Auto zu bestätigen.
-
Das Datenverarbeitungssystem 105 kann die Antwort (z. B. „Ja bitte“) auf den Inhalt erhalten („Möchten Sie vom Kino nach Hause fahren?“) und eine paketbasierte Datennachricht an die Dienstanbieter-NLP-Komponente 161 (oder eine andere Komponente des Dienstanbieter-Computergeräts) routen. Diese paketbasierte Datennachricht kann dazu führen, dass das Dienstanbieter-Computergerät 160 eine Umwandlung vornimmt, z. B. um eine Reservierung für die Abholung eines Autos außerhalb des Kinos vorzunehmen. Das Datenverarbeitungssystem 105 kann eine Benachrichtigung der Umwandlung, z. B. vom Dienstanbieter-Computergerät 160, dem Inhaltsanbieter-Computergerät 155 oder dem Client-Computergerät 150, empfangen.
-
Basierend auf einer Antwort auf ein Inhaltselement für eine nachfolgende Aktion in dem Thread, wie z. B. die Antwort „Ja bitte“ auf das Inhaltselement „Möchten Sie vom Kino nach Hause fahren“, oder basierend auf den Aktionsdatenstrukturen, die die gepoolte Datenstruktur beinhalten, die eine Anfrage für eine Ware oder eine Dienstleistung direkt angeben kann, kann das Datenverarbeitungssystem 105 eine Umwandlung oder Aktion initiieren. Prozessoren des Datenverarbeitungssystems 105 können beispielsweise die Direktaktions-API 135 aufrufen, um Scripts auszuführen, die ein Auto von einem Fahrgemeinschaftsdienst bestellen. Die Direktaktions-API 135 kann Inhaltsdaten 148 (oder Parameter 146 oder Richtlinien 147) von dem Datenbehälter 145 sowie Daten empfangen, die mit Zustimmung des Endbenutzers von dem Client-Computergerät 150 empfangen werden, um Standort, Zeit, Benutzerkonten, logistische oder andere Informationen zu bestimmen, um ein Auto aus dem Fahrgemeinschaftsdienst zu reservieren. Unter Verwendung der Direktaktions-API 135 kann das Datenverarbeitungssystem 105 auch mit dem Dienstanbieter-Computergerät 160 kommunizieren, um die Umwandlung abzuschließen, indem es in diesem Beispiel die Reservierung für die Abholung für die Fahrgemeinschaft vornimmt. Die Direktaktions-API 135 kann die Umwandlung oder Aktivität initiieren, um eine Aktion zu erledigen, die mit der gepoolten Datenstruktur verbunden ist (z. B. eine Aktion, die durch einen oder mehrere Parameter einer Aktionsdatenstruktur verknüpft ist, die durch die gepoolte Datenstruktur angegeben werden).
-
4 stellt ein Verfahren 400 zum Verwalten sprachaktivierter Threads in einer auf sprachaktivierten Datenpaketen basierenden Computernetzwerkumgebung dar. Das Verfahren 400 kann mindestens ein erstes Audioeingabesignal empfangen (ACT 405). Die NLP-Komponente kann beispielsweise über die Schnittstelle 115 Datenpakete empfangen (ACT 405). Das Datenverarbeitungssystem 105 kann die NLP-Komponente 110 ausführen, starten oder aufrufen, um paket- oder andere protokollbasierte Übertragungen über das Netzwerk von einem ersten Client-Computergerät 150 zu empfangen. Die Datenpakete können ein von dem Sensor 151 eines ersten Client-Computergeräts 150 erkanntes Eingabeaudiosignal beinhalten oder diesem entsprechen, wie z. B. ein erster Endbenutzer, der in ein Client-Computergerät 150, z. B. ein Smartphone, spricht: „OK, bring mich nach Hause“. Das Verfahren 400 kann das Eingabeaudiosignal parsen, um mindestens eine erste Anfrage oder mindestens ein erstes Auslöserschlüsselwort von dem Eingabeaudiosignal (ACT 410) zu identifizieren. Beispielsweise kann die NLP-Komponente 110 das Eingabeaudiosignal analysieren, um Anfragen (z. B. „nach Hause“) sowie die Schlüsselwörter („bringen“) zu identifizieren, die der Anfrage entsprechen oder sich auf diese beziehen. Das Verfahren 400 kann mindestens eine erste Aktionsdatenstruktur (ACT 415) basierend auf den identifizierten Anfragen oder Schlüsselwörtern erzeugen, die mit dem empfangenen ersten Audioeingabesignal verknüpft sind. Die Direktaktions-API 135 kann beispielsweise eine Aktionsdatenstruktur erzeugen, die mindestens einen Parameter beinhaltet, der eine erste Aktion, wie z. B. einen Standort für eine Taxiabholung, einen angeforderten Dienstleister oder Zeitinformationen, definiert.
-
Das Verfahren 400 kann mindestens ein zweites Audioeingabesignal empfangen (ACT 420). Die NLP-Komponente 110 kann beispielsweise paket- oder andere protokollbasierte Übertragungen über das Netzwerk von einem zweiten Client-Computergerät 150 empfangen. Die Datenpakete können ein von dem Sensor 151 des zweiten Client-Computergeräts 150 erkanntes Eingabeaudiosignal beinhalten oder diesem entsprechen, wie z. B. einem Endbenutzer, der in das zweite Client-Computergerät 150 spricht: „OK, kann ich bitte ein Taxi bekommen“. Das Verfahren 400 kann mindestens eine zweite Anfrage oder mindestens ein zweites Auslöserschlüsselwort von dem zweiten Eingabeaudiosignal (ACT 425) identifizieren. Beispielsweise kann die NLP-Komponente 110 das Eingabeaudiosignal analysieren, um Anfragen zu identifizieren (z. B. „Taxi“) sowie die Schlüsselwörter („bekommen“), die der Anfrage entsprechen oder sich auf diese beziehen. Das Verfahren 400 kann mindestens eine zweite Aktionsdatenstruktur (ACT 430) basierend auf den identifizierten Anfragen oder Schlüsselwörtern erzeugen, die mit dem empfangenen ersten Audioeingabesignal verknüpft sind. Die Direktaktions-API 135 kann beispielsweise eine Aktionsdatenstruktur erzeugen, die mindestens einen Parameter beinhaltet, der eine zweite Aktion definiert, wie z. B. einen Standort für eine Taxiabholung, einen angeforderten Dienstleister oder Zeitinformationen.
-
Das Verfahren 400 kann mindestens einen Pooling-Parameter ermitteln (ACT 435). Basierend auf Parametern der jeweiligen Aktionen, die einen gemeinsamen angeforderten Dienstanbieter oder eine andere Gemeinsamkeit angeben (z. B. einen Grad der Überlappung zwischen Aktionsdatenstrukturen), kann die Pooling-Komponente 120 beispielsweise einen Pooling-Parameter ermitteln, der den gemeinsamen angeforderten Dienstanbieter angibt. Das Verfahren 400 kann eine gepoolte Datenstruktur erzeugen (ACT 440). Basierend auf der Angabe des gemeinsamen angeforderten Dienstanbieters kann die Pooling-Komponente 120 beispielsweise mindestens eine gepoolte Datenstruktur erzeugen, die die ersten und zweiten Aktionsdatenstrukturen oder ihre verbundenen Aktionen oder Parameter angibt (ACT 440). Das Verfahren 400 kann die gepoolte Datenstruktur übertragen (ACT 445). Das Datenverarbeitungssystem 105 kann beispielsweise die gepoolte Datenstruktur für eines oder mehrere Dienstanbieter-Computergeräte 160 bereitstellen, die durch die gemeinsame angeforderte Dienstanbieter-Entität kontrolliert werden.
-
5 zeigt ein Blockdiagramm eines exemplarischen Computersystems 500. Das Computersystem oder Computergerät 500 kann das System 100 oder dessen Komponenten, wie z. B. das Datenverarbeitungssystem 105, beinhalten oder verwendet werden, um diese zu implementieren. Das Computersystem 500 beinhaltet einen Bus 505 oder eine andere Kommunikationskomponente zur Übertragung von Informationen sowie einen Prozessor 510 oder eine Verarbeitungsschaltung, die mit dem Bus 505 gekoppelt sind und der Verarbeitung von Informationen dienen. Das Computersystem 500 kann außerdem einen oder mehrere Prozessoren 510 oder Verarbeitungsschaltungen beinhalten, die mit dem Bus gekoppelt sind und der Verarbeitung von Informationen dienen. Das Computersystem 500 beinhaltet ferner Hauptspeicher 515, wie z. B. Direktzugriffsspeicher (RAM) oder ein anderes dynamisches Speichergerät, das mit dem Bus 505 gekoppelt ist, um Daten zu speichern, sowie Anweisungen, die vom Prozessor 510 ausgeführt werden sollen. Der Hauptspeicher 515 kann der Datenbehälter 145 sein bzw. denselben beinhalten. Der Hauptspeicher 515 kann bei Ausführung von Anweisungen durch den Prozessor 510 ferner zum Speichern von Positionsdaten, temporären Variablen oder anderen mittelfristigen Informationen verwendet werden. Das Computersystem 500 kann ferner einen Nur-Lese-Speicher (ROM) 520 oder ein anderes statisches Speichergerät beinhalten, das mit dem Bus 505 gekoppelt ist, um statische Informationen und Anweisungen für den Prozessor 510 zu speichern. Ein Speichergerät 525, wie z. B. ein Solid-State-Gerät, eine magnetische oder optische Platte, kann mit dem Bus 505 gekoppelt werden, um Informationen und Anweisungen dauerhaft zu speichern. Das Speichergerät 525 kann den Datenbehälter 145 beinhalten bzw. Teil desselben sein.
-
Das Computersystem 500 kann über den Bus 505 mit einer Anzeige 535, wie z. B. einer Flüssigkristallanzeige (LCD) oder aktiven Matrixanzeige, gekoppelt sein, sodass sich einem Benutzer Informationen anzeigen lassen. Mit dem Bus 505 kann ein Eingabegerät 530, wie z. B. eine Tastatur mit alphanumerischen und anderen Tasten, gekoppelt sein, damit sich ausgewählte Informationen und Befehle an den Prozessor 510 übermitteln lassen. Das Eingabegerät 530 kann eine Touchscreen-Anzeige 535 beinhalten. Das Eingabegerät 530 kann außerdem eine Cursorsteuerung, wie z. B. eine Maus, einen Trackball oder Pfeiltasten auf der Tastatur beinhalten, sodass sich Richtungsdaten und ausgewählte Befehle an den Prozessor 510 übertragen und die Bewegung des Cursors auf der Anzeige 535 steuern lassen. Die Anzeige 535 kann beispielsweise ein Teil des Datenverarbeitungssystems 105, des Client-Computergeräts 150 oder einer anderen Komponente von 1 sein.
-
Die hierin beschriebenen Prozesse, Systeme und Verfahren können vom Computersystem 500 als Folge davon implementiert werden, dass der Prozessor 510 einen im Hauptspeicher 515 enthaltenen Anweisungssatz ausführt. Diese Anweisungen können von einem computerlesbaren Medium (wie z. B. Speichergerät 525) in den Hauptspeicher 515 gelesen werden. Die Ausführung des im Hauptspeicher 515 enthaltenen Anweisungssatzes veranlasst das Computersystem 500, die hierin beschriebenen und dargestellten Prozesse auszuführen. Außerdem können in einer Multi-Prozessor-Anordnung ein oder mehrere Prozessoren dazu genutzt werden, die im Hauptspeicher 515 enthaltenen Anweisungen auszuführen. Festverdrahtete Schaltungen können anstelle von oder in Kombination mit Software-Anweisungen zusammen mit den hierin beschriebenen Systemen und Verfahren verwendet werden. Die hierin beschriebenen Systeme und Verfahren sind nicht auf eine spezifische Kombination aus Hardwareschaltungen und Software beschränkt.
-
Obwohl ein exemplarisches Computersystem in 5 beschrieben worden ist, kann der Gegenstand, einschließlich der in dieser Spezifikation beschriebenen Vorgänge, in anderen Arten von digitalen elektronischen Schaltungen oder in Computersoftware, Firmware oder Hardware, darunter auch in den in dieser Spezifikation offenbarten Strukturen und deren strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer derselben, implementiert werden.
-
Für Situationen, in denen die hier erläuterten Systeme ggf. persönliche Informationen über Benutzer sammeln, oder persönliche Informationen nutzen, kann für die Benutzer eine Möglichkeit bereitgestellt werden, einzustellen, ob Programme oder Funktionen, die persönliche Informationen (z. B. Informationen über das soziale Netzwerk eines Benutzers, soziale Handlungen oder Aktivitäten, eine Benutzerpräferenz oder den Standort eines Benutzers) sammeln, oder um einzustellen, ob und/oder wie Inhalt von einem Inhaltsserver oder einem anderen Datenverarbeitungssystem empfangen wird, der für den Benutzer ggf. relevanter ist. Zusätzlich können gewisse Daten auf eine oder mehrere Weisen anonymisiert werden, bevor sie gespeichert oder verwendet werden, sodass personenbezogene Daten entfernt werden, wenn Parameter generiert werden. Eine Benutzeridentität kann beispielsweise anonymisiert werden, sodass keine personenbezogenen Informationen für den Benutzer bestimmt werden können, oder ein geografischer Standort des Benutzers verallgemeinert werden kann, wobei Standortinformationen (wie beispielsweise Stadt, Postleitzahl oder Bundesland) entnommen werden, sodass ein bestimmter Standort eines Benutzers nicht festgestellt werden kann. Somit kann der Benutzer die Kontrolle darüber haben, wie Informationen über ihn oder sie gesammelt und von einem Inhaltsserver verwendet werden.
-
Der Gegenstand und die in dieser Spezifikation beschriebenen Vorgänge können in digitalen elektronischen Schaltkreisanordnungen oder in Computersoftware, Firmware oder Hardware, darunter auch in den in dieser Spezifikation offenbarten Strukturen und deren strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer derselben, implementiert werden. Der in dieser Beschreibung beschriebene Gegenstand kann als ein oder mehrere Computerprogramme implementiert werden, z. B. als eine oder mehrere Schaltungen von Computerprogrammanweisungen, die auf einem oder mehreren Computerspeichermedien codiert sind, um von Datenverarbeitungsvorrichtungen ausgeführt zu werden bzw. den Betrieb derselben zu steuern. Alternativ oder ergänzend dazu können die Programmanweisungen in einem künstlich erzeugten sich ausbreitenden Signal, wie beispielsweise einem maschinell erzeugten elektrischen, optischen oder elektromagnetischen Signal, codiert sein, das erzeugt wird, um Informationen zur Übertragung an eine geeignete Empfängervorrichtung zu codieren, damit diese von einer Datenverarbeitungsvorrichtung ausgeführt werden. Ein Computerspeichermedium kann ein computerlesbares Speichergerät, einen computerlesbaren Speicherträger, ein frei adressierbares oder serielles Speicher-Array oder Speichergerät oder eine Kombination derselben sein bzw. darin enthalten sein. Obwohl ein Computerspeichermedium kein sich ausbreitendes Signal ist, kann ein Computerspeichermedium jedoch eine Quelle oder ein Ziel von Computerprogrammanweisungen sein, die in einem künstlich erzeugten sich ausbreiteten Signal codiert sind. Das Computerspeichermedium kann zudem eine oder mehrere separate Komponenten oder Medien sein (z. B. mehrere CDs, Datenträger oder andere Speichergeräte bzw. darin enthalten sein). Die in dieser Spezifikation beschriebenen Vorgänge können als Vorgänge implementiert werden, die durch eine Datenverarbeitungsvorrichtung an Daten ausgeführt werden, die auf einem oder mehreren computerlesbaren Speichergerät(en) gespeichert oder von anderen Quellen empfangen werden.
-
Die Begriffe „Datenverarbeitungssystem“, „Computergerät, „Komponente“ oder „Datenverarbeitungsvorrichtung“ umfassen verschiedene Geräte, Vorrichtungen und Maschinen zur Verarbeitung von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers, eines oder mehrerer Systeme auf einem Chip oder mehrerer derselben oder Kombinationen der vorstehenden. Die Vorrichtung kann eine Spezial-Logikschaltung, wie z. B. eine FPGA (feldprogrammierbare Universalschaltung) oder eine ASIC (anwendungsspezifische integrierte Schaltung), beinhalten. Das Gerät kann zusätzlich zur Hardware auch Code beinhalten, der eine Ausführungsumgebung für das entsprechende Computerprogramm erzeugt, wie zum Beispiel Code, der Prozessorfirmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, einen virtuellen Computer oder eine Kombination daraus darstellt. Das Gerät und die Ausführungsumgebung können verschiedene Computermodell-Infrastrukturen, wie zum Beispiel Webdienste, sowie verteilte Rechen- und räumlich verteilte Recheninfrastrukturen realisieren. Die Direktaktions-API 135, Inhaltsauswahlkomponente 125, Pooling-Komponente 120 oder NLP-Komponente 110 und andere Komponenten des Datenverarbeitungssystems 105 können eine oder mehrere Datenverarbeitungsvorrichtungen, Systeme, Computergeräte oder Prozessoren beinhalten oder teilen.
-
Ein Computerprogramm (auch als Programm, Software, Softwareanwendung, App, Script oder Code bezeichnet) kann in einer beliebigen Form von Programmiersprache, darunter auch in kompilierten Sprachen oder interpretierten Sprachen, deklarativen oder prozeduralen Sprachen, geschrieben sein, und in beliebiger Form eingesetzt werden, darunter auch als eigenständiges Programm oder als Modul, Komponente, Unterprogramm, Objekt oder eine andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann einer Datei in einem Dateisystem entsprechen. Ein Computerprogramm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (wie z. B. ein oder mehrere Scripts, die in einem Dokument in Auszeichnungssprache gespeichert sind), in einer einzelnen dem betreffenden Programm gewidmeten Datei oder in mehreren koordinierten Dateien (wie beispielsweise Dateien, die ein oder mehrere Module, Teil-Programme oder Code-Abschnitte enthalten). Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort oder an mehreren Standorten verteilt befinden und über ein Kommunikationsnetzwerk miteinander verbunden sind.
-
Die in dieser Spezifikation beschriebenen Prozesse und logischen Abläufe können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme (z. B. Komponenten des Datenverarbeitungssystems 105) ausführen, um durch Verarbeiten von Eingabedaten und Erzeugen von Ausgaben Vorgänge durchzuführen. Die Prozesse und Logikabläufe können zudem durch eine Spezial-Logikschaltung, wie z. B. einen feldprogrammierbaren Universalschaltkreis (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC), ausgeführt und Vorrichtungen in Form derselben implementiert werden. Zu den zum Speichern von Computerprogrammanweisungen und Daten geeigneten Medien gehören sämtliche Arten von Festspeichern, Medien und Speichergeräten, einschließlich Halbleiterspeicherelementen, darunter auch EPROM, EEPROM und Flash-Speichergeräte; magnetische Festplatten, wie z. B. interne Festplatten oder Wechselplatten; magneto-optische Festplatten; und CD-ROM- und DVD-ROM-Laufwerke. Der Prozessor und der Speicher können durch eine Spezial-Logikschaltung ergänzt oder in dieselbe integriert werden.
-
Der hierin beschriebene Gegenstand kann in einem Computersystem implementiert sein, das eine Backend-Komponente, wie z. B. einen Datenserver, oder eine Middleware-Komponente, wie z. B. einen Anwendungsserver, oder eine Frontend-Komponente, wie z. B. einen Clientcomputer beinhaltet, der eine grafische Benutzeroberfläche oder einen Webbrowser aufweist, durch den ein Benutzer mit einer in dieser Beschreibung beschriebenen Implementierung des Gegenstandes interagieren kann, oder eine Kombination aus einer oder mehreren jener Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele für Kommunikationsnetzwerke beinhalten ein lokales Netzwerk („LAN“) und ein Großraumnetzwerk („WAN“), ein Inter-Netzwerk (z. B. das Internet) und Peer-to-Peer-Netzwerke (z. B. ad hoc Peer-to-Peer-Netzwerke).
-
Das Computersystem, wie z. B. System 100 oder System 500, kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk (z. B. das Netzwerk 165). Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und die eine Client-Server-Beziehung zueinander aufweisen. In einigen Implementierungen sendet ein Server Daten (z. B. ein Inhaltselement darstellende Datenpakete) an ein Client-Computergerät (z. B. zu Zwecken des Anzeigens von Daten und Empfangens von Benutzereingaben von einem Benutzer, der mit dem Client-Computergerät interagiert). In dem Client-Computergerät erzeugte Daten (z. B. ein Ergebnis der Benutzerinteraktion) können von dem Client-Computergerät an dem Server empfangen werden (z. B. empfangen durch das Datenverarbeitungssystem 105 von dem Computergerät 150 oder dem Inhaltsanbieter-Computergerät 155 oder dem Dienstanbieter-Computergerät 160).
-
Obwohl die Vorgänge in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, ist es nicht erforderlich, dass diese Vorgänge in der dargestellten bestimmten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden, zudem ist es nicht erforderlich, dass alle veranschaulichten Vorgänge durchgeführt werden. Hierin beschriebene Aktionen können in einer unterschiedlichen Reihenfolge durchgeführt werden.
-
Die Trennung verschiedener Systemkomponenten erfordert keine Trennung bei sämtlichen Implementierungen und die beschriebenen Programmkomponenten können in einem einzigen Hardware- oder Softwareprodukt enthalten sein. Die NLP-Komponente 110, die Inhaltsauswahlkomponente 125 oder die Pooling-Komponente 120 können beispielsweise eine einzelne Komponente, eine App oder ein Programm oder ein Logikgerät mit einer oder mehreren Verarbeitungsschaltungen oder Teil von einem oder mehreren Servern des Datenverarbeitungssystems 105 sein.
-
Nachdem nunmehr einige veranschaulichende Implementierungen beschrieben wurden, ist es offensichtlich, dass das Vorstehende der Veranschaulichung und nicht als Einschränkung dienen soll, und lediglich auf exemplarische Art und Weise präsentiert wurde. Insbesondere können, obgleich viele der hierin präsentierten Beispiele spezifische Kombinationen von Verfahrensvorgängen oder Systemelementen beinhalten, diese Vorgänge und Elemente auf andere Weisen kombiniert werden, um dieselben Ziele zu erreichen. Vorgänge, Elemente und Merkmale, die im Zusammenhang mit einer Implementierung erläutert werden, sollen nicht von einer ähnlichen Rolle in anderen Ausführungsformen oder Implementierungen ausgeschlossen sein.
-
Die hier verwendete Ausdrucksweise und Terminologie dient dem Zweck der Beschreibung und sollte nicht als Einschränkung betrachtet werden. Die Verwendung der Wörter „einschließlich“, „umfassend“, „aufweisend“, „enthaltend“, „einbeziehend“, „gekennzeichnet durch“, „dadurch gekennzeichnet, dass“ und Variationen derselben, soll hier bedeuten, dass die danach aufgelisteten Gegenstände, Äquivalente derselben und zusätzliche Gegenstände sowie alternative Implementierungen, die ausschließlich aus den danach aufgelisteten Gegenständen bestehen, mit umfasst sind. In einer Implementierung bestehen die hierin beschriebenen Systeme und Verfahren aus einem, aus jeder Kombination von mehr als einem oder aus allen der hierin beschriebenen Elemente, Wirkungsweisen oder Komponenten.
-
Jegliche Bezugnahmen auf Implementierungen oder Elemente oder Wirkungsweisen der Systeme und Verfahren, auf die hierin in der Einzahl verwiesen wird, können auch Implementierungen, einschließlich einer Vielzahl dieser Elemente, umfassen, während jegliche Bezugnahmen auf eine Implementierung oder ein Element oder eine Wirkungsweise beliebiger Art, auf die hierin in der Mehrzahl verwiesen wird, auch Implementierungen, einschließlich eines lediglich einzelnen Elements, umfassen können. Bezugnahmen auf die Singular- oder die Pluralform sind nicht dazu gedacht, die vorliegend offenbarten Systeme und Verfahren, deren Komponenten, Wirkungsweisen oder Elemente auf einzelne oder mehrfache Konfigurationen einzuschränken. Bezugnahmen auf eine Wirkungsweise oder ein Element jeglicher Art, basierend auf Informationen, Wirkungsweisen oder Elementen einer beliebigen Art können Implementierungen beinhalten, deren Wirkungsweise oder deren Element zumindest teilweise auf Informationen, Wirkungsweisen oder Elementen jeglicher Art basiert.
-
Jegliche der hierin offenbarten Implementierungen können mit beliebigen anderen Implementierungen oder Ausführungsformen kombiniert werden, wobei die Bezugnahmen auf „eine Implementierung“, „einige Implementierungen“, „die eine Implementierung“ oder dergleichen einander nicht zwangsläufig ausschließen und angeben sollen, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik, die im Zusammenhang mit der Implementierung beschrieben wird, in mindestens einer Implementierung oder Ausführungsform enthalten sein kann. Derartige Begriffe in der hierin verwendeten Form beziehen sich nicht notwendigerweise auf dieselbe Implementierung. Jede Implementierung kann einschließlich oder ausschließlich und auf jede Weise, die mit den hierin offenbarten Aspekten und Implementierungen im Einklang steht, mit jeder anderen Implementierung kombiniert werden.
-
Verweise auf „oder“ können als einschließend ausgelegt werden, sodass alle Begriffe, die mithilfe von „oder“ beschrieben werden, einen beliebigen einzelnen, mehr als einen oder alle beschriebenen Begriffe angeben können. Eine Bezugnahme auf „mindestens eines von ‚A‘ und 'B'“ kann beispielsweise nur ‚A‘, nur ‚B‘ sowie sowohl ‚A‘ und ‚B‘ beinhalten. Diese Bezugnahmen, die in Verbindung mit „umfassend“ oder anderer offener Terminologie verwendet werden, können zusätzliche Elemente einbeziehen.
-
Wenn technische Merkmale in den Zeichnungen, der ausführlichen Beschreibung oder einem beliebigen Anspruch von Bezugszeichen gefolgt werden, wurden die Bezugszeichen eingebunden, um die Verständlichkeit der Zeichnungen, ausführlichen Beschreibung oder Ansprüche zu erhöhen. Dementsprechend haben weder jene Bezugszeichen noch deren Abwesenheit eine einschränkende Wirkung auf den Umfang der Anspruchselemente.
-
Die hierin beschriebenen Systeme und Verfahren können auch durch andere Ausführungsformen realisiert werden, ohne von deren wesentlichen Merkmalen abzuweichen. Das Empfangen mehrerer Audioeingabesignale (oder Identifizieren oder jeweilige Anfragen oder Auslöserschlüsselwörter) durch das Datenverarbeitungssystem 105 kann beispielsweise gleichzeitig oder nacheinander von einer oder mehreren Quellen erfolgen. Die vorhergehenden Implementierungen werden eher als anschaulich denn als einschränkend für die hierin beschriebenen Systeme und Verfahren betrachtet. Der Geltungsbereich der hierin beschriebenen Systeme und Verfahren wird daher eher durch die beigefügten Ansprüche als durch die vorangehende Beschreibung angegeben, wobei Änderungen, welche innerhalb der Bedeutungen und des Bereichs der Äquivalenz der Ansprüche fallen, daher hierin eingeschlossen sind.