-
GEBIET DER ERFINDUNG
-
Ausführungsbeispiele der vorliegenden Erfindung stehen in Zusammenhang mit Audiodatenverarbeitung, und insbesondere mit der geometrisch-akustischen Datenverarbeitung für Computeranwendungen, wie z.B. Virtual-Reality-Anwendungen.
-
HINTERGRUND DER ERFINDUNG
-
Während die virtuelle Realität (VR) aufregende Möglichkeiten in verschiedenen Bereichen wie der Erstellung von Inhalten und der Übertragung von Sport, Unterhaltung und Spielen eröffnet, bringen VR-Anwendungen auch neue Herausforderungen mit sich, wenn es darum geht, einer breiten Basis von Nutzern immersive Erfahrungen zu bieten.
-
Geometrisch-akustische (GA) Verarbeitung ist die Simulation von Schallstrahlausbreitung in einem bestimmten räumlichen Modell (z.B. eine Umgebung in einer virtuellen Szene in einem VR-Spiel), die z.B. durch eine GA-Verarbeitungspipeline ausgeführt werden kann. Basierend auf geometrischen Informationen über die Umgebung kann die GA-Verarbeitung automatisch bestimmen, wie sich die Schallwellen in der Umgebung ausbreiten und abprallen und einen Charakter oder einen anderen Objekttyp in der Umgebung erreichen (z.B. der in Echtzeit von einem Spieler gesteuert wird), wodurch räumliche 3D-Audiodaten erzeugt werden.
-
In der Regel verarbeitet eine GA-Verarbeitungspipeline die Geometrie einer virtuellen Szene zusammen mit der Kenntnis von Schallquellen und einem Empfängerstandort unter Verwendung eines Raytracing-Algorithmus und eines Audio-Rendering-Algorithmus. Der Ray-Tracing-Algorithmus wird zur Berechnung eines räumlichen akustischen Modells und zur Erzeugung von Impulsantworten (IRs) verwendet, die die Verzögerungen und die Dämpfung von Schallwellen kodieren, die sich von einem Schallquellenobjekt über verschiedene Ausbreitungswege, die Transmission, Reflexion und Beugung repräsentieren, zu einem Schallempfängerobjekt ausbreiten. Strahlen (oder Schallwellen) werden verfolgt, um eine Impulsantwort zu erzeugen, die das zeitliche Abklingen der Audioenergie am Ort des Schallempfängers darstellt. Immer wenn sich die Schallquelle, der Empfänger oder ein anderes Objekt in der Szene bewegt, müssen diese Ausbreitungspfade neu berechnet werden - manchmal in regelmäßigen Abständen. Der Audio-Rendering-Algorithmus wird verwendet, um Audiosignale durch Faltung der Eingangs-Audiosignale mit den IRs zu erzeugen. In einer virtuellen Umgebung, wie z.B. in einem Spiel, in dem die akustische Geometrie der Szene zusammen mit den Positionen einer Schallquelle und eines Schallempfängers bekannt ist, wird die GA-Verarbeitung angewendet, um raumbezogene Audiodaten zu erzeugen.
-
Es gibt zahlreiche Bemühungen, GA-Audiodaten in rechenintensiven Spielen zu verwenden, um ein immersives VR-Erlebnis zu ermöglichen. Aber diese Bemühungen beschränken sich auf die Anwendung von GA nur auf In-Game-Audio, z.B. Audio, das vom Anwendungsprogramm generiert wird. In bestehenden Systemen kann eine verbale Interaktion zwischen mehreren Spielern, die mit Mikrofonen erfasst wird, gleichzeitig mit dem Spiel gerendert werden. Allerdings kann der von den Mikrofonen aufgenommene Schall nur einfach und unbearbeitet wiedergegeben werden und nicht in die virtuellen Szenen immersiv integriert, sondern vielmehr losgelöst von diesen wiedergegeben werden. Multiplayer-VR-Anwendungen können durchgeführt werden, indem die Interaktionen der Spieler und die Anwendung immersiver gestaltet werden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Diese Erfindung stellt einen Mechanismus zur Verfügung, mit dem an den Mikrofonen der Benutzer aufgenommenes reales Audiomaterial in das anwendungsinterne Audiomaterial integriert werden kann, wobei ein anwendungsinternes geometrisch-akustisches (GA) Modell auf das vom Mikrofon aufgenommene Audiomaterial angewendet wird.
-
Die neuartige Lösung stellt eine Möglichkeit dar, die VR-Immersion der Spieler in einer Multiplayer-Spielumgebung zu erhöhen, indem die Anwendung von GA-Verarbeitung auf Mikrofondaten erweitert wird. In einer oder mehreren Ausführungsbeispiele beinhaltet die GA-Verarbeitung eine Modellierung einer Simulation der Schallstrahlausbreitung in einer bestimmten Umgebung. GA bestimmt mit Informationen über die Geometrie des Raumes, wie die Schallwellen in der Umgebung abprallen und den Benutzer erreichen, wodurch eine 3D-Audioräumlichkeit erreicht wird.
-
Wenn in einer oder mehreren Ausführungsbeispiele ein Benutzer/Spieler einer Multiplayer Content-Streaming-Anwendung durch ein Mikrofon spricht, wird die Stimme durch Simulation der für eine virtuelle Szene konfigurierten GA-Eigenschaften verarbeitet und dabei mit szenenspezifischen, räumlichen Audioeffekten versehen. Wenn die GA-verarbeitete Stimme z.B. durch einen Lautsprecher wiedergegeben wird, kann ein anderer Benutzer sie so hören, als ob der Schall sich entsprechend der Objekte in der Szenerie und der Geometrie in der virtuellen Szene ausgebreitet hat. Dieser Mechanismus kann die Unterhaltung der Benutzer vorteilhaft in der gleichen virtuellen Welt positionieren, genau wie ein gerendertes Spielaudio, und so dem Benutzer ein verbessertes immersives VR-Erlebnis bieten.
-
Ausführungsbeispiele der vorliegenden Offenlegung beinhalten u. a. das Falten von mit Mikrofon aufgenommenen Audiodaten mit einer für einen Tonkanal in einer virtuellen Szene charakteristischen Impulsantwort (IR), um Audio-Frames für ein Rendering zu erzeugen. Insbesondere wird die IR durch Verwendung einer Schallausbreitungssimulation und Head-Related Transfer Functions (HRTF) basierend auf den Positionen (einschließlich Orientierungen und Orte) der Schallquellen- und Schallempfängerobjekten in einer bestimmten Szene erzeugt. In einigen Ausführungsbeispiele arbeitet ein Multiplayer-Spielsystem in einem Client/Server-Modell, in dem mehrere Spielkonsolen (z.B. eine für jeden Spieler) als Clients mit einem gemeinsamen Server agieren. Jeder Client-Computer aktualisiert regelmäßig Informationen zur GA-Verarbeitung an den Server, wie z.B. die Eingaben des Spielers, die neue Kopfposition des Spielers oder die Bewegung, die von einem Head Mounted Display (HMD) erfasst wird, sowie die Stimme des Spielers, die von einem Mikrofon aufgenommen wird. Nach Erhalt der Informationen führt der Server eine GA-Verarbeitung durch, um die aktualisierten Positionen aller Spieler zu bestimmen, die sich beispielsweise in neue Positionen der Objekte in der virtuellen Szene übersetzen lassen. Der Server sendet dann eine autoritative Version dieser Positionen an alle Clients. Außerdem werden die vom Mikrofon aufgenommenen Audiodaten vom Client der Schallquelle über das Netzwerk an alle anderen Spieler übertragen. Auf diese Weise kann jeder Client-Computer Informationen über die Standorte sowie die Audiodaten aller anderen Spieler in Echtzeit empfangen.
-
Mit den Informationen anderer Spieler sowie der Geometrie, dem Standort und der Richtung des lokalen Spielers berechnet ein Client-Computer Impulsantworten (IRs), z.B. mit Hilfe einer Schallausbreitungssimulation und einer auf einer dynamischen Head-Related-Transfer-Function (HRTF) basierenden Hörer-Richtcharakteristik (engl. listener directivity). Entsprechend den Ausführungsbeispiele der vorliegenden Offenbarung werden die IRs mit den in Echtzeit vom Mikrofon erfassten Daten gefaltet, um vorteilhaft Audio-Frames für ein Rendern über Lautsprecher oder Kopfhörer, die mit dem Client-Computer verbunden sind, zu erzeugen. Die IRs können später in Reaktion auf Änderungen der Hörer- und Quellenpositionen neu berechnet werden. Die Stimme eines anderen Spielers wird in der Wahrnehmung des lokalen Spielers vorteilhaft genau in den Kontext der virtuellen Szene gesetzt und taucht so in die virtuelle Realität ein. Damit können sowohl die verbalen Interaktionen der Spieler als auch die durch das Spiel oder die Anwendung generierten Audiodaten VR-immersiv wiedergegeben werden.
-
Figurenliste
-
- Ausführungsbeispiele der vorliegenden Erfindung sind exemplarisch und nicht einschränkend in den Figuren der beiliegenden Zeichnungen dargestellt, in denen sich gleiche Bezugszeichen auf ähnliche Elemente beziehen.
- 1 ist ein Blockdiagramm, das ein exemplarisches VR-Streaming-System illustriert, das für ein Rendering von mit Mikrofon aufgenommenen Audiosignalen in einer immersiven VR-Umgebung konfiguriert ist, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
- 2 illustriert den Datenfluss in einem exemplarischen VR-System, das konfiguriert ist, um eine GA-Simulation auf mit Mikrofon aufgenommene Audiosignale anzuwenden, um bei einem Client einen immersiven VR-Effekt zu erzeugen, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
- 3 illustriert den Datenfluss in einem weiteren exemplarischen VR-System, konfiguriert ist, um eine GA-Simulation auf mit Mikrofon aufgenommene Audiosignale anzuwenden, um einen immersiven VR-Effekt auf einem Server zu erzeugen, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
- 4 ist ein Flussdiagramm, das ein exemplarisches computerimplementiertes Verfahren zum Hinzufügen von immersiven VR-Effekten zu mit Mikrofon aufgenommen Audiosignalen, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
- 5 ist ein Blockdiagramm, das ein exemplarisches Rechengerät zeigt, das VR-immersive Audio-Frames für ein Rendering aus über Mikrofon aufgenommenen Audiodaten erzeugen kann, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Im Folgenden wird im Einzelnen auf die bevorzugten Ausführungsbeispiele der vorliegenden Erfindung eingegangen, die in den beiliegenden Zeichnungen exemplarisch dargestellt sind. Obwohl die Erfindung in Verbindung mit den bevorzugten Ausführungsbeispielen beschrieben wird, ist es nicht beabsichtigt, die Erfindung auf diese Ausführungsbeispiele zu beschränken. Im Gegenteil, die Erfindung soll Alternativen, Modifikationen und Äquivalente abdecken, die im Sinne und des Umfangs der Erfindung, wie in den beigefügten Ansprüchen definiert, enthalten sein können. Darüber hinaus werden in der folgenden ausführlichen Beschreibung von Ausführungsbeispiele der vorliegenden Erfindung zahlreiche spezifische Einzelheiten dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Eine fachkundige Person wird jedoch erkennen, dass die vorliegende Erfindung auch ohne diese spezifischen Details ausgeführt werden kann. In anderen Fällen sind bekannte Methoden, Verfahren, Komponenten und Schaltungen nicht detailliert beschrieben worden, um Aspekte der Verkörperungen der vorliegenden Erfindung nicht unnötig zu verdecken.
-
Notation und Nomenklatur:
-
Einige Teile der folgenden detaillierten Beschreibungen werden in Form von Verfahren, Schritten, logischen Blöcken, Verarbeitung und anderen symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines Computerspeichers dargestellt. Diese Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um die Inhalte ihrer Arbeit am effektivsten an andere Fachleute weiterzugeben. Eine Prozedur, ein vom Computer ausgeführter Schritt, ein logischer Block, ein Prozess usw. ist hier und im Allgemeinen als eine selbstkonsistente Folge von Schritten oder Anweisungen zu verstehen, die zu einem gewünschten Ergebnis führt. Die Schritte sind solche, die physikalische Manipulationen physikalischer Größen erfordern. In der Regel, wenn auch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die in einem Computersystem gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich manchmal als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder ähnliches zu bezeichnen, hauptsächlich im Hinblick auf den allgemeinen Gebrauch.
-
Es ist jedoch zu berücksichtigen, dass alle diese und ähnliche Begriffe mit den entsprechenden physischen Größen zu verbinden sind und lediglich bequeme Kennzeichnungen für diese Größen sind. Sofern nicht ausdrücklich anders aus den folgenden Ausführungen hervorgeht, sollen sich in der gesamten vorliegenden Erfindung Diskussionen, in denen Begriffe wie „Rendering“ oder „Verarbeitung“ oder „Zugriff“ oder „Zugriff“ oder „Durchführung“ oder „Ausführung“ oder „Umwandlung“ oder „Bestimmung“ oder ähnliches verwendet werden, auf die Wirkung und die Prozesse einer integrierten Schaltung beziehen, oder ein ähnliches elektronisches Rechengerät, das Daten, die als physikalische (elektronische) Größen in den Registern und Speichern des Computersystems repräsentiert werden, manipuliert und in andere Daten umwandelt, die ähnlich als physikalische Größen in den Speichern oder Registern des Computersystems oder anderen derartigen Geräten zur Speicherung, Übertragung oder Anzeige von Informationen repräsentiert werden.
-
ANWENDUNG GEOMETRISCHER AKUSTIK AUF MIKROFONDATEN IN MULTIPLAYER-SPIELEN FÜR IMMERSIVE VIRTUELLE REALITÄT (VR)
-
In einer Virtual Reality (VR)-Umgebung sind positionale Audiohinweise (Positional Audio Cues) sehr wichtig, um einen raumbezogenen akustischen Effekt zu erzeugen und somit ein realistisches und immersives Virtual Reality (VR)-Erlebnis für den Benutzer zu ermöglichen. Ausführungsbeispiele der vorliegenden Offenbarung beinhalten ein Verfahren zur raumbezogenen Verarbeitung von mit Mikrofon aufgenommenem Schall aus der realen Welt entsprechend einer VR-Umgebung. Wenn in einem Spiel mehrere Spielcharaktere innerhalb einer VR-Umgebung in unmittelbarer Nähe zueinander positioniert sind, wird eine geometrische Akustik (GA) Modellierung angewendet, um den mit Mikrofonen aufgenommenen Schall vorteilhaft in Audiodaten mit einem immersiven VR-Effekt umzuwandeln. Durch die Hinzufügung von positionalen Hinweisen und geometrischer Akustik zu den über das Mikrofon aufgenommenen Audiodaten können die Spieler während der verbalen Kommunikation mit den anderen Spielern verbesserte, immersive VR-Erlebnisse erfahren.
-
Die GA-Modellierung ist die Simulation von Schallstrahlausbreitung in einer bestimmten räumlichen Umgebung (z.B. einer Umgebung in einer virtuellen Szene), die z.B. durch eine GA-Verarbeitungspipeline ausgeführt werden kann. Basierend auf geometrischen Informationen über die VR-Umgebung bestimmt die GA-Verarbeitung, wie sich die Schallwellen ausbreiten und in der Umgebung abprallen, bis sie einen Charakter oder ein Objekt (z.B., das von einem Spieler in Echtzeit gesteuert wird) erreichen, und liefert so raumbezogene 3D-Audiodaten. Kopfbewegungen eines Hörers (z.B. ein simuliertes Hörerobjekt) innerhalb einer VR-Umgebung können auch die Art und Weise verändern, wie die Audiodaten vom Hörer wahrgenommen werden soll. Ein Aspekt der hier beschriebenen Erfindung ist die Erzeugung einer Impulsantwort (IR) zur dynamischen Charakterisierung eines Tonkanals für die Ausbreitung (einschließlich Übertragung, Reflexion und Beugung etc.) von mit Mikrofon aufgenommenem Audiodaten und die Erzeugung von Audio-Frames durch Faltung der IR mit dem mit Mikrofon aufgenommenen Audio. Da der Tonkanal je nach Position der Schallquelle und des Schallempfängers sowie den geometrischen Gegebenheiten der virtuellen Szene variieren kann, kann die Impulsantwort durch die Verwendung einer Schallausbreitungssimulation und einer dynamischen HRTF-basierten Hörer-Richtcharakteristik erzeugt werden.
-
Insbesondere stellen Ausführungsbeispiele der vorliegenden Offenbarung Virtual-Reality (VR)-Audio-Rendering-Systeme und -Methoden in einem Multiplayer-Spielsystem zur Verfügung, bei dem mehrere Client-Geräte regelmäßig aktualisierte Positionsinformationen und von Mikrofonen aufgenommenen Schall aus der realen Welt an den Server senden. Dementsprechend führt der Server eine GA-Verarbeitung durch, um die aktualisierten Positionen der Objekte in der virtuellen Szene zu bestimmen, und sendet eine autoritative Version dieser Positionen und des mit dem Mikrofon aufgenommenen Audios an alle Clients. So erhält jeder Client-Computer in Echtzeit Informationen über die Standorte sowie Audiosignale aller anderen Spieler. An einem bestimmten Client-Computer kann der Client-Computer, basierend auf den Positions- und Audioinformationen der anderen Spieler, der Geometrie der VR-Szene und der Position und Ausrichtung des lokalen Spielers, Impulsantworten (IRs) berechnen und die IRs mit den in Echtzeit von den Mikrofonen erfassten Daten zu Audio-Frames für das Rendern falten.
-
Gemäß Ausführungsbeispiele der vorliegenden Offenbarung, wird die verbale Kommunikation eines anderen Spielers, so wie sie vom lokalen Spieler wahrgenommen wird, in den Kontext der virtuellen Szene gesetzt. Zum Beispiel verbessert das Hinzufügen von positionalen Hinweisen und geometrisch-akustischen Effekten zu den Chat-Audiodaten die Erfahrungen der Spieler, da ein Hörer-Spieler in der Lage ist, die Position des Sprechers-Spielers in der virtuellen Szene auf der Grundlage dessen, was er oder sie während der verbalen Interaktion hört, abzuleiten. Dadurch werden die Spielerinteraktionen VR-immersiv, genauso wie die vom Spiel oder der Anwendung generierten Audiodaten.
-
Die vorliegende Offenbarung kann in einem Cloud Content Streaming System, einem Client-Server Content Streaming System, einer individuellen Spielkonsole oder individuellem Spielsystem oder jedem anderen geeigneten System, das eine GA-Simulation zur Generierung von räumlichen Audiodaten ausnutzt, angewendet werden. 1 ist ein Blockdiagramm, das ein exemplarisches VR-Streaming-System 100 illustriert, das so konfiguriert ist, dass es mit Mikrofon aufgenommene Audiodaten in einer immersiven VR-Umgebung rendert, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung.
-
Vereinfacht dargestellt umfasst das VR-Streaming-System 100 ein Server-Gerät 110 und eine Vielzahl von Client-Geräten, die über ein oder mehrere Netzwerke gekoppelt sind, z.B. Client 1 (120) und Client 2 (130). Ein VR-Spiel kann auf dem Server 110 ausgeführt werden, und es werden Video- und Audio-Frames generiert und zum Rendern an die entfernten Clients 120 und 130 gestreamt. Jedes Client-Gerät ist mit einem Audio-Wiedergabesystem (z.B. Lautsprecher 141 oder 151), einem am Kopf des Benutzers tragbaren Gerät (HMD, z.B. 152 oder 152), das die Kopfposition und Bewegung des Benutzers erfassen kann, einem Mikrofon (z.B. 143 oder 153) und einem Controller oder einem anderen Eingabegerät (z.B. 144 oder 154) zum Empfang von Benutzereingaben gekoppelt. Jedes Mikrofon kann die Stimme eines Spielers und andere reale Umgebungsgeräusche aufnehmen und das Audiosignal an das zugehörige Client-Gerät und weiter an den Server 110 senden.
-
Sofern nicht anders angegeben, bezieht sich eine Position oder Positionsinformation in Bezug auf einen Spieler oder ein Rechengerät auf eine Position und Orientierung eines Objekts in einer VR-Umgebung, die der Kontrolle durch den Spieler oder das Gerät unterliegt, wie z.B. ein Schallquellenobjekt, ein Schallempfängerobjekt oder eine andere Art von Objekt. Die Position des Objekts in der VR-Umgebung kann von einem Spieler-Benutzer über ein Eingabegerät (z.B. einen Game-Controller) und/oder die Kopfposition des Spielers in Bezug auf das zugehörige Soundsystem gesteuert werden. Eine Veränderung der Position des Objektes bewirkt eine Änderung des geographisch-akustischen Modells. Es ist zu beachten, dass die vorliegende Offenbarung nicht auf eine bestimmte Art von Gerät beschränkt ist, das Positionsinformationen erkennen und liefern kann, sondern dass jedes einer Vielzahl bekannter Geräte verwendet werden kann. So können die Positionsinformationen beispielsweise von einem HMD, einem Game-Controller, einer Tastatur, tragbaren Sensoren usw. stammen. In diesem Beispiel können die Kopfbewegungen eines Benutzers und die Eingabe des Gamecontrollers die Position eines virtuellen Objekts verändern und dadurch die geometrisch-akustischen Eigenschaften der VR-Umgebung verändern.
-
Zum Beispiel kann jedes Client-Gerät (120 oder 130) während des Betriebs Positions-Update-Informationen (einschließlich Positions- und Orientierungsinformationen z.B.) vom zugehörigen HMD und dem Game-Controller empfangen und an den Server weiterleiten. Der Server 110 ist so konfiguriert, dass er die Spielanwendung ausführt, Audio-und Videoframes auf der Grundlage der aktualisierten Positionsinformationen generiert und Audio im Auftrag der Clients rendert.
-
Insbesondere umfasst der Server 110 eine GA-Verarbeitungspipeline 150 mit einem Raytracing-Modul 151 und einem Audio-Rendering-Modul 152. Das Raytracing-Modul 151 kann ein räumlich-akustisches Modell berechnen und IRs erzeugen, die die Verzögerungen und die Dämpfung von Schallwellen kodieren. Schallwellen, die sich von einem Schallquellenobjekt zu einem Schallempfängerobjekt ausbreiten, breiten sich auf einer Vielzahl von Ausbreitungspfaden aus, die verschiedene Sequenzen von Transmission, Reflexionen, Beugungen und Brechungen an den Oberflächen der VR-Umgebung repräsentieren. Immer wenn sich ein Objekt in der virtuellen Szene bewegt, können diese Ausbreitungswege neu berechnet werden, um nachfolgende Audio-Frames für das Rendering zu erzeugen.
-
Das Audio-Rendering-Modul 152 kann Audio-Frames erzeugen, indem es die Eingangs-Audiodaten mit den IRs faltet. Dabei werden Schallwellenstrahlen verfolgt, um eine IR zu erzeugen, das die zeitliche und örtliche Verzögerung der Audioenergie des Schallempfänger-Objektes charakterisiert. Aufgrund der Geometrie der VR-Szene zusammen mit den Positionen einer Schallquelle und eines Empfängers wird eine GA-Simulation angewendet, um raumbezogene VR-Audioframes zu erzeugen. Die von der GA-Processing-Pipeline 150 durchgeführte Audioverarbeitung kann eine Framenummer oder einen Zeitstempel verwenden, um die Zeit anzugeben, zu der das verarbeitete Audio abgespielt werden muss, und auch um die entsprechende Position zu korrelieren.
-
Gemäß Ausführungsbeispielen der vorliegenden Offenbarung wird ein mit Mikrofon aufgenommenes Audiosignal durch GA-Modellierung einer virtuellen Umgebung verarbeitet, d.h. in Audiodaten umgewandelt, die einen geometrisch-akustischen Effekt und positionale Hinweise bereitstellen. In dem illustrierten Beispiel ist die GA-Pipeline 150 des Servers dafür verantwortlich, eine GA-Modellierung anzuwenden, um Audio-Frames für das integrierte Spiele-Audiosignal zu erzeugen, während eine Client-Audio-Engine dafür verantwortlich ist, eine GA-Modellierung anzuwenden, um Audio-Frames für die vom Mikrofon aufgenommene reale Audiodaten des lokalen Spielers oder eines anderen Mitspielers zu erzeugen. In einigen anderen Ausführungsbeispiele ist die GA-Pipeline 150 des Servers jedoch so konfiguriert, dass sie Audio-Frames für über das Mikrofon aufgenommene Audiosignale erzeugt und dann die Audio-Frames zum Abspielen an ein Client-Gerät sendet.
-
Wie gezeigt, verfügt das Client-Gerät 120 über eine lokale GA-Audio-Engine 121, die in der Lage ist, eine Impulsantwort (IR) zu berechnen, z.B. basierend auf der Positionsinformation der Spieler und unter Verwendung einer Schallausbreitungssimulation und einer dynamischen HRTF-basierten Hörer-Richtcharakteristik. Es können mehrere IRs für eine VR-Szene erzeugt werden, z.B. kann eine IR für jede Kombination aus einem Objekt und seinem Steuerspieler erzeugt werden. Die lokale GA Audio-Engine 121 faltet dann eine IR mit dem entsprechenden vom Mikrofon aufgenommenen Audio, um Audio-Frames für ein Rendering durch einen Lautsprecher oder einen Kopfhörer zu erzeugen, der mit dem Client-Gerät 120 verbunden ist. Die IRs können entsprechend den von den Mikrofonen und HMDs erkannten Änderungen in interaktiven Abständen neu berechnet werden.
-
In einigen Ausführungsbeispiele kann ein hörerbasierter Raytracing-Algorithmus zur Erzeugung der IRs verwendet werden. Beim hörerbasierten Ansatz werden die Strahlen von Schallwellen so behandelt, als stammten sie von einem Hörer (oder einem Schallempfänger) und nicht von einer Schallquelle. Mehrere IRs, eine für jeden Spieler, können mit einem einzigen Raytracing-Durchlauf erzeugt werden, und die IRs können dann auf vorteilhafte Weise mit dem Mikrofon-Audiosignal des jeweiligen Spielers gefaltet werden.
-
Es ist zu beachten, dass jeder beliebige andere geeignete geometrische Audioverarbeitungsalgorithmus oder -methode angewendet werden kann, um das vom Mikrofon aufgenommene Audiosignal in eine VR-Umgebung einzufügen, ohne dass der Umfang der vorliegenden Offenlegung überschritten wird.
-
Die Positionsinformationen zu einem Spieler und die über das Mikrofon aufgenommenen Audiodaten können von einem Client gesammelt und über den Server an andere Peer-Clients übertragen werden. Zum Beispiel kann jedes Client-Gerät periodisch einen Stream von Paketen an den Server senden, wobei jedes Paket eine vereinfachte Aktualisierung der Eingaben des Spielers, die über den Game-Controller empfangen werden, die neue Kopfposition oder Bewegung des Spielers, die von einem Head Mounted Display (HMD) erfasst wird, und die von den Mikrofonen aufgenommene Stimme des Spielers enthält. Nachdem die Eingangspakete empfangen wurden, führt der Server eine GA-Simulation durch, um die neuen Positionen aller relevanten Objekte in der Szene zu bestimmen, und sendet Pakete mit einer autoritativen Version dieser Positionen an alle Clients. Auf diese Weise kann jeder Client-Computer sowohl Positionsinformationen als auch Audiodaten aller anderen Spieler in Echtzeit empfangen. Es kann jedoch jeder andere bekannte Mechanismus verwendet werden, um Positionsinformationen und von Mikrofonen erfasste Audiodaten zwischen den mehreren Spielern in einem Spiel zu kommunizieren, ohne dass der Umfang der vorliegenden Offenlegung überschritten wird.
-
2 illustriert den Datenfluss in einem exemplarischen VR-System 200, das konfiguriert ist, um eine GA-Simulation bei einem Client anzuwenden, um einen immersiven VR-Effekt zu einem mit Mikrofon aufgenommenen Audiosignal hinzuzufügen, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Das VR-System 200 enthält einen Server 210, der so konfiguriert ist, dass er Audio- und Videoframes einer VR-Anwendung an Client 1 (220) und Client 2 (230) über Netzwerke in einem Multiplayer-VR-Spiel streamt. Client 1 (220) ist mit Spieler 1 assoziiert und Client 2 (230) wird von Spieler 2 gesteuert. Gemäß den Ausführungsbeispielen der vorliegenden Offenbarung wird, wenn ein Spieler spricht, seine oder ihre Stimme von einem Mikrofon aufgenommen und dann gemäß Ausführungsbeispielen der vorliegenden Offenbarung verarbeitet, um einen geometrisch-akustischen Effekt hinzuzufügen. Wenn sie von einem Audio-Rendering-Gerät abgespielt wird, bietet die verarbeitete verbale Kommunikation zwischen den Spielern ein verbessertes, immersives VR-Erlebnis für die Spieler, da die Zuhörer die Stimme so wahrnehmen können, wie sie sich in der virtuellen Umgebung des Spiels ausbreitet. So können verbale Interaktionen zwischen den Spielern in Echtzeit vorteilhaft immersiver gestaltet werden.
-
Zum Beispiel erhält Client 2 (230) während einer Instanz oder Session eines Spiels von einem gekoppelten HDM oder einem Gamecontroller Positionsinformationen bezüglich Spieler 2 und empfängt ein Audiosignal, das von einem Mikrofon wie abgebildet aufgenommen wurde. Audiosignal und die Positionsinformationen (oder deren vereinfachte Aktualisierung), die sich auf Client 2 (230) beziehen, werden über ein Paket an den Server 210 übertragen. Mit dem bereitgestellten Eingangspaket wendet die GA-Verarbeitungspipeline 250 im Server 210 eine GA-Simulation an, um die neuen Positionen in Bezug auf alle Clients in der VR-Umgebung zu bestimmen (z.B. die Subjekte oder Objekte, die von den jeweiligen Clients gesteuert werden oder diese repräsentieren) und sendet eine autoritative Version dieser Positionen an alle Clients. Die über das Mikrofon erfassten Daten werden auch über das Netzwerk an alle anderen Spieler übertragen.
-
Sobald Client 1 (220) die autoritative Version der Positionsinformationen und die vom Client 2 (230) stammenden Mikrofondaten erhält, erzeugt die Audio Engine 240 im Client 1 (220) mit Hilfe des IR-Generierungsmoduls 241 eine IR für einen Tonkanal. Das Modul 241 nutzt eine Schallausbreitungssimulation und eine dynamische HRTF-basierte Hörer-Richtcharakteristik und berücksichtigt die neuen Positionen der relevanten Objekte für den Tonkanal, wie sie vom Server bereitgestellt werden, sowie alle neuen Positionsinformationen, die sich auf den Spieler 1 beziehen und lokal am Client 1 verfügbar sind. Zum Beispiel kann der Tonkanal einen Schallquellen-Charakter umfassen, der eine Stimme in das vom Mikrofon erfasste Audiosignal von Spieler 2 einbringt, und einen Schallempfänger-Charakter, der von Spieler 1 gesteuert wird, sowie beliebige andere relevante Objekte, die die Schallausbreitung zum Schallempfänger gemäß dem GA-Modell beeinflussen. Die Positionen dieser Objekte in der virtuellen Szene und die Ausrichtung des Schallempfängers relativ zur Schallquelle sind für die Schallausbreitungssimulation und die Hörer-Richtcharakteristik von Bedeutung und daher für die IR-Erzeugung relevant.
-
Das IR-Faltungsmodul 242 in der Client-Audio-Engine 240 faltet die generierte IR mit den vom Mikrofon aufgenommenen Audiodaten von Spieler 2, um daraus resultierende Audio-Frames zu generieren, die über einen oder mehrere Lautsprecher, die mit Client 1 verbunden sind, gerendert werden können. So wie es von Spieler 1 wahrgenommen wird, werden geometrisch-akustische Effekte auf die Stimme von Spieler 2 angewendet und in die VR-Umgebung immersiv eingebracht. Durch das Hören der Stimme kann Spieler 1 beispielsweise feststellen, ob sich der von Spieler 2 gesteuerte Schallquellen-Charakter nähert oder entfernt, seine (ungefähre) Richtung und Entfernung, und ob er sich in einem offenen Raum oder teilweise oder ganz eingeschlossen (z.B. in einem Tunnel) befindet, usw. In einigen Ausführungsbeispiele kann eine Audio-Engine im Client 2 ein ähnliches GA-Verfahren anwenden, einschließlich IR-Generierung und IR-Faltung, so dass das Audiosignal von Spieler 2 mit zusätzlichen geometrisch-akustischen Effekten und korrekten positionalen Hinweisen an einem Audio-Rendering-Gerät, das mit Client 2 verbunden ist, gerendert wird. Auf diese Weise kann Spieler 2 auch seine eigene Stimme mit einem verbesserten VR-Erlebnis hören.
-
3 illustriert die Datenflüsse in einem weiteren exemplarischen VR-System 300, das konfiguriert ist, um immersive VR-Effekte zu durch Mikrofone aufgenommene Audiosignale hinzuzufügen, wobei eine GA-Simulation auf einem Server angewendet wird, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Das VR-System 300 umfasst einen Server 310, der konfiguriert ist, um Audio- und Videoframes einer VR-Anwendung über ein oder mehrere Netzwerke in einer Multiplayer-VR-Anwendung an Client 1 (320) und Client 2 (330) zu streamen. Client 1 (320) und Client 2 (330) sind jeweils mit Spieler 1 und Spieler 2 verbunden.
-
Zum Beispiel empfängt Client 2 (330) während des Spiels von einem gekoppelten HDM oder Game-Controller Positionsinformationen, die sich auf Spieler 2 beziehen, und empfängt ein Audiosignal, das von einem Mikrofon aufgenommen wurde, z.B. die verbale Kommunikation von Spieler 2. Das vom Mikrofon aufgenommene Audiosignal und die Positionsinformationen (oder deren vereinfachte Aktualisierung) in Bezug auf Client 2 (330) und die Positionsinformationen in Bezug auf Spieler 1 werden an den Server 310 übertragen, z. B. in Paketen.
-
Beim Empfang des Eingangspakets führt die GA-Pipeline 350 im Server 310 eine GA-Simulation durch, um die neuen Positionen in Bezug auf alle Clients in der VR-Umgebung zu bestimmen, z.B. die neuen Positionen der verschiedenen Subjekte oder Objekte, die von den jeweiligen Clients gesteuert werden oder diese repräsentieren. Das IR-Generierungsmodul 352 erzeugt eine IR eines Tonkanals für den Client 1 (320) unter Verwendung einer Schallausbreitungssimulation und einer dynamischen HRTF-basierten Hörer-Richtcharakteristik und berücksichtigt dabei die neuen Positionen der relevanten Objekte im Tonkanal, oder anderer geeigneter Verfahren. Zum Beispiel kann der Tonkanal einen Schallquellen-Charakter umfassen, der eine Stimme für den vom Mikrofon aufgenommenen Schall von Spieler 2 erzeugt, und einen Schallempfänger-Charakter, der von Spieler 1 gesteuert wird, sowie ein beliebiges anderes relevantes Objekt, das die Schallausbreitung zum Schallempfänger gemäß dem GA-Modell beeinflusst.
-
Das IR-Faltungsmodul 352 faltet die erzeugte IR mit dem vom Mikrofon aufgenommenen Audiosignal von Spieler 2 und erzeugt daraus Audio-Frames für die Übertragung an die Clients, einschließlich Client 1 (320) und Client 2 (330). Client 1 (320) rendert diese Frames über den oder die mit Client 1 (320) verbundenen Lautsprecher 331. Als Ergebnis wird die Stimme von Spieler 2 in die VR-Umgebung eingebracht, wie sie von Spieler 1 wahrgenommen wird.
-
Der Server kann auch eine weitere IR für den von Client 2 gesteuerten Charakter erzeugen, der sowohl als Schallquelle als auch als Schallhörer fungiert. Die IR wird dann mit dem Mikrofon-Audiosignal von Client 2 gefaltet, um Audio-Frames für das Rendern an den mit Client 2 verbundenen Lautsprechern zu erzeugen (330) (nicht abgebildet). Auf diese Weise kann Spieler 2 seine eigene Stimme mit einem verbesserten VR-Erlebnis hören.
-
4 ist ein Flussdiagramm, das ein exemplarisches computerimplementiertes Verfahren 400 zur Hinzufügung eines immersiven VR-Effekts zu mit Mikrofon aufgenommenen Audiodaten darstellt, gemäß einem Ausführungsbeispiel der vorliegenden Offenbarung. Der das Verfahren 400 kann von einem Client (in diesem Beispiel ein erstes Client-Gerät) oder einem Server (in diesem Beispiel gekoppelt an ein erstes und ein zweites Client-Gerät) oder von einem beliebigen anderen geeigneten Gerät durchgeführt werden, wie mit Bezug auf die näher beschrieben.
-
Bei 401 werden die ersten Audiodaten, die vom Mikrofon aufgenommenen Schall repräsentieren, empfangen, wobei das Mikrofon mit dem zweiten Client-Gerät gekoppelt ist. Bei 402 werden die Standortinformationen eines ersten Objekts in der virtuellen Umgebung empfangen, wobei das erste Objekt durch das zweite Client-Gerät gesteuert wird. Bei 403 wird eine IR für einen Tonkanal in der virtuellen Umgebung erzeugt. Der Tonkanal enthält das erste Objekt als Schallquelle und ein zweites Objekt als Schallempfänger, das vom ersten Client-Gerät gesteuert wird. Bei 404 wird die IR mit den ersten Audiodaten gefaltet, um daraus resultierende Audio-Frames zu erzeugen. Die Schritte 403 und 404 können lokal am ersten Client-Gerät durchgeführt werden, wie mit Bezug auf 2 näher beschrieben. Alternativ können die Schritte 403 und 404 auch vom Server durchgeführt werden. In diesem Fall werden die resultierenden Audio-Frames vom Server zum ersten Client-Gerät übertragen. In beiden Fällen werden bei 405 die resultierenden Audio-Frames für die Wiedergabe durch ein Audio-Rendering-Gerät gerendert, das an das erste Client-Gerät gekoppelt ist.
-
5 ist ein Blockdiagramm, das ein exemplarisches Rechengerät 500 zeigt, das VR-immersive Audio-Frames für das Rendering aus mit Mikrofonen aufgenommenen Audiodaten erzeugen kann, gemäß Ausführungsbeispielen der vorliegenden Offenbarung. Das Gerät 500 kann ein allgemeiner Computer sein, der als Server oder als Client in einem VR-Spiele-Streaming-System konfiguriert ist. Das Gerät 500 besteht aus einem Prozessor 501, einem Systemspeicher 502, einer GPU 503, E/A-Schnittstellen 504 und Netzwerkschaltungen 505, einem Betriebssystem 506 und einer Anwendungssoftware 507 (einschließlich z.B. eines VR-Anwendungsprogramms 508 und eines GA-Verarbeitungsprogramms 509 mit einem IR-Modul 510 zur IR-Generierung und Faltung), die im Speicher 502 gespeichert sind. Das Gerät kann mit Peripheriegeräten wie HDM, Game-Controller, Lautsprecher und/oder Kopfhörer gekoppelt werden. Das Gerät kann auch über ein Kommunikationsnetz mit einem oder mehreren entfernten Computergeräten gekoppelt werden, z.B. einem Servergerät und/oder Clientgeräten.
-
Beim Empfang der Eingabe einschließlich der vom Mikrofon aufgenommenen Daten und der zugehörigen Positionsinformationen (z.B. wie von einem entfernten gekoppelten Client oder Server bereitgestellt) und von der CPU 501 ausgeführt, kann das GA-Verarbeitungsprogramm 509 eine GA-Simulation durchführen, um eine IR zu erzeugen und die IR mit den Daten zu falten, um Audio-Frames für die Wiedergabe an einem Audio-Rendering-Gerät zu erzeugen. Die IR ist charakteristisch für einen Tonkanal in der VR-Umgebung, einschließlich eines Schallquellenobjekts, das eine Stimme in dem vom Mikrofon aufgenommenen Schall bereitstellt, und eines Schallhörers davon. Das VR-Anwendungsprogramm 508 und das GA-Bearbeitungsprogramm 509 können verschiedene andere Funktionen ausführen, die auf dem Fachgebiet bekannt sind und die in Bezug auf die 1-4 im Detail erläutert werden.
-
Es ist zu beachten, dass das GA-Verarbeitungsprogramm und das IR-Modul 510 in 5 in einer oder mehreren geeigneten Programmiersprachen implementiert werden können, die einem Fachmann bekannt sind, wie z.B. C, C++, Java, Python, Perl, C#, SQL, etc.
-
Die vorstehenden Beschreibungen bestimmter Ausführungsbeispiele der vorliegenden Erfindung wurden zur Veranschaulichung und Beschreibung vorgelegt. Sie sollen weder erschöpfend sein noch die Erfindung auf die genau offengelegten Formen beschränken, und viele Änderungen und Variationen sind im Lichte der obigen Lehre möglich. Die Ausführungsbeispiele wurden ausgewählt und beschrieben, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erklären, um dadurch anderen Fachleuten die Möglichkeit zu geben, die Erfindung und die verschiedenen Ausführungsbeispiele mit verschiedenen Modifikationen, die für die beabsichtigte besondere Verwendung geeignet sind, bestmöglich zu nutzen. Der Umfang der Erfindung soll durch die beigefügten Ansprüche und deren Äquivalente definiert werden.