-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der am 8. Juni 2012 eingereichten vorläufigen US-Patentanmeldung Nr. 61/657,624 mit dem Titel „ADJUSTING AUDIO BEAMFORMING SETTINGS BASED ON SYSTEM STATE“, die durch diesen Verweis als hier komplett mit aufgenommen gilt.
-
ALLGEMEINER STAND DER TECHNIK
-
1. Technisches Gebiet
-
Die vorliegende Offenbarung betrifft das Audio-Beamforming und insbesondere das Abstimmen von Audio-Beamforming-Einstellungen auf der Grundlage des Systemzustands.
-
2. Einleitung
-
Viele Anwendungen, die auf Computergeräten laufen, umfassen Funktionen, für die Audioeingaben erforderlich sind. Unter typischen Umgebungsbedingungen kann ein einzelnes Mikrofon den interessierenden Ton leider aufgrund verschiedener vorhandener Hintergrundgeräusche möglicherweise nur schlecht erfassen. Aus diesem Grund nutzen viele Computergeräte meist Techniken zur Reduzierung, Unterdrückung und/oder Kompensation von Störgeräuschen. Eine häufig benutzte Technik zum Verbessern des Signal-Rausch-Verhältnisses ist das Audio-Beamforming.
-
Bei Audio-Beamforming handelt es sich um eine Technik, bei der von zwei oder mehreren Mikrofonen empfangene Töne so kombiniert werden, dass aus bestimmten Richtungen kommender Ton bevorzugt erfasst werden kann. Ein Computergerät, das Audio- Beamforming benutzt, kann ein mit einem Prozessor verbundenes Array aus zwei oder mehreren nahe beieinander liegenden Kugelmikrofonen aufweisen. Der Prozessor kann dann die von den verschiedenen Mikrofonen erfassten Signale so kombinieren, dass ein einziges Ausgangssignal entsteht und ein Ton von Hintergrundgeräuschen getrennt wird. Bei der strahlformenden Signalverarbeitung durch Summieren verzögerter Signale (Delay- Sum-Beamforming) beispielsweise empfängt jedes Mikrofon unabhängig das Tonsignal, und die empfangenen Tonsignale werden zum Bestimmen des Tonrichtungswinkels summiert. Die maximale Ausgangsamplitude wird erreicht, wenn das Signal aus einer senkrecht zum Array liegenden Quelle stammt. Das heißt, wenn die Tonquelle senkrecht zum Array liegt, kommen alle Signale zur gleichen Zeit an und korrelieren somit stark. Wenn jedoch die Tonquelle nicht senkrecht zum Array liegt, kommen die Signale zu unterschiedlichen Zeiten an und korrelieren daher weniger, was zu einer geringeren Ausgangsamplitude führt. Anhand der Ausgangsamplitude verschiedener Töne können Hintergrundgeräusche identifiziert werden, die aus einer anderen Richtung kommen als der Richtung des interessierenden Tons.
-
Es gibt etliche verschiedene Mikrofonformen, und jede Form verfügt über unterschiedliche Möglichkeiten einer Reduzierung von Störgeräuschen. Somit gibt es verschiedene räumliche Audio-Beamforming-Polardiagramme. Die Diagramme können festgelegt (fix) oder über die Zeit anpassungsfähig (adaptiv) sein und sogar je nach Frequenz variieren. Die verschiedenen Diagramme sind bei verschiedenen Geräuscharten jedoch unterschiedlich erfolgreich, was zu suboptimalen Ergebnissen führen kann.
-
KURZDARSTELLUNG
-
Weitere Merkmale und Vorteile der Offenbarung werden in der nachfolgenden Beschreibung dargelegt und ergeben sich teilweise daraus oder können durch Praktizieren der hier offenbarten Prinzipien in Erfahrung gebracht werden. Die Merkmale und Vorteile der Offenbarung lassen sich mit Hilfe der in den angehängten Ansprüchen speziell aufgezeigten Vorrichtungen und Kombinationen realisieren und erzielen. Diese und andere Merkmale der Offenbarung werden anhand der nachfolgenden Beschreibung und der angehängten Ansprüche deutlicher oder können durch Praktizieren der hier erläuterten Prinzipien in Erfahrung gebracht werden.
-
Es werden Systeme, Verfahren und nichtflüchtige computerlesbare Speichermedien zum Konfigurieren von Audio-Beamforming-Einstellungen auf der Grundlage des Systemzustands offenbart. Ein Audio-Beamforming-Algorithmus kann eine Anzahl verschiedener Einstellungen aufweisen, einschließlich eines Modus und/oder einer Richtcharakteristik. Zur Verbesserung der Ergebnisse bei der Reduzierung von Störgeräuschen kann ein Audio-Beamforming-Algorithmus auf der Grundlage eines aktuellen Zustands eines Computergeräts konfiguriert werden. Für das Konfigurieren der Audio-Beamforming-Einstellungen kann das Computersystem eine vorgegebene, aktiv laufende Anwendung wie eine Diktieranwendung, eine Spracherkennungsanwendung, eine Audiokommunikationsanwendung, eine Video-Chat-Anwendung, eine Tonaufnahmeanwendung oder eine Musikwiedergabeanwendung erkennen. Außerdem kann das System in manchen Fällen mindestens eine vorgegebene Geräteeinstellung wie die Lüfterdrehzahl, den aktuellen Audioleitweg oder eine Konfiguration von Mikrofon- und Lautsprecheranordnung erkennen.
-
Auf der Grundlage der erkannten Anwendung und/oder Geräteeinstellung kann das System eine Modus-Richtcharakteristik auswählen. Die Modus-Richtcharakteristik kann einen Modus, wie beispielsweise fix oder adaptiv, angeben. Außerdem kann die Modus- Richtcharakteristik eine Richtcharakteristik, wie beispielsweise Kugel, Niere, Hyperniere, breite Niere oder Acht, angeben. Das System kann die Modus-Richtcharakteristik zum Konfigurieren eines Audio-Beamforming-Algorithmus benutzen. Ein Beamformer kann beispielsweise auf der Grundlage der in der Modus-Richtcharakteristik angegebenen Werte einen Modus und/oder eine Richtcharakteristik laden. Nach dem Konfigurieren des Beamforming-Algorithmus kann das System mit Hilfe des Beamforming-Algorithmus von einem Array-Mikrofon empfangene Audiodaten verarbeiten. Das System kann die verarbeiteten Daten zu der laufenden Anwendung senden. Bei manchen Ausführungsformen kann das System vor dem Senden der verarbeiteten Daten zur laufenden Anwendung einen Störgeräuschunterdrückungsalgorithmus anwenden. In manchen Fällen kann der Störgeräuschunterdrückungsalgorithmus auch auf der Grundlage der erkannten laufenden Anwendung und/oder mindestens einer vorgegebenen Geräteeinstellung konfiguriert werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Zur Beschreibung der Art und Weise, auf die sich die oben genannten und andere Vorteile und Merkmale der Offenbarung erzielen lassen, erfolgt eine genauere Beschreibung der oben kurz beschriebenen Prinzipien unter Bezugnahme auf bestimmte Ausführungsformen davon, die in den beigefügten Zeichnungen veranschaulicht sind. Mit dem Verständnis, dass diese Zeichnungen lediglich Ausführungsbeispiele für die Offenbarung darstellen und daher nicht als deren Schutzumfang einschränkend betrachtet werden dürfen, werden diese Prinzipien hier anhand der beiliegenden Zeichnungen spezieller und ausführlicher beschrieben und erläutert, in denen:
-
1 ein Systemausführungsbeispiel veranschaulicht,
-
2 ein beispielhaftes Computergerät mit einem Mikrofonarray veranschaulicht,
-
3 beispielhafte räumliche Polardiagramme veranschaulicht,
-
4 einen beispielhaften Audio-Beamformer-Konfigurationsvorgang veranschaulicht,
-
5 vier beispielhafte Darstellungen von Systeminformationen veranschaulicht,
-
6 ein beispielhaftes Szenario mit einer Mischung aus fixer und adaptiver Richtcharakteristik veranschaulicht und
-
7 ein Verfahrensausführungsbeispiel.
-
ALLGEMEINER STAND DER TECHNIK
-
Verschiedene Ausführungsformen der Offenbarung werden nachfolgend ausführlich erläutert. Es werden zwar bestimmte Implementierungen erläutert, es versteht sich jedoch, dass dies nur zu Veranschaulichungszwecken geschieht. Fachleute auf dem relevanten Gebiet werden erkennen, dass andere Komponenten und Konfigurationen verwendet werden können, ohne dass vom Gedanken und Schutzumfang der Offenbarung abgewichen würde.
-
Die vorliegende Offenbarung betrifft den Bedarf für eine verbesserte Audiosignalverarbeitung in der Technik zum Isolieren eines Tons von Hintergrundgeräuschen. Mit Hilfe der vorliegenden Technik ist es möglich, Ergebnisse bei der Reduzierung von Störgeräuschen durch Abstimmen eines Audio-Beamforming- Algorithmus auf der Grundlage eines oder mehrerer Attributwerte eines Computergeräts zu verbessern. Diese Offenbarung enthält zunächst eine Erläuterung eines grundlegenden Universalsystems oder -computergeräts aus 1, das zum Praktizieren der hier offenbarten Konzepte eingesetzt werden kann, bevor sie zu einer ausführlicheren Beschreibung des Audio-Beamforming zurückkehrt.
-
Ein beispielhaftes System 100 in 1 weist ein Universalcomputergerät 100 mit einer Verarbeitungseinheit (CPU oder Prozessor) 120 und einem Systembus 110 auf, der verschiedene Systemkomponenten einschließlich des Systemspeichers 130, wie beispielsweise Nurlesespeicher (ROM – Read-Only Memory) 140 und Schreiblesespeicher (RAM – Random Access Memory) 150, mit dem Prozessor 120 verbindet. Das System 100 kann einen Zwischenspeicher 122 aufweisen, der direkt mit dem Prozessor 120 verbunden ist, sich in dessen Nähe befindet oder als Bestandteil in den Prozessor 120 integriert ist. Das System 100 kopiert Daten für den Schnellzugriff durch den Prozessor 120 aus dem Speicher 130 und/oder der Speichervorrichtung 160 in den Zwischenspeicher 122. Auf diese Weise ermöglicht der Zwischenspeicher 122 eine Leistungssteigerung, durch die Verzögerungen im Prozessor 120 beim Warten auf Daten vermieden werden. Diese und andere Module können den Prozessor 120 so steuern, dass er verschiedene Vorgänge ausführt, beziehungsweise so konfiguriert werden, dass sie ihn so steuern. Es kann auch anderer Systemspeicher 130 zur Benutzung verfügbar sein. Der Speicher 130 kann mehrere verschiedene Speichertypen mit unterschiedlichen Leistungsmerkmalen umfassen. Es versteht sich, dass die Offenbarung auf einem Computergerät 100 mit mehr als einem Prozessor 120 oder einer Gruppe beziehungsweise einem Cluster vernetzter Computergeräte zwecks größerer Verarbeitungskapazität laufen kann. Der Prozessor 120 kann einen beliebigen Universalprozessor und ein Hardware- oder Softwaremodul wie das in der Speichervorrichtung 160 gespeicherte Modul 1 162, Modul 2 164 und Modul 3 166 aufweisen, die so konfiguriert sind, dass sie den Prozessor 120 steuern, sowie einen Spezialprozessor, bei dem Softwarebefehle in die eigentliche Prozessorkonstruktion integriert sind. Bei dem Prozessor 120 kann es sich im Wesentlichen um ein völlig eigenständiges Computersystem mit mehreren Kernen oder Prozessoren, einem Bus, Speichersteuerung, Zwischenspeicher usw. handeln. Ein Mehrkernprozessor kann symmetrisch oder asymmetrisch sein.
-
Der Systembus 110 kann von einem beliebigen mehrerer Busstrukturtypen sein, unter anderem ein Speicherbus oder eine Speichersteuerung, ein Peripheriebus und ein lokaler Bus, der beliebige von mehreren Busarchitekturen verwendet. Ein im ROM 140 oder dergleichen gespeichertes BIOS (Basic Input/Output System) kann die grundlegende Routine bereitstellen, mit deren Hilfe Informationen zwischen Elementen in dem Computergerät 100, wie beispielsweise beim Starten, übermittelt werden. Das Computergerät 100 weist ferner Speichervorrichtungen 160 wie ein Festplattenlaufwerk, ein Magnetplattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk oder dergleichen auf. Die Speichervorrichtung 160 kann Softwaremodule 162, 164, 166 zum Steuern des Prozessors 120 aufweisen. Andere Hardware- oder Softwaremodule werden in Betracht gezogen. Die Speichervorrichtung 160 ist über eine Laufwerkschnittstelle mit dem Systembus 110 verbunden. Die Laufwerke und die zugehörigen computerlesbaren Speichermedien stellen nichtflüchtigen Speicher für computerlesbare Befehle, Datenstrukturen, Programmmodule und andere Daten für das Computergerät 100 bereit. Unter einem Aspekt enthält ein Hardwaremodul, das eine bestimmte Funktion ausführt, die auf einem nichtflüchtigen computerlesbaren Medium gespeicherte Softwarekomponente in Verbindung mit den zum Ausführen der Funktion erforderlichen Hardwarekomponenten, wie den Prozessor 120, den Bus 110, die Ausgabevorrichtung 170 und so weiter. Die grundlegenden Komponenten sind Fachleuten bekannt, und es werden in Abhängigkeit vom Typ des Geräts, wie beispielsweise ob es sich bei dem Gerät 100 um ein kleines Hand-Computergerät, einen Arbeitsplatzcomputer oder einen Computerserver handelt, entsprechende Variationen in Betracht gezogen.
-
Bei dem hier beschriebenen Ausführungsbeispiel kommt zwar die Festplatte 160 zum Einsatz, für Fachleute versteht sich aber, dass in der beispielhaften Betriebsumgebung auch andere Arten computerlesbarer Medien benutzt werden können, die für einen Computer zugängliche Daten speichern können, wie beispielsweise Magnetkassetten, Flash-Speicherkarten, DVDs, Kassetten, Schreiblesespeicher (RAMs) 150, Nurlesespeicher (ROM) 140, ein Kabel- oder Funksignal mit einem Bitstream und dergleichen. Nichtflüchtige computerlesbare Speichermedien schließen Medien wie Energie, Trägersignale, elektromagnetische Wellen und Signale an sich ausdrücklich aus.
-
Damit es zu einer Benutzerinteraktion mit dem Computergerät 100 kommen kann, repräsentiert eine Eingabevorrichtung 190 eine beliebige Anzahl Eingabemechanismen, wie beispielsweise ein Mikrofon für Sprache, einen berührungsempfindlichen Bildschirm für Gesten oder grafische Eingaben, Tastatur, Maus, Bewegungseingaben, Sprache und so weiter. In manchen Fällen kann es sich bei dem Mikrofon um ein Mikrofonarray handeln. Bei einer Ausgabevorrichtung 170 kann es sich auch um einen oder mehrere einer Anzahl von Ausgabemechanismen handeln, die Fachleuten bekannt sind. In manchen Fällen ermöglichen multimodale Systeme einem Benutzer das Bereitstellen mehrerer Eingabearten für die Kommunikation mit dem Computergerät 100. Die Kommunikationsschnittfläche 180 regelt und verwaltet allgemein die Benutzereingabe und die Systemausgabe. Es gibt keine Einschränkung hinsichtlich des Betriebs auf einer bestimmten Hardwareanordnung, und daher lassen sich die hier genannten Grundmerkmale problemlos durch verbesserte Hardware- oder Firmwareanordnungen ersetzen, wenn diese entwickelt werden.
-
Zur Übersichtlichkeit der Erläuterung wird das Systemausführungsbeispiel mit Hilfe einzelner Funktionsblöcke dargestellt, zu denen Funktionsblöcke gehören, die als ein „Prozessor“ oder Prozessor 120 bezeichnet sind. Die Funktionen, für die diese Blöcke stehen, können durch Verwendung gemeinsam genutzter oder dedizierter Hardware bereitgestellt werden, wozu unter anderem Hardware gehört, die Software ausführen kann, und Hardware wie beispielsweise ein Prozessor 120, die speziell dafür konstruiert ist, als Äquivalent für Software zu fungieren, die auf einem Universalprozessor ausgeführt wird. So können beispielsweise die Funktionen eines oder mehrerer Prozessoren aus 1 von einem einzigen, gemeinsam genutzten Prozessor oder mehreren Prozessoren bereitgestellt werden. (Die Verwendung des Begriffs „Prozessor“ darf nicht so interpretiert werden, dass sie sich ausschließlich auf Hardware bezieht, die Software ausführen kann.) Zu beispielhaften Ausführungsformen können Mikroprozessor- und/oder Digitalsignalprozessor(DSP)-Hardware, Nurlesespeicher (ROM) 140 zum Speichern von Software, die die nachfolgend erläuterten Operationen ausführt, und Schreiblesespeicher (RAM) 150 zum Speichern von Ergebnissen gehören. Es können auch VLSI-Hardwareausführungsformen (Very Large Scale Integration – Größtintegration) sowie maßgeschneiderte VLSI-Schaltkreise in Kombination mit einer Universal-DSP-Schaltung zur Verfügung gestellt werden.
-
Die logischen Operationen der verschiedenen Ausführungsformen werden implementiert als: (1) Abfolge von per Computer implementierten Schritten, Operationen oder Abläufen, die auf einem Universalcomputer in einer programmierbaren Schaltung laufen, (2) Abfolge von per Computer implementierten Schritten, Operationen oder Abläufen, die in einer verwendungsspezifischen programmierbaren Schaltung laufen, und/oder (3) miteinander verbundene Maschinenmodule oder Programm-Engines innerhalb der programmierbaren Schaltungen. Das in 1 gezeigte System 100 kann alle oder einen Teil der genannten Verfahren ausüben, Bestandteil der genannten Systeme sein und/oder entsprechend Befehlen in den genannten nichtflüchtigen, computerlesbaren Speichermedien arbeiten. Solche logischen Operationen können als Module implementiert werden, die so konfiguriert sind, dass sie den Prozessor 120 so steuern, dass er entsprechend der Programmierung des Moduls bestimmte Funktionen ausführt. 1 veranschaulicht beispielsweise drei Module Mod1 162, Mod2 164 und Mod3 166, bei denen es sich um Module handelt, die so konfiguriert sind, dass sie den Prozessor 120 steuern. Diese Module können in der Speichervorrichtung 160 gespeichert sein und zur Laufzeit in den RAM 150 oder den Speicher 130 geladen werden oder, wie in der Technik bekannt, an anderen computerlesbaren Speicherstellen gespeichert sein.
-
Vor dem Offenbaren einer ausführlichen Beschreibung der vorliegenden Technologie erfolgt in der Offenbarung eine kurze einführende Erläuterung dazu, wie ein Audiosignal unter Verwendung von Audio-Beamforming verarbeitet wird. Bei Audio-Beamforming handelt es sich um eine Technik, bei der von zwei oder mehreren Mikrofonen empfangene Töne so kombiniert werden, dass aus bestimmten Richtungen kommender Ton bevorzugt erfasst wird. Ein Computergerät, das Audio-Beamforming benutzt, kann ein mit einem Prozessor verbundenes Array aus zwei oder mehreren Kugelmikrofonen aufweisen. 2 veranschaulicht beispielsweise ein beispielhaftes Computersystem 200 mit einem Array aus zwei Mikrofonen 202 und 204, wie beispielsweise ein Universalcomputergerät wie System 100 aus 1. Anzahl, Abstand und/oder Anordnung der Mikrofone im Mikrofonarray können je nach Konfiguration des Computergeräts variieren. In manchen Fällen kann eine größere Anzahl Mikrofone eine präzisere räumliche Störgeräuschreduzierung ermöglichen. Eine größere Anzahl Mikrofone kann jedoch auch die Verarbeitungskosten erhöhen. In Figur 2 ist zwar ein mobiles Computergerät dargestellt, Audio-Beamforming kann jedoch bei jedem beliebigen Computergerät verwendet werden, das ein Mikrofonarray aufweist, wie beispielsweise bei einem Arbeitsplatzcomputer, einem mobilen Computer, einem Hand- Kommunikationsgerät, z.B. Mobiltelefon, Smartphone, Tablet-Computer, bei intelligentem Fernsehen, einer Set-Top-Box und/oder jedem beliebigen anderen Computergerät, das mit einem Mikrofonarray ausgestattet ist. Darüber hinaus kann ein Mikrofonarray so konfiguriert sein, dass nur eine Teilmenge der Mikrofone aktiv ist. Das heißt, eine Teilmenge der Mikrofone kann zum Beispiel deaktiviert werden, wenn Präzision nicht wichtig ist und die Verarbeitungskosten hoch sind.
-
Wie oben beschrieben wurde, können die Mikrofone ungerichtet sein. Es gibt jedoch etliche verschiedene Mikrofonformen, und jede Form kann je nach Richtung der Störgeräusche über unterschiedliche Möglichkeiten zur Unterdrückung von Störgeräuschen verfügen. Mit Hilfe verschiedener Formen können beispielsweise Störgeräusche reduziert werden, die aus bestimmten Richtungen kommen. Für die wirksame Nutzung der Vorteile verschiedener Mikrofonformen können zum Erzeugen virtueller Mikrofone Polardiagramme oder Richtcharakteristiken auf die Mikrofone angewendet werden. 3 veranschaulicht beispielsweise vier mögliche Polardiagramme: Acht 302, Niere 304, Hyperniere 306 und breite Niere 308. In jedem der Diagramme 302, 304, 306 und 308 stellt der Außenring die Verstärkung in jeder Strahlrichtung für ein Kugelmikrofon dar. Die innenliegende Form stellt die Verstärkung in jeder Richtung dar, wenn die entsprechende Charakteristik angewendet wird. So stellt das Diagramm 302 beispielsweise die Verstärkung bei Anwendung einer Achtercharakteristik dar. Das Diagramm 302 veranschaulicht auch, dass die Achtercharakteristik zum Reduzieren von Störgeräuschen aus 90- und 270-Grad-Richtung benutzt werden kann. Es können auch weitere Richtcharakteristiken benutzt werden. Darüber hinaus kann die angewendete Charakteristik fix oder adaptiv sein. Beim Audio- Beamforming auf der Grundlage einer fixen Charakteristik kann unabhängig von der Frequenz die gleiche Charakteristik angewendet werden. Wenn das Audio-Beamforming jedoch auf einer adaptiven Charakteristik beruht, kann sich diese je nach Richtung der Störgeräusche ändern. In manchen Fällen kann sich die Charakteristik auch auf der Grundlage der Frequenz ändern. Die Charakteristik kann beispielsweise von breiter Niere zu Niere wechseln, wenn sich Richtungen von Störgeräuschen auf den verschiedenen Frequenzen ändern. Bei einem weiteren Beispiel kann die Charakteristik von einer ersten gewichteten Niere zu einer zweiten gewichteten Niere wechseln.
-
Nach Eingang eines Signals von jedem aktiven Mikrofon kann der Prozessor die Signale kombinieren und ein einzelnes Ausgangssignal mit reduzierten Hintergrundgeräuschen erzeugen. In manchen Fällen kann auf die Signale eine adaptive und/oder eine fixe Richtcharakteristik angewendet werden. Darüber hinaus kann eine Anzahl verschiedener Richtcharakteristiken angewendet werden.
-
Nach dem Offenbaren einer einführenden Beschreibung dazu, wie ein Audiosignal unter Verwendung von Audio-Beamforming verarbeitet werden kann, kehrt die Offenbarung nun zu einer Erläuterung der Auswahl von Eigenschaften eines Audio-Beamforming- Algorithmus auf der Grundlage eines oder mehrerer Attributwerte eines Computergeräts zurück. Eine mögliche Einschränkung der Audio-Beamforming-Technologie kann darin bestehen, dass Audio-Beamforming zwar in dem Sinne adaptiv sein kann, dass bei sich verändernder Frequenz andere Richtcharakteristiken angewendet werden können, Audio-Beamforming jedoch keine Schwankungen in der Umgebung des Computergeräts berücksichtigt. Dies kann zu suboptimalen Ergebnissen bei der Reduzierung von Störgeräuschen führen. Das heißt, die Ergebnisse der Reduzierung von gerichteten Störgeräuschen lassen sich durch Integrieren zusätzlicher Rechenumgebungsmerkmale verbessern. So kann beispielsweise das Audio-Beamforming auf der Grundlage anpassungsfähiger Charakteristiken zu Audioergebnissen mit Artefakten führen, die für das menschliche Ohr wahrnehmbar sind, während sich die erzeugten Audiodaten trotzdem gut für die automatische Spracherkennung eignen.
-
Damit diese Einschränkung angegangen wird und bessere Ergebnisse bei der Reduzierung von Störgeräuschen erzielt werden können, lässt sich ein Audio-Beamformer dynamisch so abstimmen, dass er sich an den aktuellen Zustand des Computergeräts anpasst. Der Audio-Beamformer kann so konfiguriert werden, dass er einen adaptiven oder einen fixen Modus und/oder verschiedene vordefinierte Polardiagramme lädt. Diese Konfigurationsoptionen können auf einer aktiven Anwendung und/oder dem Systemzustand beruhen. Wenn zum Beispiel bekannt ist, dass das Eingangssignal von einer Spracherkennungsanwendung verwendet wird, kann der Audio-Beamforming-Algorithmus eine adaptive Charakteristik benutzen. Wenn, wie in einem anderen Beispiel, bekannt ist, dass das Eingangssignal von einer Anwendung verwendet wird, die die Audio- und/oder Videokommunikation zwischen einem oder mehreren Benutzern ermöglicht, kann der Audio- Beamforming-Algorithmus eine fixe Charakteristik benutzen. Darüber hinaus können die bei einem adaptiven beziehungsweise einem fixen Algorithmus angewendeten Charakteristiken auf der Grundlage weiterer Eigenschaften des Systems, wie beispielsweise der Lüfterdrehzahl und/oder des aktuellen Audioleitwegs, z.B. Kopfhörer, eingebaute Lautsprecher usw., ausgewählt werden. Weitere Systemeigenschaften, wie beispielsweise die Anordnung des Lüfters und/oder der Lautsprecher in Bezug zum Mikrofonarray, können ebenfalls wirksam genutzt werden.
-
4 veranschaulicht einen beispielhaften Audio-Beamformer-Konfigurationsvorgang 400, zu dem es auf einem Computergerät wie dem Computergerät 200 in 2 kommen kann. Auf dem Computergerät 200 können eine oder mehrere Anwendungen laufen, wie beispielsweise eine Diktieranwendung, eine Audiokommunikationsanwendung, eine Video-Chat-Anwendung, eine Tonaufnahmeanwendung, eine Musikwiedergabeanwendung usw. In manchen Fällen kann eine Anwendung aktiv sein, während die anderen Anwendungen im Hintergrund laufen und/oder vorübergehend eingestellt werden. Darüber hinaus kann die aktive oder primäre Anwendung in manchen Fällen Audioeingangsdaten benutzen, die unter Verwendung von Audio-Beamforming verarbeitet werden können.
-
Das Computersystem 200 kann Mikrofonarray-Audiodaten 404 empfangen, die einem Beamformer 402 als Eingabe zugeführt werden können. Als Reaktion darauf, dass das Computersystem 200 Mikrofonarray-Audiodaten 404 empfängt, kann ein Steuermodul 408 in dem Computersystem 200 Systeminformationen 410 bezüglich des Zustands des Computersystems 200 erkennen. In manchen Fällen können die Systeminformationen 410 angeben, welche Anwendung gerade aktiv ist, wie beispielsweise eine Diktieranwendung, z.B. die Anwendung Siri von Apple Inc in Cupertino, CA, eine Audio- und/oder Videokommunikationsanwendung, z.B. die Anwendung FaceTime von Apple Inc, eine Tonaufnahmeanwendung oder eine Musikwiedergabeanwendung. Zusätzlich dazu können die Systeminformationen 410 den weiteren Systemzustand enthalten, wie beispielsweise ob ein Lüfter aktiv ist oder die Drehzahl eines Lüfters.
-
Die Darstellung der Systeminformationen 410 kann je nach Konfiguration des Systems und/oder Informationstyp variieren. Die Systeminformationen 410 können beispielsweise als Tabelle dargestellt sein, die Kategorien von Anwendungsarten und einen Aktivitätsgrad aufführt. Bei dem Aktivitätsgrad kann es sich um einen Binärwert handeln, der angibt, ob eine Anwendung der bestimmten Art aktiv ist. In manchen Fällen kann der Aktivitätsgrad mehrere Zustände aufweisen, wie beispielsweise aktiv, nicht aktiv, Hintergrund, vorübergehend eingestellt usw. Bei einem anderen Beispiel können die Systeminformationen 410 als Tabelle dargestellt sein, die Anwendungskennungen, wie beispielsweise die Namen bestimmter Anwendungen oder eine andere eindeutige Kennung, und einen Aktivitätsgrad aufführt. Auch hier kann der Aktivitätsgrad ein Binärwert sein, oder er kann mehrere mögliche Werte haben. 5 veranschaulicht vier beispielhafte Darstellungen von Systeminformationen 410 speziell für den Status von Anwendungen, die auf dem Computersystem 200 laufen. Es sind auch andere Darstellungen der Systeminformationen 410 möglich, wie beispielsweise eine einzelne Variable für Anwendungsinformationen. Die Variable kann auf eine eindeutige Kennung eingestellt werden, die eine bestimmte Anwendung oder Anwendungsart angibt. Andere Systemzustände können mit Hilfe ähnlicher Techniken dargestellt werden. So kann beispielsweise mit Hilfe eines Binärwerts angegeben werden, dass ein Systemlüfter ein- oder ausgeschaltet ist. Alternativ dazu kann mit Hilfe eines Werts wie einer Ganzzahl die Lüfterdrehzahl angegeben werden.
-
Im Rückgriff auf 4 kann das Steuermodul 408 mit Hilfe der Systeminformationen 410 einen Modus und/oder eine Charakteristik auswählen, der/die im Beamformer 402 zum Verarbeiten der Audiodaten 404 verwendet werden soll. In manchen Fällen kann das Steuermodul 408 Informationen dazu, welche Anwendungsart oder bestimmte Anwendung aktiv ist, zum Auswählen zwischen fixen und adaptiven Modi benutzen. Das Steuermodul 408 kann beispielsweise den fixen Modus auswählen, wenn es sich bei der Anwendungsart um Audiokommunikation handelt. Bei einem anderen Beispiel kann das Steuermodul 408 komplett adaptiv auswählen, wenn es sich bei der Anwendungsart um Spracherkennung handelt. Bei manchen Fällen kann das Steuermodul 408 zusätzlich oder alternativ dazu den weiteren Systemzustand, wie beispielsweise die Lüfterdrehzahl, zur Auswahl eines Modus benutzen.
-
Zusätzlich zum Auswählen eines Modus kann das Steuermodul 408 die Systeminformationen 410 zum wahlweisen Auswählen einer bestimmten Charakteristik oder einer Abfolge von Charakteristiken benutzen. Das Steuermodul 408 kann beispielsweise die Nierencharakteristik auswählen, wenn es sich bei der Anwendungsart um Audiokommunikation handelt. Bei einem anderen Beispiel kann das Steuermodul 408 die Hypernierencharakteristik auswählen, wenn es sich bei der Anwendungsart um Audiokommunikation handelt und das Computersystem eine bestimmte Konfiguration des Mikrofonarrays und der Lautsprecheranordnung aufweist. Bei noch einem weiteren Beispiel kann das Steuermodul 408 die Breite-Niere-Charakteristik auswählen, wenn der Lüfter mit einer höheren als der vorgegebenen Lüfterdrehzahl arbeitet. Die Auswahl zusätzlicher und/oder alternativer Charakteristiken ist ebenfalls möglich.
-
Das Steuermodul 408 kann auch eine Abfolge von Charakteristiken auswählen, die vom Beamformer 402 in einem adaptiven Modus verwendet werden sollen, bei dem es sich um eine Mischung aus fixen und adaptiven Charakteristiken handelt. 6 veranschaulicht ein beispielhaftes Szenario 600 mit einer Mischung aus fixer und adaptiver Richtcharakteristik. Die Richtcharakteristik kann, wie veranschaulicht, zwischen drei Charakteristiken (Kugel, Niere und Acht) variieren, wenn sich die Frequenz des Signals ändert. Bei diesem Beispiel variiert jedes Frequenzband zwischen zwei Charakteristikarten. Eine schräge Linie wie die Linie 602 kann angeben, dass bei steigender Frequenz ein adaptiver Modus benutzt werden kann, bei dem die Charakteristik zwischen zwei Charakteristiken variieren kann. Die Linie 602 gibt beispielsweise an, dass die Charakteristik bei steigender Frequenz von Kugel zu Niere übergeht. Eine nicht schräge Linie, wie beispielsweise Linie 604, kann angeben, dass die Charakteristik bei steigender Frequenz gleich bleiben kann. Die Linie 604 gibt beispielsweise an, dass bei steigender Frequenz die fixe Nierencharakteristik benutzt wird. Die Anzahl der Charakteristiken in der Abfolge für einen Modus mit einer Mischung aus fixen und adaptiven Charakteristiken kann je nach Konfiguration des Systems variieren und/oder auf den Systeminformationen 410 beruhen. Zusätzlich dazu kann die Geschwindigkeit der Anpassung und/oder der Frequenzbereich, für den eine Charakteristik gleich bleibt, je nach Systemkonfiguration variieren und/oder auf den Systeminformationen 410 beruhen.
-
Im Rückgriff auf 4 kann das Steuermodul 408 in 4 nach der Auswahl auf der Grundlage der Systeminformationen 410 den Modus und/oder die Richtcharakteristik 406 zum Beamformer 402 senden. Der Beamformer 402 kann dann die Audiodaten 404 verarbeiten. Nach dem Verarbeiten der Audiodaten 404 kann der Beamformer 402 wahlweise die verarbeiteten Audiodaten 404 zum einem Störgeräuschunterdrückungsmodul 414 senden. Das Steuermodul 408 kann die Systeminformationen 410 auch zum Erzeugen eines Stärkeprofils für die Unterdrückung von Störgeräuschen 412 benutzen, welches das Steuermodul 408 dem Störgeräuschunterdrückungsmodul 414 zuführen kann. Das Störgeräuschunterdrückungsmodul 414 kann unter Verwendung des Stärkeprofils für die Unterdrückung von Störgeräuschen 412 die empfangenen Audiodaten 404 verarbeiten. Nach Abschluss der Verarbeitung können die verarbeiteten Audiodaten 404 zu der aktiven Anwendung 416 gesendet werden.
-
7 ist ein Ablaufdiagramm, das ein beispielhaftes Verfahren 700 zum Konfigurieren eines Audio-Beamforming-Algorithmus auf der Grundlage von Systemeinstellungen veranschaulicht. Zur besseren Übersichtlichkeit wird dieses Verfahren im Sinne eines beispielhaften Systems 200 erläutert, wie es in 2 gezeigt ist. In 7 sind zwar bestimmte Schritte gezeigt, bei anderen Ausführungsformen kann ein Verfahren jedoch mehr oder weniger Schritte als gezeigt aufweisen. Die Konfiguration eines Audio- Beamforming-Algorithmus kann beginnen, wenn das System 200 Audiodaten von einem Mikrofonarray (702) erhält. Nach dem Empfangen der Daten kann das System 200 eine erste vorgegebene laufende Anwendung (704) erkennen. In manchen Fällen kann es sich bei der ersten vorgegebenen laufenden Anwendung um eine Diktieranwendung, eine Spracherkennungsanwendung, eine Audiokommunikationsanwendung, eine Video-Chat- Anwendung oder eine Tonaufnahmeanwendung handeln. Bei manchen Ausführungsformen kann das System auch mindestens eine vorgegebene Geräteeinstellung erkennen. Bei der mindestens einen vorgegebenen Geräteeinstellung kann es sich um eine Lüfterdrehzahl, einen aktuellen Audioleitweg und/oder eine Konfiguration von Mikrofon- und Lautsprecheranordnung handeln.
-
Das System 200 kann überprüfen, ob die erste vorgegebene laufende Anwendung und wahlweise die mindestens eine vorgegebene Geräteeinstellung einer Modus-Richtcharakteristik (706) entsprechen. Wenn das System 200 eine entsprechende Modus-Richtcharakteristik identifizieren kann, kann es die identifizierte Modus-Richtcharakteristik (708) auswählen. Die Modus-Richtcharakteristik kann einen Modus, z.B. fix oder adaptiv, und/oder eine Richtcharakteristik, z.B. Kugel, Niere, Hyperniere, breite Niere, Acht usw., angeben. Auf der Grundlage der ausgewählten Modus-Richtcharakteristik kann das System einen Audio-Beamforming-Algorithmus (710) konfigurieren. In manchen Fällen führt das Konfigurieren dazu, dass ein Beamformer einen Modus und/oder eine Richtcharakteristik lädt, der/die in der Modus-Richtcharakteristik angegeben ist. In manchen Fällen kann das System einen solchen Vorgabemodus und/oder eine solche Vorgabecharakteristik aufweisen, dass, wenn in der Modus-Richtcharakteristik kein Modus und/oder keine Charakteristik angegeben oder keine entsprechende Modus-Richtcharakteristik zu finden ist, zum Konfigurieren des Audio-Beamforming-Algorithmus ein oder mehrere Vorgabewerte verwendet werden können. Wenn das System 200 keine entsprechende Modus-Richtcharakteristik identifizieren kann, kann es zum Verarbeiten der Audiodaten übergehen, ohne Konfigurationsabstimmungen am Audio-Beamforming-Algorithmus vorzunehmen. Alternativ dazu kann das System 200 den Audio-Beamforming-Algorithmus unter Verwendung von Vorgabewerten konfigurieren.
-
Nach dem Konfigurieren des Audio-Beamforming-Algorithmus kann das System die Audiodaten mit Hilfe des konfigurierten Beamforming-Algorithmus verarbeiten. Darüber hinaus kann das System die verarbeiteten Daten zu der ersten vorgegebenen laufenden Anwendung (712) senden. Bei manchen Ausführungsformen kann das System vor dem Senden der verarbeiteten Audiodaten zur ersten vorgegebenen laufenden Anwendung einen Störgeräuschunterdrückungsalgorithmus auf die verarbeiteten Audiodaten anwenden. Zusätzlich dazu kann das System die erste vorgegebene laufende Anwendung und/oder die mindestens eine vorgegebene Geräteeinstellung zum Erzeugen eines Stärkeprofils für die Unterdrückung von Störgeräuschen benutzen. Das System kann das Stärkeprofil für die Unterdrückung von Störgeräuschen im Störgeräuschunterdrückungsalgorithmus verwenden. In manchen Fällen kann es sich bei dem Stärkeprofil für die Unterdrückung von Störgeräuschen um Grundrauschen handeln. Nach Abschluss von Schritt 712 kann das System 200 die bisherige Verarbeitung wieder aufnehmen, wozu das Wiederholen des Verfahrens 600 gehören kann.
-
In den Schutzumfang der vorliegenden Offenbarung fallende Ausführungsformen können auch materielle und/oder nichtflüchtige computerlesbare Speichermedien umfassen, die per Computer ausführbare Befehle oder Datenstrukturen enthalten können oder auf denen diese gespeichert sind. Bei derartigen nichtflüchtigen, computerlesbaren Speichermedien kann es sich um beliebige verfügbare Medien handeln, auf die ein Universal- oder Spezialcomputer, einschließlich der oben erläuterten funktionellen Gestaltung eines beliebigen Spezialprozessors, zugreifen kann. Zu solchen nichtflüchtigen Speichermedien können unter anderem beispielsweise RAM, ROM, EEPROM, CD-ROM oder andere optische Platten-, Magnetplatten- oder andere magnetische Speichervorrichtungen oder andere beliebige Medien gehören, die gewünschte Programmcodemittel in Form von per Computer ausführbaren Befehlen, Datenstrukturen oder Prozessorchipentwurf enthalten oder speichern können. Wenn Informationen über ein Netzwerk oder eine andere Kommunikationsverbindung (festverdrahtet, drahtlos oder eine Kombination daraus) zu einem Computer übertragen oder für diesen bereitgestellt werden, betrachtet der Computer die Verbindung folgerichtig als computerlesbares Medium. Somit wird eine derartige Verbindung folgerichtig als computerlesbares Medium bezeichnet. Kombinationen des oben Genannten müssen auch in den Schutzumfang für die computerlesbaren Medien gehören.
-
Zu per Computer ausführbaren Befehlen gehören beispielsweise Befehle und Daten, die einen Universalcomputer, Spezialcomputer oder ein spezielles Verarbeitungsgerät dazu veranlassen, eine bestimmte Funktion oder Gruppe von Funktionen auszuführen. Zu per Computer ausführbaren Befehlen gehören auch Programmmodule, die von Computern in eigenständigen oder in Netzwerkumgebungen ausgeführt werden. Zu Programmmodulen gehören allgemein Routinen, Programme, Komponenten, Datenstrukturen, Objekte und die der Konstruktion von Spezialprozessoren usw. inhärenten Funktionen, welche bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Per Computer ausführbare Befehle, zugehörige Datenstrukturen und Programmmodule stellen Beispiele für die Programmcodemittel zum Ausführen von Schritten der hier offenbarten Verfahren dar. Die bestimmte Abfolge solcher ausführbaren Befehle oder zugehörigen Datenstrukturen stellt Beispiele für entsprechende Vorgänge zum Implementieren der Funktionen dar, die in solchen Schritten beschrieben sind.
-
Fachleute werden verstehen, dass andere Ausführungsformen der Offenbarung in vernetzten Rechenumgebungen mit vielen Computersystemkonfigurationstypen praktiziert werden können, einschließlich Personalcomputer, Handgeräte, Multiprozessorsysteme, auf Mikroprozessoren basierende oder programmierbare Unterhaltungselektronik, Netzwerk- PCs, Minicomputer, Großrechner und dergleichen. Ausführungsformen können auch in verteilten Rechenumgebungen praktiziert werden, in denen Aufgaben von lokalen und externen Verarbeitungseinrichtungen ausgeführt werden, die (durch festverdrahtete Verbindungen, drahtlose Verbindungen oder eine Kombination daraus) über ein Kommunikationsnetz verbunden sind. In einer verteilten Rechenumgebung können sich sowohl in lokalen als auch in externen Speichervorrichtungen Programmmodule befinden.
-
Die verschiedenen oben beschriebenen Ausführungsformen dienen nur der Veranschaulichung und sollten nicht so ausgelegt werden, dass sie den Schutzumfang der Offenbarung einschränken. Fachleuten werden ohne weiteres erkennen, dass an den hier beschriebenen Prinzipien ohne Befolgen der hier veranschaulichten und beschriebenen Ausführungsbeispiele und Anwendungen und ohne Abweichung vom Gedanken und Schutzumfang der Offenbarung verschiedene Modifikationen und Änderungen vorgenommen werden können.