-
TECHNISCHES BEREICH
-
Die vorliegende Offenlegung bezieht sich im Allgemeinen auf Computer und Computeranwendungen und im Besonderen auf die automatische Tonerzeugung aus Videos.
-
BESCHREIBUNG DES VERWANDTEN STANDES DER TECHNIK
-
In den letzten Jahren sind Medieninhalte insofern allgegenwärtig geworden, als sie auf verschiedenen Plattformen und aus einer zunehmenden Zahl von Quellen verfügbar sind. Die verschiedenen Plattformen können beispielsweise das Internet, Kino, Fernsehen, Radio, Smartphones, Audio-CDs, Bücher, E-Books, Zeitschriften und Live-Events wie Reden, Konferenzen und Bühnenauftritte beinhalten. Bei Medieninhalten, die auf Videoinhalten basieren, fehlen oft bestimmte Teile der dazugehörigen Audioinhalte. Beispielsweise kann es sein, dass der Datensatz nicht mit einem geeigneten Mikrofon aufgezeichnet wurde, wobei Teile oder der gesamte Ton aus dem Videoinhalt fehlen.
-
KURZDARSTELLUNG
-
Gemäß verschiedenen Ausführungsformen sind eine Rechenvorrichtung, ein nicht flüchtiges, computerlesbares Speichermedium und ein Verfahren vorgesehen, mit denen ein Videostream so angepasst werden kann, dass er einen synthetischen Audiostream beinhaltet. Ein Videofeed wird empfangen und in eine Reihenfolge von Videosegmenten aufgeteilt. Für jedes Videosegment werden visuelle Merkmale extrahiert. Basierend auf den extrahierten visuellen Merkmalen wird ein vorhergesagtes Spektrogramm erzeugt. Aus dem vorhergesagten Spektrogramm wird eine synthetische Audiowellenform erzeugt. Alle synthetischen Audiowellenformen des Videofeeds werden verkettet, um eine synthetische Tonspur zu erzeugen, die mit dem Videofeed synchronisiert ist.
-
In einer Ausführungsform ist jedes Videosegment ein Videorahmen.
-
In einer Ausführungsform umfasst das Extrahieren visueller Merkmale in dem Videosegment das Ermitteln eines oder mehrerer Themen des Videosegments.
-
In einer Ausführungsform beinhalten die visuellen Merkmale des Videosegments ein dominantes visuelles Merkmal und ein oder mehrere nicht-dominante visuelle Merkmale. Eine synthetische Audiowellenform, die mit dem dominanten Merkmal verknüpft ist, kann hervorgehoben (emphasized) werden, während jede synthetische Audiowellenform, die mit einem oder mehreren nicht-dominanten visuellen Merkmalen verknüpft ist, abgeschwächt (de-emphasized) werden kann.
-
In einer Ausführungsform wird die Ermittlung im Wesentlichen in Echtzeit ausgeführt.
-
In einer Ausführungsform beinhaltet die Erzeugung eines vorhergesagten Spektrogramms das Bereitstellen der extrahierten visuellen Merkmale in einem Generator, der das vorhergesagte Spektrogramm auf Grundlage der extrahierten visuellen Merkmale erzeugt. Das Netzwerk des Generators kann während einer Trainingsphase trainiert werden, die Folgendes beinhaltet: Empfangen historischer Daten, einschließlich eines oder mehrerer historischer Videofeeds; für jeden historischen Videofeed Aufteilen des historischen Videofeeds in eine Reihenfolge von Videosegmenten. Für jedes Videosegment eines historischen Videofeeds werden visuelle Merkmale in dem Videosegment extrahiert. Auf Grundlage der extrahierten visuellen Merkmale wird ein vorhergesagtes Spektrogramm erzeugt. Ein reales Spektrogramm wird mit dem vorhergesagten Spektrogramm durch ein Diskriminator-Netzwerk verglichen, um einen Ähnlichkeitsgrad zu erkennen. Nach der Ermittlung, dass der Ähnlichkeitsgrad über einem vorbestimmten Schwellenwert liegt, wird das vorhergesagte Spektrogramm als eine gültige Darstellung der extrahierten visuellen Merkmale erkannt.
-
In einer Ausführungsform ist die Rechenvorrichtung eine Benutzereinheit. Es gibt eine Kamera, die mit dem Prozessor gekoppelt ist, und der Videofeed wird von der Kamera empfangen.
-
Diese und andere Merkmale werden aus der folgenden detaillierten Beschreibung illustrativer Ausführungsformen ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
-
Figurenliste
-
Die Zeichnungen veranschaulichen die Ausführungsformen. Sie veranschaulichen nicht alle Ausführungsformen. Andere Ausführungsformen können zusätzlich oder stattdessen verwendet werden. Details, die offensichtlich oder unnötig sind, können weggelassen werden, um Platz zu sparen oder um die Effizienz zu veranschaulichen. Einige Ausführungsformen können mit zusätzlichen Komponenten oder Schritten und/oder ohne alle der veranschaulichten Komponenten oder Schritte ausgeführt werden. Wenn dasselbe Bezugszeichen in verschiedenen Zeichnungen erscheint, bezieht es sich auf die gleichen oder ähnliche Komponenten oder Schritte.
- 1 ist gemäß einer veranschaulichenden Ausführungsform ein Beispiel für die Architektur eines Systems, das automatisch eine synthetische Audiospur für einen Videostream erzeugt.
- 2 ist gemäß einer veranschaulichenden Ausführungsform ein Blockdiagramm, das verschiedene Komponenten einer beispielhaften Einheit auf hohem Niveau zeigt.
- 3 veranschaulicht gemäß einer veranschaulichenden Ausführungsform ein vereinfachtes konzeptionelles Blockdiagramm zur Erzeugung von Rohton aus einem Videostrom.
- 4A und 4B sind Beispiele für Blockdiagramme von diskriminierenden bzw. erzeugenden Architekturen.
- 5 ist gemäß einer veranschaulichenden Ausführungsform ein konzeptionelles Blockdiagramm eines Beispiels für ein neuronales Netzwerk, das ein erzeugendes gegnerisches Netzwerk (generative adversarial network) umfasst, das mit einem Diskriminator-Netzwerk interagiert.
- 6 ist gemäß einer veranschaulichenden Ausführungsform ein konzeptionelles Blockdiagramm eines Bild-zu-Ton-Systems.
- 7 veranschaulicht einen Prozess zur automatischen Anpassung von Videoinhalten, der einen im Wesentlichen dazu synchronisierten synthetischen Audiostream beinhaltet.
- 8 veranschaulicht einen Prozess für eine iterative Trainingsphase.
- 9 ist ein funktionelles Blockdiagramm, das eine Computer-Hardware-Plattform veranschaulicht, die einen Ton-Engine-Server von 1 implementieren kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Überblick
-
In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details anhand von Beispielen dargelegt, um ein umfassendes Verständnis der relevanten Lehren bereitzustellen. Es sollte jedoch klar sein, dass die vorliegende Lehre auch ohne solche Details praktiziert werden kann. In anderen Fällen wurden bekannte Verfahren, Prozeduren, Komponenten und/oder Schaltkreise auf einer relativ hohen Ebene und ohne Details beschrieben, um zu vermeiden, dass Aspekte der vorliegenden Lehre unnötig verdeckt werden.
-
Die vorliegende Offenlegung bezieht sich im Allgemeinen auf die automatische Anpassung von Videoinhalten, die einen synthetischen, im Wesentlichen dazu synchronisierten Audiostream beinhalten. Heutzutage werden Videoinhalte von verschiedenen Quellen bereitgestellt, einschließlich Rundfunk oder Multicast von einem Inhaltsanbieter, wie z. B. einem Fernsehsender, sozialen Medien, gespeicherten Medien, tragbaren Einheiten mit einer Kamera und dergleichen. In einigen Szenarien können solche Videoinhalte keine Teile von Audioinhalten beinhalten. Beispielsweise kann der Videoinhalt durch Hintergrundgeräusche überlagert werden, Verzerrungen beinhalten und/oder der Audioteil einfach fehlen, z. B. wenn er aus großer Entfernung oder ohne ein geeignetes Mikrofon aufgenommen wurde. Obwohl es in letzter Zeit Versuche gegeben hat, Audioinhalte in Videos einzufügen, nachdem das Video aufgenommen wurde, entspricht der Ton typischerweise nicht ausreichend dem Inhalt des Videofeeds oder ist möglicherweise nicht synchron dazu, was zu einer schlechten Benutzererfahrung führt.
-
Dementsprechend werden hier Verfahren und Vorrichtungen bereitgestellt, die so konfiguriert sind, dass sie visuelle Merkmale aus einem Videoinhalt extrahieren und einen synthetischen Audiostream erzeugen, der nicht nur eine genaue klangliche Darstellung des Videoinhalts liefert, sondern im Wesentlichen auch synchron dazu ist. Zu diesem Zweck kann maschinelles Lernen verwendet werden, um die Beziehung zwischen Bild und Ton für verschiedene Sachverhalte zu untersuchen, z. B. ein weinendes Kind, ein bellender Hund, ein Wasserfall, ein vorbeifahrendes Auto, eine Explosion usw. Modelle des Verhältnisses zwischen Bild und Ton können für zahlreiche Anwendungen eingesetzt werden, z. B. für die Kombination von Videos mit automatisch erzeugten Umgebungsgeräuschen, um fehlende Audioinhalte bereitzustellen und/oder das Erlebnis des Eintauchens in die virtuelle Realität zu verbessern. Das automatische Hinzufügen von Toneffekten zu Videoinhalten kann ein audiovisuelles Erlebnis unmittelbar verbessern oder es einer sehbehinderten Person ermöglichen, eine visuelle Umgebung über eine Darstellung mittels Tons zu erleben. Die hier beschriebenen Techniken können auf verschiedene Weise implementiert werden. Beispielhafte Implementierungen werden im Folgenden unter Bezugnahme auf die folgenden Figuren bereitgestellt.
-
Beispielhafte Architektur
-
1 veranschaulicht gemäß einer Ausführungsform ein Beispiel für die Architektur 100 eines Systems, das automatisch eine synthetische Audiospur für einen Videostream erzeugt. Die Architektur 100 kann einen Speicher für historische Daten 112, einen Speicher für Videoinhalte 110 und einen Ton-Engine-Server 120 beinhalten, der eine Ton-Engine 132 hostet. Es gibt ein Netzwerk 106, das es der Ton-Engine 132 ermöglicht, mit verschiedenen Ressourcen zu kommunizieren, die mit dem Netzwerk 106 verbunden sind, wie z. B. dem Speicher für historische Daten 112, dem Speicher für Videoinhalte 110 und den Einheiten 102(1) bis 102(N). Das Netzwerk 106 kann ohne Einschränkung ein lokales Netzwerk („LAN“), ein virtuelles privates Netzwerk („VPN“), ein zellulares Netzwerk, das Internet oder eine Kombination davon sein. Beispielsweise kann das Netzwerk 106 ein mobiles Netzwerk beinhalten, das kommunikativ mit einem privaten Netzwerk gekoppelt ist, das manchmal auch als Intranet bezeichnet wird und verschiedene Zusatzdienste bereitstellt, wie z. B. die Kommunikation mit der Ton-Engine 132, um synthetische Audioströme für die von der Datenbank für Videoinhalte 110 oder den Benutzereinheiten 101(1) bis 101(N) empfangenen Videoinhalte zu addieren.
-
Zu Diskussionszwecken sind in der Zeichnung verschiedene Benutzereinheiten 102(1) bis 102(N) dargestellt, um einige Beispiele für Client-Einheiten zu zeigen, die zur Aufnahme von Videoinhalten verwendet werden können, die dann so geeignet sind, dass sie synthetische Audioströme umfassen, die synchron zu den aufgenommenen Videoinhalten sind. Der synthetische Audiostrom kann von einer Ton-Engine erzeugt werden, die sich auf der Einheit des Benutzers befindet (z. B. 122 oder 128), oder von einer entfernten Ton-Engine 132, die von dem Ton-Engine-Server 120 gehostet wird. Das heißt, in einigen Ausführungsformen kann die Benutzereinheit unabhängig vom Netzwerk 106 und/oder dem Ton-Engine-Server 120 sein, indem sie den Medieninhalt in ihrem Speicher (z. B. Festplatte, RAM, ROM, DVD, Videoband, Flash-Laufwerk usw.) oder in einer Hardwarekomponente gespeichert hat.
-
Während die Funktionen der Ton-Engines 122 und 128 hier manchmal im Zusammenhang mit der Integration in Einheiten des Benutzers erörtert werden, können die Funktionen der Ton-Engine auch aus der Ferne ausgeführt werden (z. B. durch einen entfernten Ton-Engine-Server 120). Zum Beispiel kann es einen Ton-Engine-Server 120 geben, der über eine Ton-Engine 132 verfügt, die ähnliche Merkmale aufweist wie die Ton-Engine 128 der Benutzereinheit 102(n). Auf diese Weise können im Wesentlichen ähnliche Funktionen wie die der Ton-Engines 122 und 128 aus der Ferne über ein Netzwerk 106 ausgeführt werden. Dies ist besonders nützlich, wenn eine Benutzereinheit nicht über ausreichende Computer-Ressourcen verfügt (z. B. nicht genügend Rechenleistung) und/oder um die Leistung der Benutzereinheit zu sichern. In einem Aspekt wird die Rechentechnik durch die vorliegenden Konzepte also dadurch verbessert, dass eine Rechenvorrichtung entlastet werden kann, indem eine oder mehrere Medienfunktionen aus der Ferne ausgeführt werden. Heutzutage haben Benutzereinheiten typischerweise die Form von tragbaren Handgeräten, Smartphones, Tablet-Computern, Personal Digital Assistants (PDAs) und Smartwatches, obwohl sie auch in anderen Formfaktoren implementiert sein können, einschließlich elektronischer Einheiten für Verbraucher, Medizin und Unternehmen.
-
Der Speicher für historische Daten 112 ist so konfiguriert, dass er einen großen Satz historischer Daten 113 speichert und pflegt, die sich auf Videoinhalte mit einem entsprechenden Audioinhalt beziehen. Zum Beispiel können die historischen Daten 113 Videoinhalte mit erkannten visuellen Merkmalen beinhalten. In verschiedenen Ausführungsformen können diese visuellen Merkmale von der Ton-Engine (z. B. 122, 128 und/oder 132) verwendet werden, um ein Referenzspektrogramm zu erstellen, das hier manchmal als reales Spektrogramm bezeichnet wird und die „Basiswahrheit“ für spätere Vergleichszwecke durch ein Diskriminator-Netzwerk darstellt. In einigen Ausführungsformen beinhaltet der historische Datenspeicher 112 das reale Spektrogramm zusammen mit den visuellen Merkmalen. In einer Ausführungsform wird maschinelles Lernen verwendet, um Algorithmen zu konstruieren, die aus den im historischen Datenspeicher 112 gespeicherten Daten lernen und auf dieser Grundlage Vorhersagen treffen können. Solche Algorithmen arbeiten, indem sie ein Modell aus gespeicherten früheren Eingaben oder Basislinien erstellen, um datengesteuerte Vorhersagen oder Entscheidungen zu treffen. Auf Grundlage des maschinellen Lernens werden Muster und Trends erkannt, und Ausreißer werden als nicht zu einem Cluster gehörend erkannt. Zum Beispiel kann maschinelles Lernen verwendet werden, um die visuellen Merkmale eines Frames des Videoinhalts zu erkennen, ein vorhergesagtes Spektrogramm auf Grundlage der visuellen Merkmale eines Frames des Videoinhalts zu erzeugen sowie eine Tonwellenform auf Grundlage des vorhergesagten Spektrogramms zu erzeugen. In verschiedenen Ausführungsformen können die Maschinenmodelle für jede dieser Funktionen separat trainiert werden.
-
Wie hier verwendet, bezieht sich ein visuelles Merkmal auf den Gegenstand einer Szene, z. B. einen bellenden Hund, ein weinendes Baby, eine Baustelle usw. In einigen Ausführungsformen können die visuellen Merkmale ein dominantes Merkmal zusammen mit ergänzenden (z. B. nicht dominanten) Merkmalen beinhalten. Ein Beispiel: Ein Rahmen kann ein Auto beinhalten, das neben einem Feuerwehrauto fährt. In diesem Szenario ist das Auto ein untergeordnetes Merkmal, während das dominante Merkmal das Feuerwehrauto ist. Dementsprechend wird die synthetische Audiowellenform, die mit dem dominanten Merkmal verknüpft ist (d. h. in diesem Beispiel das Feuerwehrauto), hervorgehoben, während die Nebenmerkmale abgeschwächt (z. B. abgeschwächt oder sogar stummgeschaltet) werden, wodurch die Komplexität der Berechnung vereinfacht und die klangliche Betonung des Themas verbessert wird.
-
In verschiedenen Ausführungsformen kann das hier erörterte maschinelle Lernen überwacht oder unüberwacht sein. Beim überwachten Lernen können der Ton-Engine (z. B. 122, 128 und/oder 132) während einer Trainingsphase historische Daten 113 aus dem historischen Datenspeicher 112 als Daten vorgelegt werden, die sich jeweils auf verschiedene Kategorien (z. B. Merkmale) beziehen. Anders ausgedrückt: Der historische Datenspeicher 112 fungiert als Lehrer für die Ton-Engine 132. Beim unüberwachten Lernen stellt der historische Datenspeicher 112 keine Kennzeichnungen bereit, was akzeptabel ist, sondern verwendet einfach historische Daten 113 für den Ton-Engine-Server 120, der seine eigene Struktur in den Daten finden kann, um ein Spektrogramm vorherzusagen, zu ermitteln, ob das vorhergesagte Spektrogramm eine ausreichend genaue Darstellung der visuellen Merkmale des Videoinhalts ist, und eine synthetische Audiowellenform aus dem vorhergesagten Spektrogramm zu erstellen. In verschiedenen Ausführungsformen kann das maschinelle Lernen Techniken wie überwachtes Lernen, unüberwachtes Lernen, halbüberwachtes Lernen, naive Bayes, Bayes'sche Netzwerke, Entscheidungsbäume, neuronale Netzwerke, Fuzzy-Logik-Modelle und/oder probabilistische Klassifikationsmodelle verwenden.
-
So werden während einer Trainingsphase ein oder mehrere Modelle durch maschinelles Lernen erstellt, wobei die Modelle die visuellen Merkmale erkennen, ein vorhergesagtes Spektrogramm auf Grundlage der visuellen Merkmale bereitstellen, ermitteln, ob das vorhergesagte Spektrogramm eine gültige Darstellung der visuellen Merkmale ist, und schließlich eine synthetische Audiowellenform auf Grundlage der visuellen Merkmale bereitstellen können. Diese Modelle können dann während einer aktiven Phase verwendet werden, die in der Lage sein kann, einen Videostream zu verarbeiten, um einen synthetischen Audiostream bereitzustellen, der anschließend oder im Wesentlichen in Echtzeit mit diesem synchronisiert wird.
-
In verschiedenen Ausführungsformen kann der Videofeed 111 von einer Datenbank für Videoinhalte 110 bereitgestellt oder von den Benutzereinheiten 102(1) bis 102(N) mit Hilfe von darin eingebetteten Kameras erstellt werden. Ein Beispiel für eine Benutzereinheit wird später im Detail besprochen. So kann eine Benutzereinheit in einigen Szenarien insofern unabhängig sein, als sie nicht nur einen Videoinhalt aufnehmen, sondern ihn auch unabhängig verarbeiten kann, um ihm mit Hilfe einer lokalen Inhalts-Engine (z. B. 122) eine geeignete synthetische Tonspur zu addieren. Eine solche Unabhängigkeit kann insbesondere bei Anwendungen nützlich sein, die es Sehbehinderten ermöglichen, eine visuelle Umgebung über eine Tondarstellung zu erleben.
-
Während der historische Datenspeicher 112, die Datenbank für Videoinhalte 110 und der Ton-Engine-Server 120 in verschiedenen Ausführungsformen auf unterschiedlichen Computerplattformen veranschaulicht sind, können diese Plattformen in verschiedenen Kombinationen kombiniert werden. In anderen Ausführungsformen können eine oder mehrere dieser Rechenplattformen durch virtuelle Rechenvorrichtungen in Form von virtuellen Maschinen oder Softwarecontainern implementiert werden, die in der Cloud 120 gehostet werden, wodurch eine elastische Architektur für die Verarbeitung und Speicherung bereitgestellt wird.
-
Beispielhafte Benutzereinheit
-
Wie im Zusammenhang mit 1 erläutert, kann die Erzeugung einer synthetischen Tonspur für einen Videostream verschiedene Typen von Benutzereinheiten umfassen. Zu diesem Zweck veranschaulicht 2 ein Blockdiagramm, das verschiedene Komponenten einer illustrativen Benutzereinheit 200 auf einem hohen Niveau zeigt. Zu Diskussionszwecken wird die Benutzereinheit 200 in Form einer drahtlosen Rechenvorrichtung veranschaulicht, wobei selbstverständlich auch andere Rechenvorrichtungen in Frage kommen.
-
Die Benutzereinheit 200 kann eine oder mehrere Antennen 202, einen Transceiver 204 für Mobilfunk, Wi-Fi-Kommunikation, Kurzstrecken-Kommunikationstechnologie und/oder drahtgebundene Kommunikation, eine Benutzerschnittstelle 206, einen oder mehrere Prozessoren 208, Hardware 210 und einen Speicher 230 umfassen. In einigen Ausführungsformen können die Antennen 202 eine Uplink-Antenne beinhalten, die Funksignale an eine Basisstation sendet, und eine Downlink-Antenne, die Funksignale von der Basisstation empfängt. In einigen anderen Ausführungsformen kann eine einzige Antenne sowohl Funksignale senden als auch empfangen. Die gleichen oder andere Antennen können für die Wi-Fi-Kommunikation verwendet werden. Diese Signale können vom Transceiver 204 verarbeitet werden, der manchmal auch als Netzwerk-Schnittstelle bezeichnet wird und so konfiguriert ist, dass er digitale Daten empfängt und sendet. In einer Ausführungsform beinhaltet die Benutzereinheit 200 keine Antenne 202 und die Kommunikation mit externen Komponenten erfolgt über eine drahtgebundene Kommunikation.
-
In einer Ausführungsform beinhaltet die Benutzereinheit 200 eine oder mehrere Benutzerschnittstelle(n) 206, die es einem Benutzer ermöglicht, Eingaben bereitzustellen und Ausgaben von der Benutzereinheit 200 zu empfangen. Zum Beispiel kann die Benutzereinheit 206 eine Datenausgabeeinheit (z.B. visuelle Anzeige(n), Audio-Lautsprecher, haptische Einheit usw.) beinhalten, die verwendet werden kann, um visuelle Inhalte mit einem synthetischen Tonfluss bereitzustellen, der im Wesentlichen mit diesem synchronisiert ist.
-
Die Benutzerschnittstelle(n) 206 kann/können auch eine oder mehrere Dateneingabe-Einheiten beinhalten. Die Dateneingabeeinheiten können Kombinationen aus einem oder mehreren Tastenfeldern, Knöpfen/Bedienelementen, Tastaturen, Berührungsbildschirmen, Spracherkennungspaketen und anderen geeigneten Einheiten oder anderen elektronischen/Software-Auswahlschnittstellen beinhalten, sind aber nicht darauf beschränkt.
-
Die Benutzereinheit 200 kann einen oder mehrere Prozessoren 208 umfassen, bei denen es sich um einen Single-Core-Prozessor, einen Multi-Core-Prozessor, einen CISC-Prozessor (Complex Instruction Set Computing), einen Spieleprozessor oder jeden anderen Typ eines geeigneten Prozessors handeln kann.
-
Die Hardware 210 kann eine Stromquelle und digitale Signalprozessoren (DSPs) beinhalten, die Single-Core- oder Multiple-Core-Prozessoren umfassen können. Die Hardware 210 kann auch Netzwerkprozessoren beinhalten, die Hochgeschwindigkeits-Kommunikationsschnittstellen verwalten, einschließlich Kommunikationsschnittstellen, die mit peripheren Komponenten interagieren. Die Netzwerkprozessoren und die peripheren Komponenten können über eine Switching-Fabric verbunden sein. Die Hardware 210 kann Hardware-Decoder und -Encoder, eine Netzwerk-Schnittstellen-Steuereinheit und/oder eine USB-Steuereinheit beinhalten.
-
Die Hardware 210 kann verschiedene Sensoren beinhalten, die verwendet werden können, um Video- und/oder Audioinformationen zu erfassen. Zum Beispiel können ein oder mehrere Mikrofone 214 verwendet werden, um Audioinhalte zu erfassen, und eine Kamera 218, um Videoinhalte zu erfassen. Diese Videoinhalte können dann durch die Ton-Engine 242 lokal oder durch eine entfernte Ton-Engine, ähnlich der des Ton-Engine-Servers 120 von 1, wie hier beschrieben, verbessert werden.
-
Die Benutzereinheit 200 umfasst einen Speicher 230, der unter Verwendung von computerlesbaren Medien, wie z. B. Computerspeichermedien, implementiert werden kann. Speichermedien beinhalten flüchtige und nicht-flüchtige, entfernbare und nicht-entfernbare Medien, die in einem beliebigen Verfahren oder einer Technologie zur Speicherung von Informationen wie computer-implementierten Anweisungen, Datenstrukturen, Programm-Modulen oder anderen Daten implementiert sind. Computerspeichermedien beinhalten unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD), High-Definition-Video-Speicherplatten oder andere optische Speicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichergeräte oder jedes andere nicht übertragbare Medium, das zur Speicherung von Informationen für den Zugriff durch eine Rechenvorrichtung verwendet werden kann.
-
Der Speicher 230 kann verschiedene Softwarekomponenten oder -module speichern, die von dem/den Prozessor(en) 208 und der/den Steuereinheit(en) der Benutzereinheit 200 ausgeführt werden können oder auf die diese zugreifen. Die verschiedenen Komponenten des Speichers 230 können Software 232 und ein Betriebssystem 270 beinhalten. Die Software 232 kann verschiedene Anwendungen 240 beinhalten, wie z. B. eine Ton-Engine 242 mit mehreren Modulen, von denen jedes so konfiguriert ist, dass es einen anderen Aspekt der automatischen Anpassung von Videoinhalten steuert, um einen synthetischen Audiostream zu umfassen, der im Wesentlichen damit synchronisiert ist. Jedes Modul kann Routinen, Programmanweisungen, Objekte und/oder Datenstrukturen beinhalten, die Aufgaben ausführen oder abstrakte Datentypen implementieren, auf die später im Detail eingegangen wird.
-
In einer Ausführungsform umfasst die Ton-Engine 242 ein Modul 244 für visuelle Merkmale, das so konfiguriert ist, dass es visuelle Merkmale aus einem Segment (z. B. einem Frame) eines Videofeeds extrahiert. Es gibt ein Encoder/Decoder-Modul 246, das auf Grundlage der visuellen Merkmale, die aus einem Frame eines Videofeeds extrahiert werden, ein vorhergesagtes Spektrogramm erstellt. Es gibt einen Vocoder 248, der das vorhergesagte Spektrogramm verwendet, um daraus ein synthetisches Audio-Inhaltssegment zu erzeugen. Es gibt ein Diskriminator-Modul 250, das ermittelt, ob das vorhergesagte Spektrogramm eine genaue Darstellung der visuellen Merkmale des Videorahmens ist. Während die Module der Ton-Engine 242 oben im Zusammenhang mit einer Software-Anwendung beschrieben wurden, ist zu beachten, dass eine oder mehrere Funktionen auch in der Hardware 210 ausgeführt werden können.
-
Das Betriebssystem 270 kann Komponenten beinhalten, die es der Benutzereinheit 200 ermöglichen, Daten über verschiedene Schnittstellen zu empfangen und zu übertragen (z. B. Benutzerkontrollen, Kommunikationsschnittstelle und/oder Speicher-Eingabe/Ausgabegeräte) sowie Daten unter Verwendung des/der Prozessors/Prozessoren 208 zu verarbeiten, um eine Ausgabe zu erzeugen. Das Betriebssystem 270 kann eine Präsentationskomponente beinhalten, die die Ausgabe präsentiert (z.B. Anzeige mindestens eines Teils des Medieninhalts auf einer elektronischen Anzeige der Benutzereinheit 200, Speichern der Daten im Speicher 230, Übertragen der Daten an eine andere elektronische Einheit usw.). Zusätzlich kann das Betriebssystem 270 andere Komponenten umfassen, die verschiedene zusätzliche Funktionen ausführen, die allgemein mit einem Betriebssystem 270 verknüpft sind. Aufgrund der Hard- und Software der Benutzereinheit 200 kann ein Videofeed geeignet sein, einen dazu synchronen synthetischen Audiostream zu umfassen.
-
Beispielhaftes Blockdiagramm
-
3 veranschaulicht ein vereinfachtes konzeptionelles Blockdiagramm 300 der Erzeugung von Rohton 306 aus einem Videofeed. Ein Videofeed 302, der eine Reihe von Bildern umfasst, wird von einer Ton-Engine empfangen. Die Ton-Engine kann den Videofeed 302 in Videosegmente aufteilen, bis hin zu einer Granularität von Einzelbildern. Anders ausgedrückt: Jedes Einzelbild kann unabhängig analysiert werden, um ein hohes Maß an Granularität und Synchronisation bereitzustellen. In einer Ausführungsform wird zur Verringerung des Rechenaufwands eine vorbestimmte Anzahl von Einzelbildern übersprungen. Die verwendeten Frames werden hier als „relevante Frames“ bezeichnet. In einigen Ausführungsformen ist jeder Frame relevant.
-
Ein Modell 304 wird auf die Frames angewendet, um einen Ton zu erzeugen, der im Wesentlichen mit dem Videofeed 302 synchronisiert ist. Zu diesem Zweck ist das Modell 304 so konfiguriert, dass es für jedes relevante Einzelbild ein Spektrogramm mit Hilfe eines Encoder-Decoders erstellt. Die Reihe der Spektrogramme wird dann von dem Modell verwendet, um den synchronisierten Ton 306 für den Videofeed 302 zu erzeugen. Im Gegensatz zu bekannten Herangehensweisen, die eine Tonwellenform 306 auf Grundlage des rohen Videofeeds erzeugen, wodurch die Synchronisation zwischen dem visuellen Inhalt und dem erzeugten Ton beeinträchtigt wird, erreicht die hier bereitgestellte Herangehensweise eine wesentliche Synchronisation zwischen dem Videofeed 302 und dem erzeugten Ton 306 durch Verwendung eines vorhergesagten Spektrogramms für jedes Segment eines Videofeeds 302. Die Erstellung des Modells bzw. der Modelle 304, die während einer Trainingsphase ausgeführt wird, wird im Folgenden im Detail besprochen.
-
Beispielhafte künstliche Intelligenztechniken
-
Wie bereits erwähnt, können verschiedene Techniken der künstlichen Intelligenz verwendet werden, um synthetische Teile des Audioinhalts auf der Grundlage des vorhergesagten Spektrogramms verschiedener Segmente eines Videofeeds bereitzustellen. Ein Spektrogramm ist eine zweidimensionale visuelle Darstellung des Frequenzspektrums eines Signals, wie es sich mit der Zeit verändert. Wie hier verwendet, ist es ein Visualisierungswerkzeug, das die Anzeige von Rohwellenformen für einzelne Merkmale ermöglicht, die aus Frames eines Videostreams extrahiert wurden. Anders ausgedrückt, es ist ein Bild des Tons. Es zeigt zum Beispiel die Frequenzen, aus denen sich der Ton zusammensetzt, von niedrig bis hoch, und wie er sich im Laufe der Zeit verändert, von links nach rechts.
-
In einigen Ausführungsformen können erzeugende gegnerische Netzwerke (GANs) und/oder diskriminierende Herangehensweisen verwendet werden, um die Modelle zu trainieren, um den synthetischen Audioinhalt für einen Videofeed zu erzeugen bzw. um zu ermitteln, ob der erzeugte synthetische Audioinhalt eine gültige Darstellung des Videofeeds ist. In diesem Zusammenhang sind die 4A und 4B Beispiel-Blockdiagramme von diskriminativen und erzeugenden Architekturen, die verwendet werden können, um synthetische Audioinhalte für einen Videofeed zu erzeugen und/oder zu ermitteln, ob der erzeugte Videofeed eine gültige Darstellung des Videofeeds ist.
-
Diskriminator-Netzwerke 404 können ermitteln, ob das vorhergesagte Spektrogramm eines Videofeeds, das zur Erstellung eines synthetischen Audioinhalts verwendet werden kann, eine gültige Darstellung eines Videofeeds ist, indem sie das vorhergesagte Spektrogramm mit einem realen Spektrogramm vergleichen, das die Grundwahrheit darstellt. Auf diese Weise kann das vorhergesagte Spektrogramm als „echt“ oder „gefälscht“ bezeichnet werden (408). Liegt die Ähnlichkeit des vorhergesagten Spektrogramms über einem vorbestimmten Schwellenwert, erkennt das Diskriminator-Netzwerk es als hinreichend „echt“, was es dem Diskriminator-Netzwerk ermöglicht, einem Vocoder anzugeben, das vorhergesagte Spektrogramm bei der Erstellung eines synthetischen Audioinhalts zu verwenden, worauf später noch näher eingegangen wird.
-
Mathematisch ausgedrückt, wird ein Label als y und die Merkmale als x dargestellt. Der Ausdruck p(y|x) bezieht sich auf „die Wahrscheinlichkeit von y bei x“. Im vorliegenden Beispiel bezieht sich der Ausdruck auf die Wahrscheinlichkeit, dass der durch ein vorhergesagtes Spektrogramm bereitgestellte Inhalt eine gültige Darstellung eines Videofeeds ist. Auf diese Weise können diskriminierende Algorithmen die Merkmale eines vorhergesagten Spektrogramms eines Frames (z. B. einer Szene) auf ein Label (d. h. „echt“ oder „gefälscht“) abbilden.
-
Bei den GANs, die in 4B durch das Generator-Netzwerk 424 dargestellt sind, handelt es sich um tiefe neuronale Netzarchitekturen, die zwei Netze beinhalten, die gegeneinander antreten (daher auch der Begriff „ gegnerisch“). GANs haben die Ressource, zu lernen, eine beliebige Datenverteilung nachzuahmen. Dementsprechend kann ein Generator-Netzwerk 424, das hier manchmal auch als Encoder-Decoder bezeichnet wird, ein Spektrogramm auf Grundlage visueller Merkmale eines Bildes eines Videofeeds erzeugen, das durch den Daten-/Feature-Block 422 dargestellt wird. Anders ausgedrückt: Anstatt ein Label bei bestimmten Merkmalen vorherzusagen (wie in diskriminativen Architekturen), kann das Generator-Netzwerk 424 Merkmale bei einem bestimmten Label vorhersagen. Wenn zum Beispiel visuelle Merkmale in einem Frame eines Videofeeds erkannt werden, kann das Generator-Netzwerk 424 die visuellen Merkmale verwenden, um ein Spektrogramm zu erzeugen. Das Generator-Netzwerk 424 ist also so konfiguriert, dass es ein vorhergesagtes Spektrogramm erzeugt, während das Diskriminator-Netzwerk 404 die Daten auf ihre Authentizität hin überprüft.
-
Mit dem vorangegangenen Überblick über ein Generator- und Diskriminator-Netzwerk wird nun auf 5 verwiesen, die ein konzeptionelles Blockdiagramm eines Beispiels für ein neuronales Netzwerk 500 beinhaltet, das ein Generator-Netzwerk 524 in Wechselwirkung mit einem Diskriminator-Netzwerk 506 umfasst. Zum Beispiel kann das Generator-Netzwerk 524 ein vorhergesagtes Spektrogramm 528 aus visuellen Merkmalen eines Videorahmens 520 erzeugen. Das vorhergesagte Spektrogramm kann zur Erstellung synthetischer Audioinhalte 530 verwendet werden.
-
In einer Ausführungsform wird vor der Erstellung des synthetischen Audioinhalts 530 ermittelt, ob das vorhergesagte Spektrogramm 528 eine gültige Darstellung der visuellen Merkmale des Videorahmens 520 ist. Zu diesem Zweck ermittelt das Diskriminator-Netzwerk 506, ob das vorhergesagte Spektrogramm 528 dem realen Inhalt 502 hinreichend ähnelt. Der reale Inhalt 502 stellt die Grundwahrheit dar, die als Datenkorpus verwendet werden kann, aus dem das Diskriminator-Netzwerk 506 lernen kann. Bei der Überprüfung des vorhergesagten Spektrogramms 528 kann das Diskriminator-Netzwerk 506 auf Grundlage des realen Referenzinhalts 502 eine Bewertung (z. B. von 0 bis 1, wobei 1 die höchste Wahrscheinlichkeit darstellt) bereitstellen, die angibt, ob das vom Generator-Netzwerk 524 erzeugte vorhergesagte Spektrogramm 528 ausreicht, um Teil einer vorbestimmten Kennzeichnung/Klassifizierung 510 zu sein, die die Ausgangsebene darstellt. Wenn ja, dann kann der synthetische Audioinhalt 530 aus dem vorhergesagten Inhalt 528 erstellt werden. Dementsprechend sind sowohl das Generator-Netzwerk 524 als auch das Diskriminator-Netzwerk 506 ständig am Lernen, optimieren aber entgegengesetzte Zielfunktionen (d.h. Verlustfunktionen).
-
6 ist ein konzeptionelles Blockdiagramm des Bild-Ton-Systems 600, das mit einer veranschaulichenden Ausführungsform übereinstimmt. Es gibt Videoinhalte 602, die von einer Rechenvorrichtung erzeugt oder von einem Speicher für Videoinhalte empfangen werden können. Zum Beispiel kann der Videoinhalt 602 ein Videofeed sein, der eine Reihe von Segmenten umfasst. Jedes Segment kann eine vorbestimmte Länge haben oder so kurz wie ein einzelner Videorahmen sein. Es gibt ein visuelles Merkmalsmodul 608, das die visuellen Merkmale eines jeden Segments (z. B. eines Frames) extrahiert. Die visuellen Merkmale können z. B. spielende Kinder, einen bellenden Hund, einen Presslufthammer, einen laufenden Motor, eine Klimaanlage, einen Krankenwagen, ein Feuer usw. beinhalten. Diese visuellen Merkmale eines Segments werden von einem Encoder 610 - Decoder 612 verwendet, der ein Generator-Netzwerk darstellt, um ein vorhergesagtes Spektrogramm 616 bereitzustellen. Das vorhergesagte Spektrogramm 616 kann wiederum von einem Vocoder 620 verwendet werden, um eine synthetische Audiowellenform 622 für das vorhergesagte Spektrogramm zu erzeugen.
-
In einer Ausführungsform gibt es ein Diskriminator-Modul 630, das so konfiguriert ist, dass es ermittelt, ob das vorhergesagte Spektrogramm eine gültige Darstellung der visuellen Merkmale 608 des Videosegments ist. In einer Ausführungsform wird diese Ermittlung ausgeführt, bevor die synthetische Audiowellenform 622 durch den Vocoder 620 erzeugt wird. Zu diesem Zweck werden die visuellen Merkmale 608 zusammen mit dem vorhergesagten Spektrogramm 616 mit einem realen Spektrogramm 640 verglichen, das ähnliche visuelle Merkmale aufweist, um zu ermitteln, ob das vorhergesagte Spektrogramm 616 eine Ähnlichkeit mit dem realen Spektrogramm 640 aufweist, die über einem vorbestimmten Schwellenwert liegt. Dementsprechend stellt das reale Spektrogramm 640 die Grundwahrheit des Inhalts dar. Wenn festgestellt wird, dass die Ähnlichkeit über dem vorbestimmten Schwellenwert liegt, kann der Vocoder 620 das vorhergesagte Spektrogramm 616 verwenden, um daraus die synthetische Audiowellenform 622 zu erzeugen.
-
In einer Ausführungsform wird ein Vocoder mit einer PixelCNN-Architektur, wie WaveNet, verwendet. Ein solches erzeugendes Modell ist zum Beispiel in der Lage, verschiedene Klänge zu erzeugen, einschließlich Sprache, die verschiedene Arten von Klängen, einschließlich menschlicher Sprache, imitieren kann. Zum Beispiel werden während einer Trainingsphase historische Daten, die reale Soundtracks mit verschiedenen visuellen Merkmalen umfassen, verwendet, um den Vocoder 620 zu trainieren. Nach Abschluss des Trainings kann der Vocoder verwendet werden, um eine realistisch klingende synthetische Audiowellenform 622 zu erzeugen. Nachdem die synthetischen Audiowellenformen 622 für jedes Segment des Videoinhalts 602 erzeugt wurden, kann jedes dieser Segmente in Serie verkettet werden, um eine Tonspur bereitzustellen, die mit dem Videofeed 602 synchronisiert ist.
-
Beispielhafter Prozess
-
Nach dem vorangegangenen Überblick über die Architektur 100, die beispielhafte Benutzereinheit 200, die beispielhaften Techniken der künstlichen Intelligenz 400A/B und 500 sowie das konzeptionelle Blockdiagramm eines Bild-zu-Ton-Systems 600 kann es hilfreich sein, nun auf hohem Niveau eine Diskussion über beispielhafte Anrufprozesse zu führen. Zu diesem Zweck ist in 7 ein veranschaulichter Prozess 700 für eine automatische Anpassung von Videoinhalten dargestellt, der einen synthetischen, im Wesentlichen dazu synchronisierten Audiostream umfasst. Prozess 800 veranschaulicht eine Trainingsphase, wobei Modelle für das Generator-Netzwerk trainiert werden können, das hier manchmal als Encoder/Decoder bezeichnet wird. Die Prozesse 700 und 800 sind jeweils als eine Ansammlung von Blöcken in einem Prozess veranschaulicht, die eine Reihenfolge von Operationen darstellen, die in Hardware, Software oder einer Kombination davon implementiert werden können. Im Zusammenhang mit Software stellen die Blöcke computerausführbare Anweisungen dar, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, die erwähnten Operationen ausführen. Im Allgemeinen können computerausführbare Anweisungen Routinen, Programme, Objekte, Komponenten, Datenstrukturen und dergleichen umfassen, die bestimmte Funktionen ausführen oder bestimmte abstrakte Typen von Daten implementieren. Die Reihenfolge, in der die Operationen beschrieben werden, ist nicht als Einschränkung zu verstehen, und eine beliebige Anzahl der beschriebenen Blöcke kann in beliebiger Reihenfolge kombiniert und/oder parallel ausgeführt werden, um den Prozess zu implementieren. Zu Diskussionszwecken werden die Prozesse 700 und 800 unter Bezugnahme auf die Architektur 100 von 1 beschrieben. Insbesondere wird davon ausgegangen, dass die Ton-Engine 132 von einem Ton-Engine-Server 120 gehostet wird, während es sich versteht, dass in anderen Ausführungsformen die Ton-Engine Teil einer Benutzereinheit sein kann (z. B. 102(1) bis 102(N)).
-
In Block 702 wird ein Videofeed von derTon-Engine 132 empfangen. In verschiedenen Ausführungsformen kann der Videoinhalt von einem Speicher für Videoinhalte 110 oder einer Benutzereinheit (z. B. 102(1) bis 102(N)) empfangen werden.
-
In Block 704 wird der Videofeed von der Ton-Engine 132 in eine Reihenfolge von Videosegmenten aufgeteilt. In einer Ausführungsform ist ein Videosegment ein einzelner Videorahmen, wodurch eine sehr feine Granularität bereitgestellt wird.
-
In Block 706 werden für jedes Videosegment die visuellen Merkmale des Videosegments extrahiert. Zum Beispiel werden ein oder mehrere Themen des Videosegments erkannt. In einigen Szenarien kann ein Videosegment ein dominantes Thema und ein oder mehrere nicht-dominante Themen beinhalten. Letztere können in der synthetischen Tonwellenform von der Ton-Engine 132 abgeschwächt werden.
-
In Block 708 wird auf Grundlage der extrahierten visuellen Merkmale ein vorhergesagtes Spektrogramm erzeugt.
-
In Block 710 wird auf Grundlage des vorhergesagten Spektrogramms von der Ton-Engine 132 eine synthetische Audiowellenform erzeugt. Zu diesem Zweck kann ein Vocoder, wie z. B. ein WaveNet-Vocoder, verwendet werden. Der Vocoder kann in einer Trainingsphase trainiert werden, indem historische Daten bereitgestellt werden, aus denen er lernen kann.
-
In Block 712 werden alle synthetischen Tonwellenformen in Serie verkettet, um eine synthetische Tonspur zu erzeugen, die mit dem Videofeed synchron ist.
-
Es wird nun auf 8 verwiesen, die ein Beispiel für eine iterative Trainingsphase beschreibt. In Block 802 empfängt die Ton-Engine 132 historische Daten 113, die einen oder mehrere Videofeeds umfassen, aus dem Speicher für historische Daten 112.
-
In Block 804 wird jeder Videofeed von der Ton-Engine 132 in eine Reihenfolge von Videosegmenten aufgeteilt.
-
In Block 806 werden für jedes Videosegment eines Videofeeds visuelle Merkmale des Videosegments von der Ton-Engine 132 extrahiert.
-
In Block 808 erzeugt die Ton-Engine 132 ein vorhergesagtes Spektrogramm auf Grundlage der extrahierten visuellen Merkmale.
-
In Block 810 wird ein reales Spektrogramm, das die Grundwahrheit darstellt, mit dem vorhergesagten Spektrogramm durch ein Diskriminator-Netzwerk der Ton-Engine 132 verglichen, um einen Grad der Ähnlichkeit zwischen den beiden Spektrogrammen zu erkennen.
-
Wenn in Block 812 ermittelt wird, dass der Ähnlichkeitsgrad über einem vorbestimmten Schwellenwert liegt (d. h. „JA“ in Bestimmungsblock 812), wird das vorhergesagte Spektrogramm als eine gültige Darstellung der extrahierten visuellen Merkmale erkannt. Das Spektrogramm kann dann verwendet werden, um synthetischen Ton für das Segment zu erzeugen (d. h. Block 824). Wird jedoch ermittelt, dass der Ähnlichkeitsgrad nicht über dem vorbestimmten Schwellenwert liegt (d. h. „NEIN“ im Bestimmungsblock 812), wird der Prozess mit Block 816 fortgesetzt, wobei das vorhergesagte Spektrogramm als falsche Darstellung erkannt und daher zurückgewiesen wird. Der iterative Prozess kann dann mit Block 808 fortgesetzt werden, wobei ein neues vorhergesagtes Spektrogramm erzeugt wird. Je mehr Training bereitgestellt wird, desto genauer werden die hier besprochenen Modelle.
-
Beispielhafte Rechenplattform
-
Wie oben besprochen, können Funktionen, die sich auf die automatische Anpassung eines Videostreams beziehen, um einen synthetischen Tonfluss einzuschließen, der im Wesentlichen dazu synchronisiert ist, unter Verwendung einer oder mehrerer Rechenvorrichtungen ausgeführt werden, die zur Datenkommunikation über drahtlose oder drahtgebundene Kommunikation verbunden sind, wie in 1 gezeigt. Eine beispielhafte Benutzereinheit 200 in Form einer mobilen Einheit wurde im Zusammenhang mit 2 erörtert. 9 veranschaulicht als funktionales Blockdiagramm eine Computer-Hardwareplattform, wie z. B. eine Benutzereinheit oder einen Ton-Engine-Server 120, der mit verschiedenen Netzwerkkomponenten kommunizieren kann.
-
Die Computerplattform 900 kann eine Zentralverarbeitungseinheit (CPU) 904, ein Festplattenlaufwerk (HDD) 906, einen Direktzugriffspeicher (RAM) und/oder einen Nur-LeseSpeicher (ROM) 908, eine Tastatur 910, eine Maus 912, eine Anzeige 914 und eine Kommunikationsschnittstelle 916 beinhalten, die mit einem Systembus 902 verbunden sind.
-
In einer Ausführungsform hat die Festplatte 906 Ressourcen, die das Speichern eines Programms beinhalten, das verschiedene Prozesse, wie die Ton-Engine 940, in der hier beschriebenen Weise ausführen kann. Die Ton-Engine 940 kann aus verschiedenen Modulen bestehen, die so konfiguriert sind, dass sie unterschiedliche Funktionen ausführen. Zum Beispiel kann es ein Modul 942 für visuelle Merkmale geben, das so konfiguriert ist, dass es visuelle Merkmale aus einem Segment (z. B. einem Frame) eines Videofeeds extrahiert. Es gibt ein Encoder/Decoder-Modul 944, das auf Grundlage der visuellen Merkmale, die aus einem Frame eines Videofeeds extrahiert wurden, ein vorhergesagtes Spektrogramm erstellt. Es gibt ein Vocoder-Modul 946, das das vorhergesagte Spektrogramm verwendet, um daraus ein synthetisches Audio-Inhaltssegment zu erzeugen. Es gibt ein Diskriminator-Modul 948, das ermittelt, ob das vorhergesagte Spektrogramm eine genaue Darstellung der visuellen Merkmale des Videorahmens ist. Es kann ein Interaktionsmodul 956 vorhanden sein, das mit einer oder mehreren Rechenvorrichtungen und Datenbanken interagiert, z. B. dem Speicher für Videoinhalte 110, dem Speicher für historische Daten 112 und den Benutzereinheiten 102(1) bis 102(N). Während die Module der Ton-Engine 940 oben im Zusammenhang mit der Festplatte 906 beschrieben wurden, ist zu beachten, dass eine oder mehrere Funktionen in Hardware ausgeführt werden können.
-
In einer Ausführungsform kann ein Programm, wie z. B. Apache™, zum Betrieb des Systems als Webserver gespeichert werden. In einer Ausführungsform kann auf der Festplatte 906 eine ausführende Anwendung gespeichert werden, die ein oder mehrere Bibliotheks-Softwaremodule beinhaltet, wie z. B. diejenigen für das Java™ Runtime Environment-Programm zur Verwirklichung einer JVM (Java™ Virtual Machine).
-
Zusammenfassung
-
Die hier dargestellten Komponenten, Schritte, Merkmale, Gegenstände, Nutzen und Vorteile sind lediglich veranschaulichend. Weder sie noch die diesbezüglichen Erörterungen sind dazu bestimmt, den Schutzumfang einzuschränken. Obwohl hier verschiedene Vorteile erörtert wurden, umfassen nicht alle Ausführungsformen notwendigerweise alle Vorteile. Sofern nicht anders angegeben, sind alle Messungen, Werte, Nennwerte, Positionen, Stärken, Größen und andere Spezifikationen, die in dieser Spezifikation, einschließlich der folgenden Ansprüche, aufgeführt sind, nicht exakt, sondern nur annähernd. Sie sollen einen angemessenen Bereich haben, der mit den Funktionen, auf die sie sich beziehen, und mit dem, was auf dem Gebiet, auf das sie sich beziehen, üblich ist, übereinstimmt.
-
Es sind auch zahlreiche andere Ausführungsformen denkbar. Diese beinhalten Ausführungsformen, die weniger, zusätzliche und/oder andere Komponenten, Schritte, Merkmale, Gegenstände, Nutzen und Vorteile aufweisen. Dies beinhaltet auch Ausführungsformen, bei denen die Komponenten und/oder Schritte anders angeordnet und/oder geordnet sind.
-
Aspekte der vorliegenden Offenlegung werden hier unter Bezugnahme auf Ablaufdiagramme und/oder Blockdiagramme eines Verfahrens, einer Vorrichtung (eines Systems) und von Computerprogrammprodukten gemäß den Ausführungsformen der vorliegenden Offenlegung beschrieben. Es versteht sich, dass jeder Schritt der veranschaulichten Ablaufdiagramme und/oder Blockdiagramme und Kombinationen von Blöcken in den Anrufablaufdiagrammen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden kann.
-
Diese computerlesbaren Programmanweisungen können einem Prozessor eines Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Anrufablaufdiagramm-Prozess und/oder im Blockdiagramm-Block oder in den Blöcken angegebenen Funktionen/Arbeiten schaffen. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Vorrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit den darin gespeicherten Anweisungen einen Herstellungsgegenstand umfasst, der Anweisungen beinhaltet, die Aspekte der Funktion/des Vorgangs implementieren, die in dem Anrufablaufdiagramm- und/oder Blockdiagrammblock oder den Blocks angegeben sind.
-
Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Vorrichtung geladen werden, um zu bewirken, dass eine Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt werden, die Funktionen/Abläufe implementieren, die im Ablaufdiagramm des Anrufs und/oder im Blockdiagrammblock oder in den Blocks angegeben sind.
-
Die Flussdiagramme und Blockdiagramme in den Figuren veranschaulichen die Architektur, Funktionalität und Operation möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenlegung. In dieser Hinsicht kann jeder Block in den Ablaufdiagrammen oder Blockdiagrammen ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Implementierung der angegebenen logischen Funktion(en) umfassen. In einigen alternativen Implementierungen können die in den Blöcken angegebenen Funktionen in einer anderen als der in den Figuren zu beachtenden Reihenfolge erfolgen. So können beispielsweise zwei nacheinander gezeigte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es ist auch zu beachten, dass jeder Block in den Ablaufdiagrammen und/oder der Ablaufdiagramm-Darstellung sowie die Kombinationen von Blöcken in den Ablaufdiagrammen und/oder der Ablaufdiagramm-Darstellung durch Spezial-Computerbasierte Systeme implementiert werden können, die die angegebenen Funktionen oder Vorgänge ausführen oder Kombinationen von Spezial-Computern und Anweisungen ausführen.