Intelligentes Mikrofonsystem –
Einsatzszenarien und Realisierung
Bachelor-Thesis
zur Erlangung des akademischen Grades B.S...
Inhaltsverzeichnis
1 Einleitung 1
2 Einsatzszenarien 2
2.1 Vortrag und Präsentation . . . . . . . . . . . . . . . . . . . ...
Inhaltsverzeichnis
4.2.2 Einbindung in die Steuerungssoftware . . . . . . . . . . . . . . 37
4.3 Audio . . . . . . . . . ....
Abstract
A microphone system with the intelligent capability to recognize and react to its
surroundings can accomplish tas...
1 Einleitung
Ein technisches intelligentes System ist entweder ein System, welches Entscheidungen
aufgrund von Erfahrungen...
2 Einsatzszenarien
Im Folgenden werden drei Einsatzszenarien vorgestellt in denen ein intelligentes Mi-
krofonarray äußers...
2 Einsatzszenarien
zurück zu bewegen (4).
Ein weiterer Redner tritt auf die Bühne, um ein spezielles Unterkapitel zu bespr...
2 Einsatzszenarien
kussion zwischen den Zuhörern und dem Vortragenden. Es ist vorgesehen, dass den
Fragenden im Publikum e...
2 Einsatzszenarien
13. manuelles Hinzufügen von virtuellen Richtmikrofonen und komplett manuelle
Definition
14. Audio-Aufze...
2 Einsatzszenarien
17. Arretieren der Position von automatisch aktivierten virtuellen Mikrofonen
18. automatisches Panning...
2 Einsatzszenarien
Den nächsten Programmpunkt des Konzertabends bilden zwei Schlagzeuger, die
mit mehreren, auf der Bühne ...
2 Einsatzszenarien
27. Gestengesteuertes Starten und Beenden einer Aufnahme
2.4 Funktionen und ihre Systemanforderungen
Di...
2 Einsatzszenarien
Steuerungssoftware
Human Detection/
Gesichtsdetektion
Audiosig.-verarb.:
Beamforming
Winkelangaben der
...
2 Einsatzszenarien
verdeckt wird, als der Rest des Körpers. So können bei Human Detection Möbel wie
z.B. ein Rednerpult ei...
2 Einsatzszenarien
Signalverarbeitung weitergeben.
Manuelle Einstellung des Monomikrofons
Es kann der Wunsch bestehen, die...
2 Einsatzszenarien
das Bild der Kamera in 3D erfasst wird, können absolute Angaben über die Position
der erkannten Person ...
2 Einsatzszenarien
Kamera
Person 1:
- 70 °
Person 3:
5 °
Person 2:
-26 °
-90 °
100% links Mitte 100% rechts
-60 ° 0 °-30 °...
2 Einsatzszenarien
2.4.2 Automatisches Stereo-Mikrofon und abgeleitete
Funktionen
Das automatisch ausrichtende und einstel...
2 Einsatzszenarien
dieser Richtcharakteristik muss dann der passende Versatzwinkel der beiden virtuel-
len Mikrofone berec...
2 Einsatzszenarien
dass die Aufnahme nicht in der Mikrofonsystemsoftware stattfinden soll. Falls ein Si-
gnal z.B. noch zus...
2 Einsatzszenarien
Lautsprecher des Steuerrechners oder über die Monitorlautsprecher auf einer Bühne
wiedergegeben werden ...
2 Einsatzszenarien
nutzerschnittstelle angewendet bedeutet dies, dass eine Identifizierung von Personen
Steuerungsbefehle a...
2 Einsatzszenarien
2.4.5 Periphere Funktionen
In Kapitel 2 wurden einige Funktionen beschrieben, die nicht dem Betreiben e...
2 Einsatzszenarien
nannt, die das einfache Einbinden von Audioeffekten möglich machen. Sollten die
Effekte programmintern ei...
2 Einsatzszenarien
Bildverarbeitung
HumanDetection/
Gesichtsdetektion
Beamforming
2D-Kamera
Mikrofonarray
3D-Kamera
VST/
A...
3 Mikrofonarrays und Ambisonics
3.1 Mikrofonarrays
Mikrofonarrays sind Mikrofone mit mehreren Mikrofonkapseln. Mikrofonarr...
3 Mikrofonarrays und Ambisonics
3.2 Ambisonics
3.2.1 Grundlagen
Das System Ambisonics beschreibt Verfahren zur Aufzeichnun...
3 Mikrofonarrays und Ambisonics
Abbildung 3.1: Die Konventionen des hier verwendeten Koordinatensystems, aus (Wi-
kipedia ...
3 Mikrofonarrays und Ambisonics
Kugelflächenfunktionen sind es also, mit denen sich die Schalldruckverteilung auf der
bespr...
3 Mikrofonarrays und Ambisonics
3.2.2 Kanaldefinition und Normierung
In der Ambisonics-Praxis und -Literatur wird häufig ein...
3 Mikrofonarrays und Ambisonics
die SN3D-Normierungsfaktoren ergeben sich also zu
Nm (SN3D)
n = (2 − δm0)
(n − m)!
(n + m)...
3 Mikrofonarrays und Ambisonics
Abbildung 3.2: Pegelunterschiede der Ambisonicskanäle in Ahängigkeit von umgeben-
den Scha...
3 Mikrofonarrays und Ambisonics
Maximalwert 1√
2
normiert, liegt also unter 1. Diese Normierung ist eine in Ambiso-
nics h...
3 Mikrofonarrays und Ambisonics
Ordn. FuMa-
Kanal-
benennung
ACN SN3D-
Definition
n, m
(SN3D)
N3D-
Konv.-
faktor
FuMa-
Gewi...
3 Mikrofonarrays und Ambisonics
nen“. Das B-Format im klassischen Sinne ist das von M. Gerzon erwähnte, vierkanali-
ge Amb...
3 Mikrofonarrays und Ambisonics
Richt-
charakteristik
Kugel Breite Niere 1 Breite Niere 2 Niere Superniere Hyperniere Acht...
3 Mikrofonarrays und Ambisonics
Mikrofon-Richtcharakteristik Gd (θ, kR) durch die sog. Mikrofongleichung
Gd (θ) =
∞
v=1
εv...
3 Mikrofonarrays und Ambisonics
Ausrichtung nach (ϑ, ϕ) wird Gd (θ) zu
Gd (θ, φ, ϑ, ϕ) = 4π
∞
n=0
1
√
2n + 1
n
m=−n
Gdn Y ...
4 Konzeption und Realisierung
Das intelligente Mikrofonsystem, dessen Funktionen und Bestandteile in Kapitel 2.4
beschrieb...
4 Konzeption und Realisierung
4.2 Video
4.2.1 Microsoft Kinect-Sensor als optisches System
Abbildung 4.1: Der Kinect-Senso...
4 Konzeption und Realisierung
möglich, auf die Daten der Kinect sowie auf von Microsoft für den Kinect-Sensor
entwickelte ...
4 Konzeption und Realisierung
Abbildung 4.2: Von der Kinect projiziertes Infrarotmuster, erfasst vom Kinect-IR-Sensor,
aus...
4 Konzeption und Realisierung
angegeben. Die Umrechnung der Elevation in das in dieser Arbeit verwendete Koor-
dinatensyst...
4 Konzeption und Realisierung
mit θmax, dem Wert des vertikalen Aufnahmebereichs und φmax, dem Wert des hori-
zontalen Auf...
4 Konzeption und Realisierung
Abbildung 4.4: Das SoundField SPS200 Software Controlled Microphone der Firma TSL
Products, ...
4 Konzeption und Realisierung
Reihenfolge wird die FuMa-Kanalordnung gewählt. In diese FuMa-Kanalfolge müssen
die Eingangs...
4 Konzeption und Realisierung
Implementierung in der Steuerungssoftware dazu führt, dass bei der Summierung aller
Ambisoni...
4 Konzeption und Realisierung
und den komplexwertigen Funktionen in algebraischer Form. Entsprechend der Mul-
tiplikations...
4 Konzeption und Realisierung
Gd (θ, φ, ϑ, ϕ) = 4π Gd0
1
2
√
π
Y 0
0 (θ, φ)
+
1
√
3


3
2π
Gd1 sinϑ cosϕ Re Y −1
1 (θ, φ...
4 Konzeption und Realisierung
kanälen R, S, T, U und V zu
Gd (θ, φ, ϑ, ϕ) = 4π
2
n=0
1
√
2n + 1
n
m=−n
Gdn Y m
n (θ, φ) Y ...
4 Konzeption und Realisierung
W 1
2
√
π
X,Y 1
2
3
2π
Z 1
2
3
π
R
√5
π
2
S, T, U, V 1
2
5
2π
Tabelle 4.2: Konvertierungsfak...
4 Konzeption und Realisierung
Ambisonics-Kanal Faktor
W Gd0
X
√
3 Gd1 sin ϑ cos ϕ
Y
√
3 Gd1 sin ϑ sin ϕ
Z
√
3 Gd1 cos ϑ
R ...
4 Konzeption und Realisierung
Gleichung zur Berechnung der Beamforming-Koeffizienten lautet also
Gdn =
1
2
√
2n + 1
π
0
∞
v=...
4 Konzeption und Realisierung
vvvv erstellten Programme sind nur innerhalb der vvvv-eigenen Laufzeitumgebung
ausführbar. D...
4 Konzeption und Realisierung
Abbildung 4.5: Ein einfacher Patch in vvvv, welcher einen Zahlenwert quadriert und vom
Ergeb...
4 Konzeption und Realisierung
und ist das Ergebnis abhängig von beiden Spread-Inputs, so wird die Funktion die
bearbeitung...
4 Konzeption und Realisierung
human_detection_kinect
Funktionen: Initialisiert den Kinect-Sensor, ließt die x-y-z-Koordina...
4 Konzeption und Realisierung
beamforming_spreads
Funktion:Berechnet für jedes Winkelpaar jeder getrackter Person die Gewi...
4 Konzeption und Realisierung
audio_sig_proc
Funktion: Initialisiert die vvvv-AudioEngine, nimmt die Audiosignale entgegen...
4 Konzeption und Realisierung
Datenverarbeitung im Detail
Die grundlegende Signalkette, von den Daten der Kinect bis zur A...
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung
Nächste SlideShare
Wird geladen in …5
×

Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung

377 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
377
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Bachelorthesis Robert Ballon Intelligentes Mikrofonsystem - Einsatzszenarien und Realisierung

  1. 1. Intelligentes Mikrofonsystem – Einsatzszenarien und Realisierung Bachelor-Thesis zur Erlangung des akademischen Grades B.Sc. Robert Ballon 1991198 Hochschule für Angewandte Wissenschaften Hamburg Fakultät Design, Medien und Information Department Medientechnik Erstprüfer: Prof. Dr. Eva Wilk Zweitprüfer: Prof. Dr. Wolfgang Fohl 28. August 2014
  2. 2. Inhaltsverzeichnis 1 Einleitung 1 2 Einsatzszenarien 2 2.1 Vortrag und Präsentation . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Diskussionsrunde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Konzertabend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Funktionen und ihre Systemanforderungen . . . . . . . . . . . . . . . 8 2.4.1 Automatisches Mono-Verfolgermikrofon und abgeleitete Funk- tionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4.2 Automatisches Stereo-Mikrofon und abgeleitete Funktionen . . 14 2.4.3 Audiomischung, -routing und -aufzeichnung . . . . . . . . . . 15 2.4.4 Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.5 Periphere Funktionen . . . . . . . . . . . . . . . . . . . . . . . 19 3 Mikrofonarrays und Ambisonics 22 3.1 Mikrofonarrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Ambisonics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.2 Kanaldefinition und Normierung . . . . . . . . . . . . . . . . . 26 3.2.3 FuMa-Gewichtsfaktoren und MaxN . . . . . . . . . . . . . . . 27 3.2.4 Kanalordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.5 B-Format, A-Format und HOA . . . . . . . . . . . . . . . . . 29 3.2.6 Beamforming . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4 Konzeption und Realisierung 35 4.1 Funktionsumfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.2.1 Microsoft Kinect-Sensor als optisches System . . . . . . . . . . 36 ii
  3. 3. Inhaltsverzeichnis 4.2.2 Einbindung in die Steuerungssoftware . . . . . . . . . . . . . . 37 4.3 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3.1 Soundfield SPS200 als Mikrofonarray . . . . . . . . . . . . . . 40 4.3.2 Signalverarbeitung und Beamforming . . . . . . . . . . . . . . 41 4.4 Realisierung in vvvv . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.4.1 Die Entwicklungsumgebung vvvv . . . . . . . . . . . . . . . . 49 4.4.2 Die Mikrofonsteuerung in vvvv . . . . . . . . . . . . . . . . . 52 5 Test, Bewertung und Erweiterungen 63 5.1 Theoretische Grenzen des Gesamtsystems . . . . . . . . . . . . . . . . 63 5.2 Das System in der Praxis und Erweiterungen . . . . . . . . . . . . . . 66 6 Fazit 68 A Daten auf der angehefteten CD-ROM 69 Abbildungsverzeichnis 70 Tabellenverzeichnis 71 Literaturverzeichnis 72 iii
  4. 4. Abstract A microphone system with the intelligent capability to recognize and react to its surroundings can accomplish tasks automatically that would otherwise need to be completed by an audio engineer. This thesis explores the various scenarios in which a beamforming microphone array with a visual sensor capable of localizing humans would be applicable, and the technical and functional requirements of these scenarios are analyzed. Of note are the two key functionalities: one an automatic tracking mono microphone, the other a self-setting stereo microphone. Moreover, the idea behind this system, inspired by the sensor technology, is expanded upon to include many more potentially advantageous functionalities. The automatic tracking of moving persons by up to two directional microphones is realized. An ambisonic microphone array and a Microsoft Kinect sensor were used to accomplish this, and the development environment was vvvv. Beforehand, the topic of beamforming with ambisonics is explored in detail. Zusammenfassung Ein Mikrofonsystem mit Intelligenz, welches die Umwelt wahrnehmen und darauf reagieren kann, ist in der Lage, Aufgaben die sonst manuell von tontechnischem Personal erledigt werden müssen, automatisch auszuführen. In dieser Arbeit werden Einsatzszenarien für ein Mikrofonarray mit Beamforming- funktion und einer optischen Sensorik, welche in er Lage ist, Personen zu lokalisieren, entworfen und auf die funktionalen sowie technischen Anforderungen hin analysiert. Zu nennen sind die beiden Kernfunktionalitäten, ein sich automatisch nachführen- des Monomikrofon sowie ein automatisch einstellendens Stereomikrofon. Zudem wird ein solches System weitergedacht und ein Gesamtsystem entworfen, in welchem sich viele weitere Funktionen, inspiriert durch die verwendete Sensorik, gewinnbringend verwenden ließen. Die Funktionalität des automatischen Nachführens von maximal zwei gerichteten Mikrofonen, zeigend auf sich bewegende Personen, wird exemplarisch realisiert. Ver- wendet werden dazu ein Ambisonics-Mikrofonarray und ein Microsoft Kinect-Sensor, programmiert wird in der Entwicklungsumgebung vvvv. Im Vorfeld wird detailliert auf Ambisonics und das Beamforming mit Ambisonics eingegangen.
  5. 5. 1 Einleitung Ein technisches intelligentes System ist entweder ein System, welches Entscheidungen aufgrund von Erfahrungen in Form von gespeicherten Daten oder aufgrund von sen- sorischen Daten trifft. Das hier behandelte System ist der zweiten Art zuzuordnen. Es handelt sich um ein Mikrofonsystem welches als zusätzlichen Eingang eine opti- sche Sensorik besitzt. Diese optische Sensorik liefert Daten an eine interpretierende Software und macht das Mikrofon dadurch intelligent. Doch was für eine Intelligenz benötigt ein Mikrofon? Und was nützt sie ihm? Das Mikrofon dieses Systems ist kein einfaches Mikrofon, sondern ein Mikrofonar- ray. Das System ist dadurch in der Lage, durch Beamforming virtuelle, gerichtete Mikrofone in frei wählbarer Anzahl, in frei wählbare Raumrichtungen und in einer frei wählbarer Richtcharakteristik zu erstellen. Wenn nun das System durch den Input der optischen Sensorik, also z.B. einer RGB- und einer 3D-Kamera, in der Lage ist, die ihm sichtbare Situation in eine Mikrofonaufnahme zu übersetzen und das Mikrofon dementspechend zu steuern, dann kann man dieses ein intelligentes Mikrofonsystem nennen. Für solch ein System, welches insbesondere in der Lage ist, Menschen zu erkennen und diese bestmöglich zu mikrofonieren, sollen Einsatzszenarien entworfen werden. Anhand dieser Einsatzszenarien kann man die einzelnen Funktionalitäten, welche solch ein Mikrofonsystem sinnvoll machen, herausarbeiten und auf ihre technische Realisierbarkeit hin untersuchen. Diese Aufgabe ist ein Teil der Zielsetzung dieser Arbeit. Zudem soll ein Anfang ge- macht werden, genau solch ein System als ein Computerprogramm zu realisieren. Da- bei wird der abstrakte „Alleskönner“ reduziert auf eine konkrete Basisfunktion. Das Ergebnis soll ein Angebot sein, immer mehr von diesem Abstrakten in das Konkrete zu überführen. Eine exemplarische, leicht erweiterbare Softwareentwicklung wird in dieser Arbeit angestrebt. 1
  6. 6. 2 Einsatzszenarien Im Folgenden werden drei Einsatzszenarien vorgestellt in denen ein intelligentes Mi- krofonarray äußerst gewinnbringend eingesetzt werden kann. Nach der Beschreibung eines jeden Szenarios findet sich eine Auflistung der verwendeten Funktionalitäten. Ein numerischer Verweis auf die Funktionalität in der Liste ist dabei in die beschrei- bung der Szenarien mit eingearbeitet. Die hier vorgestellten Sammlung an Funktionen des Gesamtsystems erhebt keinerlei Anspruch auf Vollständigkeit. Trotzdem wurde jedoch versucht, die Hauptfunktiona- litäten, die mit solch einem System zu realisieren wären, zu erwähnen und auch in einen sinnvollen Kontext zu bringen. 2.1 Vortrag und Präsentation Der Vortragender betritt die Bühne und stellt sich vor ein Rednerpult. Die Positi- on des Redners wird optisch erfasst und das Mikrofonarray generiert ein virtuelles Richtmikrofon, dessen Hauptaufnahmerichtung immer auf den Redner gerichtet ist (1). Nach ein paar Worten entfernt sich der Redner vom Rednerpult in Richtung der Projektion seiner Präsentationsfolie, um auf ihr etwas zu verdeutlichen. Dabei zeigt die Hauptaufnahmerichtung weiterhin in Richtung des Redners. Da der Redner nun wahrscheinlich einen anderen Abstand zum Mikrofonarray hat, wird sich auch der Schallpegel verändert haben, den das Mikrofon empfängt. Dieses Problem kann durch Einbinden von Audioeffekten, wie z.B. Kompressoren, abgeschwächt werden (2). Da aber auch die Positionsdaten dazu verwendet werden können, den Abstand zwischen Redner und Mikrofon zu ermitteln, kann der akustische Pegelabfall auch durch eine berechnete Pegelerhöhung versucht werden, zu kompensieren (3). Das Weiterschalten der Präsentationsfolien führt der Vortragende per Gestensteuerung aus. Dazu hält er seine Hand nach oben in Richtung der Projektion, greift in die Luft und bewegt die Hand nach links oder rechts, um sich in der Präsentation vor oder 2
  7. 7. 2 Einsatzszenarien zurück zu bewegen (4). Ein weiterer Redner tritt auf die Bühne, um ein spezielles Unterkapitel zu bespre- chen. Sobald er die Bühne betreten hat und seine Position erkannt wird, generiert das System ein weiteres virtuelles Richtmikrofon, welches den zweiten Sprecher verfolgt (5). Außerdem wird automatisch ein Jingle oder eine Einlaufmusik eingespielt, wel- cher oder welche das Auftreten des Sprechers einleitet (6). Für die Zeit, in welcher dieser spricht, stellt sich der erste Vortragende an den Bühnenrand, in einen sog. „stummen“ Bereich. Der ihm zugeordnete Mikrofonkanal wird während des Aufent- halts in diesem Bereich stummgeschaltet (7). Am Ende des Kurzvortrages des zweiten Sprechers kommt es zu einem Dialog zwi- schen den beiden Personen auf der Bühne (natürlich darf sich keiner von beiden im stummen Bereich aufhalten). Beiden sind unterschiedliche Audiokanäle zugewiesen, lassen sich unabhängig voneinander aufzeichnen (8) und sind also auch unabhängig voneinander pegelbar. Dies allerdings im Rahmen der verwendeten Richtcharakteris- tik und der daraus resultierenden Quellentrennung. Der zweite Redner tritt wieder von der Bühne ab und entfernt sich in diesem Fall aus dem Erfassungsbereich des optischen Sensors, sein virtuelles Richtmikrofon wird daraufhin deaktiviert (9). Jede von der Automation vorgenommene Einstellung wurde währenddessen von dem Tonverantwortlichen auf der grafischen Benutzeroberfläche verfolgt. Es ist ein Live-Kamerabild der optischen Sensorik zu sehen, auf welcher die erkannten und getrackten Personen markiert sind (10). Die virtuellen Mikrofone, die auf diese ge- trackten Personen gerichtet sind, werden durch ein 3D-Rendering der Richtcharak- teristik perspektivisch richtig dargestellt (11). Auf alle Parameter kann der Tonver- antwortliche manuell Einfluss nehmen. Er kann die Richtcharakteristik der virtuellen Mikrofone verändern und diese stummschalten. Er kann das automatische Verfolgen deaktivieren und die Ausrichtung eines virtuellen Richtmikrofons mittels der Com- putermaus auf einem Kamera-Livebild manuell nachführen (12). Mit der Computer- maus kann er beliebig viele weitere virtuelle Richtmikrofone im Raum platzieren und wieder entfernen (13). Auch bestimmt der Tonverantwortliche das Audio-Routing der entstandenen Kanä- le. Beide auf der Bühne erschienenen Sprecher wurden einzeln aufgezeichnet und die Signale, gemischt zu einem Monosignal, auch an die Beschallungsanlage weitergege- ben (14)(15). Kurz vor Ende der Veranstaltung kommt es zu einer Fragerunde bzw. einer Dis- 3
  8. 8. 2 Einsatzszenarien kussion zwischen den Zuhörern und dem Vortragenden. Es ist vorgesehen, dass den Fragenden im Publikum ein Mikrofon gereicht wird, einerseits, um sie über die Be- schallungsanlage besser verständlich zu machen, andererseits um die Fragen auch auf der Audio-Aufzeichnung der Veranstaltung hörbar zu haben. Leider beginnt der Fra- gende im Publikum zu sprechen, bevor ein Tonassistent ihn mit einem Handmikrofon erreichen konnte. Der Tonverantwortliche hatte aber, sobald er den Wunsch zu spre- chen der Person im Publikum vernommen hatte, ein virtuelles Mikrofon, gerichtet auf die entsprechende Seite im Publikumsraum, erstellt (13). Auch, wenn der Fra- gende aufgrund der großen Entfernung nur leise zu hören war, so ist der Beginn seiner Anmerkungen und Fragen, bis das Handmikrofon bei ihm angekommen war, auf der Aufzeichnung deutlich zu hören. Funktionen: 1. automatisch ausrichtendes Mono-Verfolgermikrofon 2. Einbinden von Audioeffekten in den Signalweg 3. Pegelsteuerung durch Distanzmessung 4. Gestensteuerung von peripherer Software 5. simultanes Bereitstellen von mehreren unabhängigen virtuellen Mikrofonen 6. Auslösen von Ereignissen durch Betreten des Erfassungsbereiches des optischen Sensors, z.B. Starten von Audio-Einspielungen. 7. Auslösen von Ereignissen durch Betreten eines vorher definierten Bereiches. 8. Audio-Aufzeichnung der virtuellen Mikrofone 9. Registrieren des Verlassens des Erfassungsbereiches 10. Monitoring der Tracking-Ergebnisse und der daraus resultierenden Parameter für die Mikrofonsteuerung 11. 3D-Visualisierung des Mikrofons in einem Kamerabild mit Richtcharakteristik und Ausrichtung 12. manuelle Einflussnahme auf alle Parameter, Abschalten der Automation 4
  9. 9. 2 Einsatzszenarien 13. manuelles Hinzufügen von virtuellen Richtmikrofonen und komplett manuelle Definition 14. Audio-Aufzeichnung 15. Generieren von Audio-Mischungen aus den zur Verfügung stehenden Audio- kanälen in Mono oder Stereo. 2.2 Diskussionsrunde Der Moderator einer Diskussionsrunde betritt die Bühne und begrüßt das anwesen- de Publikum. Wie auch im Vortragsszenario, beschrieben in Kapitel 2.1 wird ein virtuelles Mikrofon generiert, dessen Hauptaufnahmerichtung ihn verfolgt (1). Der Tonverantwortliche löst über die grafische Benutzeroberfläche die Einspielung eines Jingles oder einer Einlaufmusik aus (16). Ein Teilnehmer der Diskussionsrunde be- tritt die Bühne und bewegt sich in Richtung des ihm zugewiesenen Stuhls. Als er einen bestimmten Bereich auf der Bühne passiert, blendet sich der Jingle automatisch aus (7). Auch wird ihm ein weiteres, virtuelles Mikrofon zur Verfügung gestellt (5). Die- ses kann entweder ortsfest auf die Sitzposition des Teilnehmers gerichtet (17), oder wie beim Moderator als Verfolgermikrofon ausgelegt sein. Weitere Gesprächsteilnehmer können der Diskussion beitreten, es findet der glei- che Ablauf statt. Verlässt ein Teilnehmer die Diskussionsrunde, wird das virtuelle Mikrofon deaktiviert und beim Abtreten von der Bühne wieder ein Jingle eingespielt, der sich nach vorgegebener Zeit automatisch ausblendet(9). Die Anordnung der Dis- kussionsteilnehmer bilden dabei mögliche Formen wie eine Reihe oder einen Kreis. Auch an einem Tisch sitzend kann man sie sich vorstellen. Die einzelnen virtuellen Mikrofonkanäle werden zwar einzeln aufgezeichnet, gleichzeitig wird aber ein Mix erzeugt, bei welchem alle Diskussionsteilnehmer in einem Stereobild gleichmäßig von links nach rechts angeordnet sind. Dies ist unabhängig davon, wie viele es sind und ob sie z.B. in einer Reihe oder einem Kreis gesessen haben (15). Das Stereobild wird gebildet durch Panning innerhalb der Software, es entsteht also Intensitätsstereofonie (18). Neue Funktionen: 16. Auslösen von Ereignissen über die grafische Benutzeroberfläche 5
  10. 10. 2 Einsatzszenarien 17. Arretieren der Position von automatisch aktivierten virtuellen Mikrofonen 18. automatisches Panning, Anordnen auf der Stereobreite. 2.3 Konzertabend Ein Moderator tritt auf die Bühne. Dieser Moderator wird vom System als Mode- rator identifiziert, da bestimmte Eigenschaften seines Körpers, wie z.B. die Beschaf- fenheit seines Gesichtes dem System vorher bekanntgemacht worden sind. Wie aus den anderen Szenarien bekannt, wird ein virtuelles Richtmikrofon erzeugt, welches aber nur den Moderator verfolgt (1)(19). Er spricht zum Publikum und kündigt ein Gesangsensemble an. Der Moderator verlässt die Bühne, der Mikrofonkanal wird entfernt (9). Da sich der Moderator, welchen das System ja identifizieren kann, nicht mehr im Erfassungsbereich des optischen Systems befindet, wechselt das System auto- matisch den Betriebsmodus (20). Wäre der Moderator vorher nicht mit dem System bekannt gemacht worden, hätte an dieser Stelle der Tonverantwortliche den Betriebs- modus manuell wechseln können. Im Folgenden wird die Mikrofonsteuerung nun keine virtuellen Verfolgermikrofone generieren, sondern arbeitet in einem Stereo-Modus. Das Gesangsensemble begibt sich auf die Bühne und stellt sich auf. Dabei wird die Position der äußeren Sänger links und rechts erfasst und anhand dieser Information der Stereo-Aufnahmebereich sowie die optimale Richtcharakteristik für ein virtuelles XY-Stereo-Mikrofon berechnet und eingestellt (21). Zum letzten Stück des Ensembles kommen einige weitere Sängerinnen und Sänger auf die Bühne, der Aufnahmebereich des Stereomikrofons vergrößert sich auf einen automatisch erfassten Wert. Damit sich während der Gesangsdarbietung und bei leichten Bewegungen der äußeren Sänger die Einstellungen des Stereo-Mikrofons nicht verändern, hat der Tonverantwortliche den automatisch eingestellten Stereo-Aufnahmebereich arretiert, vor Vergrößerung des Ensembles die Arretierung aber gelöst, damit sich der Aufnahmewinkel neu einstellen kann (22). Neben den Signalen des virtuellen XY-Stereomikrofons wurden auch noch MS- Stereofoniesignale aufgezeichnet (14)(23). Selbstverständlich hätte man bei Auf- zeichnung der Ausgangssignale des Mikrofonarrays auch im Nachhinein noch ein MS-Signal oder auch ein anderes Stereosignal generieren können, so steht aber di- rekt nach der Aufzeichnung schon ein gebrauchsfertiges und variables Stereoformat zur Verfügung. 6
  11. 11. 2 Einsatzszenarien Den nächsten Programmpunkt des Konzertabends bilden zwei Schlagzeuger, die mit mehreren, auf der Bühne aufgebauten Instrumenten ihr aufzuführendes Stück ge- stalten. Sie werden sich dabei viel bewegen, eine automatische Einstellung des Stereo- Aufnahmebereichs ist deshalb nicht sinnvoll. Der Tonverantwortliche markiert in ei- nem Kamerabild des optischen Sensors mit der Computermaus die Außenpunkte des Aufnahmebereichs, die ihm als schlüssig erscheinen. Die Mikrofonsteuerung berechnet daraus wieder ein virtuelles Stereomikrofon. Dem Tonverantwortlichen werden hierbei alle Parameter wie z.B. Versatzwinkel der virtuellen Mikrofone für links und rechts, Aufnahmewinkel bzw. -bereich und die gewählte Richtcharakteristik angezeigt. Auf alle Parameter kann er hierbei manuell Einfluss nehmen(24). In einer vorangegangenen Probesituation, die auch aufgezeichnet werden sollte, ha- ben die Schlagzeuger die Einstellung per Gestensteuerung gelöst. Dabei wurde durch Stehen an einer der Grenzen des Aufnahmebereichs und durch eine nachfolgende, be- stimmte Geste ein Randpunkt des Aufnahmebereichs festgelegt. Dies geschah selbst- verständlich an beiden Grenzseiten des Bereichs (25). Dass die Einstellung erfolgt ist, wurde den Musikern über eine akustischer Rückmeldung des Systems mitgeteilt (26). Auch das Starten und Beenden der Aufnahme ließ sich von den Musikern per Gestensteuerung vollziehen (27). Neue Funktionen: 19. Zuweisung bestimmter Funktionen nur an optisch identifizierte Personen 20. Definition verschiedener Betriebsmodi 21. Stereo-Mikrofonierung mit automatisch einstellendem Stereo-Aufnahmebereich 22. Arretierung des Aufnahmebereichs des automatisch eingestellten virtuellen Ste- reomikrofons 23. Virtualisierung von mehreren Stereomikrofonen in unterschiedlichen Stereo- Aufzeichnungsformaten 24. Manuelles Hinzufügen von virtuellen Stereomikrofonen und komplette manuelle Definition 25. Gestengesteuerte Definition eines Stereo-Aufnahmebereichs 26. akustische Rückmeldung über erfolgte Einstellungen 7
  12. 12. 2 Einsatzszenarien 27. Gestengesteuertes Starten und Beenden einer Aufnahme 2.4 Funktionen und ihre Systemanforderungen Die Funktionen in den beispielhaften Einsatzszenarien (siehe Kapitel 2) sind dem ers- ten Einsatz nach geordnet. Diese Reihenfolge macht Sinn, um die vielfältigen Funk- tionen in einem sinnvollen Kontext darzustellen. Auch kann diese Darstellung dazu führen, den Leser zu inspirieren, die beschriebenen Situationen weiterzudenken und möglicherweise weitere ihm sinnvoll erscheinende Funktionen zu finden. Für eine tiefergehende Betrachtung der Funktion, insbesondere mit dem Augen- merk auf eine technische Realisierung dieser, ist eine Einordnung der Funktionen mittels der folgenden Kategoriesierung sinnvoller: Alle Funktionen lassen sich eintei- len in Kernfunktionen, abgeleitete Funktionen und periphere Funktionen. Zusätzlich einzuordnen sind Funktionen aus Kapitel 2, die im eigentlichen Sinne Gestaltungs- merkmale einer Benutzerschnittstelle sind. Kernfunktionen sind nur sehr wenige Funktionen, die aber die Beschaffenheit und Erweiterbarkeit des Systems prägen. Die meisten in Kapitel 2 vorkommenden Funk- tionen gehören zu solch einer Kernfunktion und sind ihr unterstellt. Sie werden durch diese erst realisierbar und auch sinnvoll, heißen also abgeleitete Funktionen. Die pe- ripheren Funktionen haben nichts mit den Kernfunktionen zu tun und extendieren das System in weitere Richtungen. Die peripheren Funktionen sind nicht „mikrofon- motiviert“, aber inspiriert durch die verwendete technische Auslegung. Gestaltungs- merkmale der Benutzerschnittstelle sind diese Funktionen, die es dem System er- möglichen, Informationen an den Benutzer zu leiten und wiederum dem Benutzer ermöglichen, Befehle an das System zu geben. 2.4.1 Automatisches Mono-Verfolgermikrofon und abgeleitete Funktionen Das automatisch ausrichtende, virtuelle Mono-Verfolgermikrofon ist eine Kernfunkti- on des Systems. Es erkennt, ob sich Personen im Erfassungsbereich befinden, generiert ein Mikrofon, richtet seine Hauptaufnahmerichtung automatisch auf diese Person und hat dabei eine feste oder wählbare Richtcharakteristik. Es ist also definiert über die Zeigerichtung und die Richtcharakteristik. 8
  13. 13. 2 Einsatzszenarien Steuerungssoftware Human Detection/ Gesichtsdetektion Audiosig.-verarb.: Beamforming Winkelangaben der erkannten Person Monosignal des virt. Mikrofons Kamera Mikrofonarray Abbildung 2.1: Blockschaltbild des Mono-Verfolgermikrofons Das virtuelle Mikrofon wird durch Beamforming des Mikrofonarrays generiert. Die Steuerungssoftware, welche die Audiosignalverarbeitung in Echtzeit und damit auch die Steuerung des Beamforming übernimmt, muss also an folgende Informationen gelangen: Gibt es eine Person, für welche ein virtuelles Mikrofon generiert werden soll und wenn ja, wo befindet sich diese. Dazu erhält die Steuerungssoftware Bild- informationen eines optischen Systems. Durch eine Analyse dieser Bilddaten, kann die Software nun einerseits die Präsenz von Personen und auch Standortinforma- tionen dieser erfassen. Hierzu bieten sich zwei Technologien an: Human Detection und Gesichtsdetektion. Bei beiden wird nach menschlichen Mustern im Bild gesucht. Dieser Prozess kann auf 2D-Kamerabilder in Graustufen oder RGB, ein Farbbild, angewendet werden. Während nun Human Detection sich auf das Finden von For- men, die menschlichen Körpern entsprechen bezieht, wird bei der Gesichtsdetektion allein nach typischen Mustern gesucht, wie menschliche Gesichter sie darstellen. Hier lassen sich schon erste Vor- und Nachteile der Erkennungstechniken ausmachen: Soll- te sich eine Person im Erfassungsbereich der Kamera aufhalten und nicht verdeckt sein, so wird ihr Körper immer zu erkennen sein. Das Gesicht ist dagegen nur dann erkennbar, wenn es auch in Richtung der Kamera zeigt. Das Gesicht hat aber den Vorteil, dass wenn es zu sehen ist, es unwahrscheinlicher von anderen Gegenständen 9
  14. 14. 2 Einsatzszenarien verdeckt wird, als der Rest des Körpers. So können bei Human Detection Möbel wie z.B. ein Rednerpult einen großen Teil der Person verdecken und die Erkennung stark erschweren. Auch Interaktionen mit Gegenständen können hier zu Problemen führen, was bei der Gesichtsdetektion sicherlich seltener der Fall ist. Natürlich spricht nichts dagegen, beide Technologien gleichzeitig oder eine von beiden als Ausfallschutz, also als sog. Backup-Lösung zu verwenden. Ist eine der beiden Methoden erfolgreich, eine Person im Bild also detektiert und sind die Abbildungseigenschaften der Kamera bekannt, so kann aufgrund der Positi- on der erkannten Muster in der Abbildung eine erste Lokalisation erfolgen. Es kann ein vertikaler und horizontaler Winkel relativ zur optischen Achse der Kamera ange- geben werden, an welchem sich die erkannte Person aus Sicht der Kamera aufhält. Bei einer Ausrichtung des Mikrofonarrays an der optischen Achse der Kamera und theoretisch gleicher Position des Mikrofonarrayzentrums und der Kamera, kann der erfasste horizontale und vertikale Winkel als Ausrichtung für das Beamforming ver- wendet werden. Sollte das Mikrofonarray an einem anderen Ort stehen, so fallen die Winkelangaben für die Ausrichtung selbstverständlich anders aus. Hierzu müssen der Steuerungssoftware Positionsangaben des Arrays, relativ zur Kamera, vorliegen, um den entsprechenden Ausrichtungswinkel berechnen zu können. Für das Mono-Verfolgermikrofon ist also ein für das Beamforming erforderliches Mi- krofonarray, eine Videokamera sowie Software für Echtzeit-Audiosignalverarbeitung und Bildanalyse mit Human Recognition oder Gesichtserkennung die Mindestanforde- rung. In der schlichtesten Ausführung kann das System eine Person verfolgen und ein Mono-Mikrofon virtualisieren. In Abbildung 2.1 findet sich dieses System als Block- schaltbild skizziert. Mehrere, simultane Mono-Verfolgermikrofone (5) Die Bereitstellung von mehreren, simultanen virtuellen Mikrofonen ist allein eine Anforderung an die Software. Die Signale des Mikrofonarrays können kopiert und theoretisch unendlich oft bearbeitet werden. Der Bildanalysealgorithmus, der Human Detection oder Gesichtsdetektion ausführt, muss dafür natürlich in der Lage sein, mehr als einen Menschen im Kamerabild zu erkennen. Es stellt sich nun aber die Frage, wie mit mehreren Ausgangssignalen umgegangen wird. Die Audiosignalverar- beitung wird die Signale der einzelnen virtuellen Mikrofone vorerst getrennt halten und kann diese in getrennten Audiokanälen ausgeben oder an eine weiterführende 10
  15. 15. 2 Einsatzszenarien Signalverarbeitung weitergeben. Manuelle Einstellung des Monomikrofons Es kann der Wunsch bestehen, die Automation des Mikrofons vollständig oder in Teilen zu deaktivieren. Das Aktivieren und Deaktivieren von Mono-Mikrofonen, die Festlegung der Anzahl an virtuellen Mikrofonen und auch die Richtung, in welche der Beam zeigt, kann manuell eingestellt werden. Mit der Erweiterung des manuellen Ein- griffs in die komplette oder teilweise Steuerung verändert sich nichts am Grundmodell des Systems, allein die Notwendigkeit einer Benutzerschnittstelle kommt hinzu. Die Daten der Benutzereingaben können identisch zu den von der Automation erzeugten Steuerdaten verarbeitet werden. Diese Benutzerschnittstelle findet sich in Kapitel 2.4.4 genauer beschrieben. Automatische Pegelsteuerung Bei einem sich bewegenden Redner sind erhebliche Pegelschwankungen zu erwarten. Eine Verdopplung des Abstandes zum Mikrofon führt zu einer Dämpfung des vom Mikrofon gewandelten Schalldruckpegels von 6 dB. In der Praxis kann durch den Ein- satz von Audio-Kompressoren diese unerwünschte Erscheinung abgeschwächt werden. In den meisten Fällen wird aber, um immer einen angemessenen Signalpegel zu er- reichen, ein manuelles Pegeln des Mikrofonsignals von einer Person mit wachsamem Auge von Nöten sein, die den Abstand zwischen Mikrofon und Redner überwacht. In der Konzeption des automatischen Mono-Verfolgermikrofons ist jedoch schon ein „Auge“, die Kamera, Bestandteil des Systems. Wenn sich eine Person weiter von der Kamera entfernt, so wird auch die Abbildung dieser Person im aufgenommenen Kame- rabild kleiner. Da die Person entweder mit Gesichtsdetektion oder Human Detection erkannt sein sollte, können auch die Ausmaße im Kamerabild ausgelesen werden. Das Problem hierbei ist, dass Menschen und auch ihre Gesichter unterschiedlich groß sind. Um wirklich absolute Angaben über ihre Entfernung aus dem Kamerabild machen zu können, müsste die automatische Pegelsteuerung für jede Person einzeln kalibriert bzw. eingestellt werden. Natürlich kann eine Kalibrierung mit Durchschnittswerten als Standardeinstellung dienen um diese Funktion immer auch ohne personenspezifi- sche Einstellung zur Verfügung zu stellen. Eine weitere Möglichkeit, den Abstand zwischen Mikrofon und Person zu ermitteln ist der Einsatz eines Tiefensensors, also einer dreidimensionalen Bilderfassung. Wenn 11
  16. 16. 2 Einsatzszenarien das Bild der Kamera in 3D erfasst wird, können absolute Angaben über die Position der erkannten Person gemacht werden. Die vom optischen System bereitgestellten Daten sind ausreichend, um eine über den horizontalen und vertikalen Winkel hin- ausgehende Angabe über den Standpunkt zu machen: Es kann zusätzlich noch der Radius, also der Abstand zwischen der Person und der Kamera angegeben werden. Mit den vollständigen Angaben der Position in Kugelkoordinaten, welche aber auch aus der erwähnten 2D-Entfernungsberechnung gewonnen werden können, kann dann die Position in Koordinaten eines kartesischen Koordinatensystems umgerechnet wer- den. Wenn die Position des Mikrofons in diesem von der 3D-Kamera ausgehenden Koordinatensystem bekannt ist, kann aus der Position des Sprechers sehr einfach die Entfernung zum Mikrofon ermittelt werden. Die Verwendung von Tiefenbilderfassung hätte noch einen anderen, dem System zu- träglichen Vorteil. Bilddaten in 3D erleichtern stark die sog. Background-Substraction (Shotton et al. 2013). Background-Substraction ist ein Teil der Bearbeitungsschritte, der bei Human Detection und Gesichtsdetektion angewendet wird. Diese bildverarbei- tende Methode versucht, den Vordergrund eines Bildes vom Hintergrund zu trennen. In der Regel ist es der bewegte Vordergrund einer Szenerie, in dem sich die für die Analyse interessanten Informationen befinden, wie Personen oder Objekte. Erzeugen von Anweisungen für automatisches Panning Das automatisches Panning, also das durch Pegelverhältnisse in den Stereokanälen erzeugte Anordnen von Mono-Signalen auf der Stereobreite ist eine Funktion, die nicht eindeutig der Kernfunktion Mono-Verfolgermikrofon zugeordnet werden kann. Das Mono-Verfolgermikrofon ist lediglich die Funktion, die einzelne Mikrofone virtua- lisiert und gute, verwendbare Signale bereitstellen soll. Das Pannen von diesen Signa- len ist Aufgabe einer nachfolgenden Signalverarbeitung. Jedoch ist notwendigerweise der Funktion Mono-Verfolgermikrofon die Position der aufzunehmenden Personen bekannt. Es können also neben den Mikrofonsignalen Steuerinformationen bzw. Me- tadaten an andere Systemteile weitergegeben werden. Dabei muss für die Funktion des automatischen Pannings aber nicht zwangsläufig die Position bekannt sein. Mit Positionsangaben lässt sich eine realistische Verteilung auf einer Stereobreite darstel- len, aber die Signale können jedoch auch einfach gleichmäßig im Stereo-Panorama verteilt werden. Abbildung 2.2 zeigt dies und verdeutlicht das automatische Panning. 12
  17. 17. 2 Einsatzszenarien Kamera Person 1: - 70 ° Person 3: 5 ° Person 2: -26 ° -90 ° 100% links Mitte 100% rechts -60 ° 0 °-30 ° 30 ° 60 ° 90 ° 1. Realistische Stereo-Abbildung Person 1 Person 2 Person 3 0 ° 30 ° 60 ° 90 °-30 °-60 °-90 ° 100% links Mitte 100% rechts Person 1 Person 2 Person 3 2. Veränderte, gleichmäßige Stereo-Abbildung Personen im Kamera-Erfassungsbereich Abbildung 2.2: Automatisches Panning mit zwei unterschiedlichen Ergebnissen 13
  18. 18. 2 Einsatzszenarien 2.4.2 Automatisches Stereo-Mikrofon und abgeleitete Funktionen Das automatisch ausrichtende und einstellende Stereomikrofon ist eine weitere Kern- funktion des Systems. Die Steuerungssoftware erkennt wie das Mono-Verfolgermikrofon mittels Human Detection oder Gesichtsdetektion aus einem Kamerabild, ob sich Per- sonen im Erfassungsbereich befinden. Dabei behandelt die Software diese aber nicht individuell, sondern erfasst den Klangkörper, den diese Menschen zusammen darstel- len. Die Ausdehnung dieses Klangkörpers wird vom System als Winkel bestimmt und der Wert dieses Winkels als Stereo-Aufnahmebereich verstanden. Dieser Wert kann natürlich auch nur Bestandteil einer Berechnung des Stereo-Aufnahmebereichs sein, falls z.B. nicht die komplette Stereobreite ausgenutzt werden soll. Die Beschreibung des Stereomikrofons im Einsatzszenario „Konzertabend“ (sie- he Kapitel 2.3) beschränkte sich nur auf ein XY-Stereomikrofon welches der Inten- sitätsstereofonie zuzuordnen ist. Je nach verwendetem Mikrofonarray können aber verschiedene Stereo-Aufnahmeverfahren verwendet werden. Bei einem räumlich aus- gedehnten Mikrofonarrays wie Linienarrays oder großen ringförmigen Mikrofonarrays wäre beide, Laufzeit- und Intensitätsstereofonie möglich. Bei Laufzeitstereofonie würden Kapselpaare ausgewählt, die entsprechend weit aus- einanderliegen, dass der gewünschte Aufnahmebereich eingestellt ist. Sind die Kap- seln der Mikrofone Druckempfänger, haben also eine Kugelrichtcharakteristik, so sind mindestens 17 cm Kapselabstand für Laufzeitstereofonie erforderlich (Görne 2011). Um den Aufnahmebereich zu variieren, sind wesentlich größere Kapselabstände nötig. Ein ringförmiges Mikrofonarray wird beispielsweise bei einem Durchmesser von 1m schon recht unhandlich. Bei Intensitätsstereofonie würden wie beim Mono-Verfolgermikrofon mittels Be- amforming zwei koinzidente, also in einem Punkt befindliche, gerichtete, virtuelle Mikrofone generiert. Für die Realisierung eines Mikrofons mit dem gewünschten Auf- nahmebereich lässt sich die ideale Kombination aus Richtcharakteristik und der Ver- satzwinkel der Mikrofone ermitteln. Für jedes Koinzidenz-Stereomikrofon gibt es je nach gewählter Richtcharakteristik den theoretisch perfekten Versatzwinkel der ein- zelnen Mikrofone, bei dem das Stereomikrofon über den gesamten Aufnahmebereich mit fast gleichem Pegel aufnimmt (Görne 2011). Stellt man sich die Größe des Auf- nahmebereichs auf einem Zahlenstrahl aufgetragen vor, so gibt es also verschiedene Intervalle, in denen sich die Wahl einer bestimmten Richtcharakteristik anbietet. Zu 14
  19. 19. 2 Einsatzszenarien dieser Richtcharakteristik muss dann der passende Versatzwinkel der beiden virtuel- len Mikrofone berechnet werden. Dieses nun im Aufnahmebereich an den Klangkörper angepasste Stereomikrofon kann analog zum Mono-Verfolgermikrofon in die Richtung des Klangkörpers rotiert werden. Das automatische Stereomikrofon definiert sich also über Zeigerichtung, Aufnahmebereich und Richtcharakteristik der beiden einzelnen Mikrofone. Manuelle Einstellung des Stereomikrofons Wie auch beim Monomikrofon kann es beim Anwender das Bedürfnis geben, das Stereomikrofon komplett selbst einzustellen, Stereomikrofone zu aktivieren und zu deaktivieren oder die Automation nur in Teilen zu deaktivieren. Dabei verändert sich auch beim Stereomikrofon nichts am grundsätzlichen Aufbau. Die nun nicht mehr von der Automation übernommenen Aufaben müssen vom Benutzer getätigt werden und dafür muss ihm durch die Befehlsstruktur der Software eine Möglichkeit gegeben werden. Es wird deshalb zusätzlich eine Benutzerschnittstelle benötigt. 2.4.3 Audiomischung, -routing und -aufzeichnung Nachdem nun von den Mikrofon-Kernfunktionen Audiosignale erzeugt wurden, wäre es sinnvoll, diese für eine bestimmt Verwendung gleich weiterzuverarbeiten. Es hat notwendigerweise für das Beamforming eine Audiosignalverarbeitung gegeben, diese besteht bei Beamforming jedoch aus den Funktionen Verzögerung, Invertierung, Mul- tiplizierung mit Koeffizienten und Summierung. Um eine sinnvolle Nachbearbeitung unter Beachtung der in Kapitel 2 erwähnten Funktionen zu ermöglichen, muss die Au- dioweiterverarbeitung Monosignale durch entsprechende Gewichtung in den Kanälen zu Stereosignalen mischen können, Monosignale zu einer Mono-Summe summieren können und eine Aufzeichnungsfunktion haben. Für die Aufzeichnung müssen die Si- gnale vor dem Beamforming, nach dem Beamforming und nach der Mischung der weiteren Audiobearbeitung aufgezeichnet werden können. Zudem sollte die Möglichkeit in der Software bestehen, die Audiokanäle an frei wählbare Ausgänge sehr variablen zu routen, wie es in professioneller Audiosoftware möglich ist. Diese Ausgänge werden der Mikrofonsystemsoftware durch Audioschnitt- stellen zur Verfügung gestellt. Dabei ist es sinnvoll, für das Audiorouting die gleichen Abgriffspunkte zu wählen, wie für die Aufnahme. Denkbar wäre nämlich auch der Fall, 15
  20. 20. 2 Einsatzszenarien dass die Aufnahme nicht in der Mikrofonsystemsoftware stattfinden soll. Falls ein Si- gnal z.B. noch zusätzlich über eine elektroakustische Anlage wiedergegeben werden soll, müsste dieses Signal neben dem Aufnahmekanal auch noch auf einen weiteren Ausgang geroutet werden. 2.4.4 Benutzerschnittstelle Monitoring und Überwachung Um eine vernünftige Überwachung des Systems zu möglich zu machen, müssen alle automatisch und manuell eingestellten Parameter als Zahlen bzw. Text dargestellt werden. Um eine schnelle und einfachere Kontrolle möglich zu machen, bietet sich eine Visualisierung der Parameter an, die Benutzerschnittstelle wird grafisch. Dabei kann das Kamerabild als Basis verwendet werden, welches bei Einsatz einer RGB- oder Graustufen-Kamera sowieso zur Verfügung steht. In dieses Kamerabild können an den Stellen Marker eingeblendet werden, auf welche virtuelle Mikrofone gerichtet sind. Im Bild kann erkennbar sein, ob sich ein Mikrofon automatisch steuert oder ob es manuell eingestellt worden ist. Für diese Darstellungen ist das Rendern von zwei- dimensionalem Bildinhalt erforderlich. Das Kamerabild dient als Hintergrundebene und die visualisierten Informationen werden über dieses gelegt. Angenehm für den Benutzer ist die dreidimensionale Darstellung der Richtcharak- teristik im Raum, welche vom Mikrofon ausgeht und auf den aufzunehmenden Punkt zeigt. Anhand der Abbildungseigenschaften der Kamera kann auf dem zweidimensio- nalen Bild der Kamera die Abbildung eines dreidimensionales Objekts, der Form der Richtcharakteristik, platziert werden und perspektivisch richtig erscheinen. Hierbei kann das Mikrofon, sollte es sich im Bild befinden, von der Abbildung der Richt- charakteristik überlagert werden, was zwar ein falsches, aber je nach Toleranz des Anwenders akzeptables Bild erzeugt. Trotzdem ist für diese Art der Darstellung ein 3D-Bildrendering erforderlich, damit das Modell der Richtcharakteristik in Ausrich- tung und Position perspektivisch richtig erscheint. Die Realisierung von akustischen Signalen, die den Anwender über bestimmte Er- gebnisse im Programmablauf informieren, ist z.B. über einen Signalgenerator oder die Abspielmöglichkeit von Audiodateien auszuführen. Das Audiorouting dieses Signals auf einen dedizierten Signalisierungskanal erscheint sinnvoll, damit Signalisierungs- und Nutzsignale voneinander getrennt werden, das Nutzsignal z.B. auf einem kleinen 16
  21. 21. 2 Einsatzszenarien Lautsprecher des Steuerrechners oder über die Monitorlautsprecher auf einer Bühne wiedergegeben werden können. Steuerung und Benutzereingaben Über die Benutzerschnittstelle soll der Anwender Befehle an die Steuerungssoftware geben können. Dabei ist als Basis die Übermittlung von Parametern per Tastaturein- gabe und das Auslösen von Befehlen per Mausklick auf Schaltflächen sinnvoll. Das Programm soll also vollständig über eine grafische Benutzeroberfläche überwachbar und steuerbar sein. Auch für die Steuerung des Systems ist die Einbindung des Kamerabildes sehr von Vorteil. Die Position des Mauszeigers im Kamerabild kann direkt in einen horizontalen und vertikalen Winkel übersetzte werden. Durch einen Mausklick auf einen Punkt im Kamerabild können z.B. sehr einfach die Parameter für ein virtuelles Monomikrofon gesetzt werden. Neben den klassischen Eingabemethoden bieten sich aufgrund der für die Mikro- fonfunktionalität verwendeten Bildanalysealgorithmen Human Detection oder Ge- sichtsdetektion weitere Möglichkeiten an, das System zu steuern. Die Lokalisierung von Personen und die Anzahl von erkannten Personen können genutzt werden, um Steuerbefehle auszulösen, wie beispielsweise das Stummschalten eines automatischen Mono-Verfolgermikrofons bei Aufenthalt in einem bestimmten Bühnenbereich. Dabei muss, bestenfalls über die essentielle grafische Benutzeroberfläche, diese auf Persone- nerkennung und -lokalisierung basierenden Schnittstelle definiert werden können. Erweitern lassen sich diese auf Bildanalyse basierenden Eingabemethoden durch die weiterverarbeitenden Technologien Gesichtserkennung und Posen- bzw. Geste- nerkennung. Gesichtserkennung ist ein Begriff, der im deutschen Sprachgebrauch oftmals für die beiden Technologien Gesichtsdetektion und Gesichtserkennung (englisch: face re- cognition), also das Identifizieren von Gesichtern verwendet wird. Da aber hier der erste Fall immer als Gesichtsdetektion bezeichnet wurde, ist bei Verwendung des Begriffs Gesichtserkennung immer die identifizierende Methode gemeint. Bei der Ge- sichtserkennung wird die geometrische Anordnung des Gesichts erfasst und parame- trisiert gespeichert. Aufgrund der erlangten Kenntnis über diese Werte, kann das System eine Person identifizieren, wenn bei einer erneuten Erfassung diese Werte mit den gespeicherten in festgelegten Toleranzgrenzen übereinstimmen. Auf die Be- 17
  22. 22. 2 Einsatzszenarien nutzerschnittstelle angewendet bedeutet dies, dass eine Identifizierung von Personen Steuerungsbefehle auslösen kann. Dabei können selbstverständlich unterschiedliche Personen auch unterschiedliche Befehle auslösen. Auch hier ist es empfehlenswert, dass die Steuerung durch Identifizierung über die grafische Benutzerschnittstelle ge- nauer definiert werden kann. Posen und Gestenerkennung (englisch: pose recognition, gesture recognition) ist die tiefergehende Analyse des ganzen Körpers statt nur des Gesichts. Dabei wird bei der Posenerkennung versucht, bestimmte Bestandteile des Körpers zu erkennen. Diese Be- standteile sind mindestens Rumpf, Kopf und Gliedmaße. Eine detailliertere Analyse kann einzelne Glieder bis hin zu einzelnen Fingern umfassen. Sind diese Bestandteile erkannt, wird versucht, die relative Lage dieser Glieder zu ermitteln. Gelingt dies, ist ein dreidimensionales Modell des Körpers erstellt worden, auf dessen Basis man der Person eine prototypische Körperhaltung zuordnen kann. Prototypische Körperhal- tungen sind zum Beispiel liegen, sitzen und stehen. Darüber hinaus können Aussagen getroffen werden, wie die Person von dieser Körperhaltung abweicht, also z.B. einen Arm nach vorne und den anderen nach oben gestreckt hat. Die Gestenerkennung findet Anleihen in der Posenerkennung, verwertet aber noch ein dynamisches Erkennungsmerkmal: die Bewegung der Körperteile. Eine Geste ist definiert durch die Position von Kopf, Händen und Armen, die Formen, welche die Hände bilden sowie die Veränderung dieser Form und der Position. Die Geste „nach etwas greifen“ lässt sich beispielsweise beschreiben durch die folgende Sequenz von Vorgängen: Arm wird ausgestreckt, Finger sind dabei ausgestreckt, Hand ballt sich zu einer Faust, Arm wird wieder eingezogen. Um Posen- und Gestenerkennung zuverlässig und robust durchführen zu können, ist eine Tiefenbilderfassung notwendig. Auf Basis eines zweidimensionalen Bildes ist es erheblich schwerer bis unmöglich, ein dreidimensionales Modell der Körperhaltung von Personen zu erstellen. Falls für die Realisierung der Mikrofonfunktionen aus den oben genannten Gründen schon eine 3D-Kamera zum Einsatz kommt, ist nur noch softwareseitig diese Funktion zu implementieren. Wie auch bei den anderen bildba- sierten Eingabemethoden ist es sinnvoll, diese über die grafische Benutzeroberfläche genauer definieren zu können. 18
  23. 23. 2 Einsatzszenarien 2.4.5 Periphere Funktionen In Kapitel 2 wurden einige Funktionen beschrieben, die nicht dem Betreiben eines Mikrofonsystems dienen. Da sich das Mikrofonsystem aber vielfältigen Steuerungs- arten bedienen kann und für verschiedene Anwendungen geeignet ist, bietet es sich an, die Steuerungsmethoden auf die den Anwendungen naheliegenden Bedürfnisse anzuwenden. Mit der Gestensteuerung lässt sich ein Mikrofonkanal stummschalten, aber genauso ließe sich damit eine Computerpräsentationssoftware steuern. Senden von Steuersignalen über externe Schnittstellen Für das Steuern von externer Software müssen also Schnittstellen in der Software definiert werden. Diese Schnittstellen können dann unabhängig von der zu steuernden Software Befehle einem bestimmten Protokoll entsprechend ausgeben. Denkbar sind zum Beispiel Schnittstellen, die Steuerbefehle an andere Rechner senden lassen, an denen diese von einer Software als Tastaturbefehle ausgegeben werden. Auch könnten bestimmte Gesten über eine MIDI-Schnittstelle Befehle ausgeben, die von anderer Audiosoftware empfangen werden. Audiowiedergabe und Zumischung zu Mikrofonsignalen Eine weitere periphere Funktion ist die Steuerung der Wiedergabe von Audiodateien, wie z.B. Jingles. Diese Funktion könnte natürlich mittels externer, von MIDI-Befehlen gesteuerter Software ausgeführt werden. Bedenkt man jedoch, dass die Mikrofonsys- temsoftware auch eine eigene Audioaufzeichnungsfunktion haben kann, wäre es ange- bracht, die Wiedergabe von Audiodateien über die Benutzerschnittstellen steuerbar zu machen und das Audiosignal den Aufzeichnungs- oder Ausgabesignalen beizumi- schen. Für diese Funktion muss in der Software, wie auch für die akustische Signalisie- rung möglich, ein Audioplayer implementiert werden, dessen Signal für das Routen, Mischen und Aufzeichnen zur Verfügung gestellt wird. Schnittstelle zur Einbindung von Audioeffekten Nicht nur Schnittstellen nach außen, die das Kommunizieren mit externen Software ermöglichen, auch Schnittstellen für externe Software, die die Ergebnisse der Mikro- fonsteuerungssoftware beeinflussen, vergrößern den Funktionsumfang des Mikrofon- systems sinnvoll. Ganz konkret seien hier VST- oder Audio-Unit-Schnittstelle ge- 19
  24. 24. 2 Einsatzszenarien nannt, die das einfache Einbinden von Audioeffekten möglich machen. Sollten die Effekte programmintern eingebunden sein, können sie von den Automationen profitie- ren: Sprachverbesserungs-Effekte könnten z.B. nur für virtuelle Mikrofone eingesetzt werden, die nicht manuell definiert sind, sondern Menschen bzw. Sprecher aufnehmen. Das Komplettsystem mit allen in Kapitel 2.4 beschriebenen Funktionen findet sich unter Abbildung 2.3 als Blockschaltbild. 20
  25. 25. 2 Einsatzszenarien Bildverarbeitung HumanDetection/ Gesichtsdetektion Beamforming 2D-Kamera Mikrofonarray 3D-Kamera VST/ AU VST/ AU Automatische Pegelsteuerung Audiomischung und Panning VST/ AU Audio- Aufzeichnung Audio- Routingauf Ausgangskanäle Mono-undStereosignale Gesichts- erkennung/ Identifikation Posen-und Gestenerkennung Interpretationvon Benutzereingaben Grafische Benutzeroberfläche Audiosignalisierung Maus-undTastatureingaben Steuerbefehleanalle Funktionsmodule ExterneSchnittstellen z.B.MIDI Audiosignalverarbeitung Audio- Player/Signal- generator Audio-Player (Einspielungen, Jingles) Benutzerschnittstelle Abbildung 2.3: Blockschaltbild des Mikrofonsystem in Maximalkonfiguration 21
  26. 26. 3 Mikrofonarrays und Ambisonics 3.1 Mikrofonarrays Mikrofonarrays sind Mikrofone mit mehreren Mikrofonkapseln. Mikrofonarrays kön- nen verschiedenste Formen haben, häufig anzutreffen sind Linienarrays, Kugelarrays und Ringarrays. Diese Arrays können dabei Ausmaße von wenigen Zentimetern bis hin zu mehreren Metern annehmen. Mikrofonarrays werden eingesetzt für Schallfeldanalysen, wie z.B. dem Lokalisieren von Schallquellen oder wie in den besprochenen Einsatzszenarien, für das Beamfor- ming, bei welchem bestimmte Mikrofonrichtcharakteristiken virtuell erzeugt werden. Es hängt vom Mikrofonarray ab, auf welche Art und Weise das Beamforming ausge- führt wird. Dabei unterscheiden sich generell zwei Techniken. Zum einen kann durch den Einsatz von Signalverzögerung und anschließende Summierung der Kapselsignale Beamforming erzielt werden. Eine andere Methode ist das sogenannte differenzielle Beamforming, bei welchem es durch Gewichtung und Subtraktion der Kapselsignale zu Beamforming kommt. Die Parameter der Signalverarbeitung sind in beiden Fällen von sehr vielen Einzelheiten abhängig, eine universeller Algorithmus für ein univer- selles Mikrofonarray schwer zu implementieren. Es gibt jedoch auch Mikrofonarrays, deren Ausgangssignale einer Definition und Normierung entsprechen. Ein Beispiel dafür ist Ambisonics. Ambisonics bezeichnet dabei nicht nur eine Art von Mikrofon, sondern versucht die Aufnahme, Speicherung, den Transport und die Wiedergabe zu definieren. Ambisonics eignet sich zudem zu dreidimensionalem Beamforming. Ambi- sonics soll deshalb als der Standard für die weitere Betrachtung von Mikrofonarrays, Signalverarbeitung und Softwareentwicklung gelten. 22
  27. 27. 3 Mikrofonarrays und Ambisonics 3.2 Ambisonics 3.2.1 Grundlagen Das System Ambisonics beschreibt Verfahren zur Aufzeichnung und Wiedergabe von dreidimensionalen Schallfeldern. Das Schallfeld liegt nach der Aufzeichnung analysiert vor und wird während der Wiedergabe wieder synthetisiert. Dabei kann aufgrund der Analyse des Schallfelds die Synthese abhängig von der Wiedergabesituation erfolgen. Die Wiedergabekanäle sind sind nicht die Aufzeichnungskanäle, sondern werden je nach Lautsprecheranordnung oder Verwendungszweck erst erzeugt. Die Reprodukti- on von Schall mit Höhenkomponente kann von einer beliebigen Lautsprecheranord- nung erzeugt werden, die einen dreidimensionalen Raum aufspannt und den Rezi- pienten umschließt. Es unterscheidet sich somit von kanalbasierten System wie z.B. 5.1 Surround, bei denen jedem Aufzeichnungskanal ein festgelegter Wiedergabeka- nal zugeordnet ist. Ambisonics ist also nicht kanalbasiert sondern schallfeldbasiert. Die Grundlagen dazu wurden von Michael Gerzon in den 1970er Jahren dargelegt. (Gerzon 1973) Ziel des Verfahren ist, die Schalldruckverteilung auf der Oberfläche einer den Re- zipienten umgebenden Kugel zu erfassen. Ist diese Schalldruckverteilung analysiert, hat die Wiedergabeseite die Aufgabe, mit einer Lautsprecheranordnung diese Schall- druckverteilung auf der Kugeloberfläche zu resynthetisieren. Dies geschieht mit der Absicht, den Zuhörer die gleiche akustische Situation wahrnehmen zu lassen, wie sie bei der Aufnahme vorgeherrscht hat. Der Zuhörer befindet sich dazu bestenfalls im Zentrum dieser gedachten Kugel. (Gerzon 1973) Zu dieser vorzunehmenden Analyse wird die Schalldruckverteilung auf der Kugel als Funktion betrachtet, welche sich als Summe von orthonormalen Eigenfunktionen darstellen lässt. Dies ist der Fall, wenn die Funktion quadratintegrierbar über die Einheitskugel ist, es also gilt: ∞ −∞ |f(θ, φ)|2 dx < ∞. (3.1) Bekannt ist ein analoges Vorgehen in der Signalverarbeitung aus der Fourier-Analysis: Im zweidimensionalen Raum lässt sich eine periodische Funktion f (x) auf dem Ein- 23
  28. 28. 3 Mikrofonarrays und Ambisonics Abbildung 3.1: Die Konventionen des hier verwendeten Koordinatensystems, aus (Wi- kipedia 2014) heitskreis, also mit der Periode p = 2π, in eine unendliche Reihe der Form f (x) = ∞ n=−∞ cn · einx (3.2) mit den Fourier-Koeffizienten cn entwickeln.(Gerzon 1973, Papula 2009). Im dreidimensionalen Raum bestehen diese orthonormalen Eigenfunktionen dann nicht mehr nur aus einzelnen Sinus- und Cosinusfunktionen, sondern aus den sog. Kugelflächenfunktionen Y m n (θ, φ) mit der Ordnung n und dem Grad m. Die Kugelflä- chenfunktionen erfahren je nach Anwendungsbereich (z.B. Physik, Chemie, Geologie) eine andere Definition und Notation. Eine häufig verwendete Definition, siehe Poletti (2005), welche auch für die hier folgende Betrachtungen passend erscheint, lautet Y m n (θ, φ) = Nm n · P|m| n (cos θ) · eimφ (3.3) mit Pm n (cos θ) als die zugeordneten Legendre-Polynome mit cos θ als Argument und Nm n als Normierungsfaktoren. Diese ergeben sich aus Nm n = (2n + 1) 4π (n − |m|)! (n + |m|)! . (3.4) 24
  29. 29. 3 Mikrofonarrays und Ambisonics Kugelflächenfunktionen sind es also, mit denen sich die Schalldruckverteilung auf der besprochenen Kugeloberfläche komponentenweise zerlegen lässt. Als Beispiel sei hier eine Lösung der Wellengleichung im dreidimensionalen Raum als Reihenentwicklung angegeben. Gesetzt den Fall, dass alle Schallquellen außerhalb dieser betrachteten Kugel liegen, gilt für die Schalldruckverteilung auf ebendieser: p (r, θ, φ, k) = ∞ n=0 n m=−n Am n (k) jn(kr) Y m n (θ, φ) (3.5) mit dem Radius r, mit jn(x), den Bessel-Funktionen erster Gattung und der Kreis- wellenzahl k = ω c mit c, der Schallgeschwindigkeit (Poletti 2005). Die räumliche Auflösungsmöglichkeit sinkt, wenn die Reihe früher abgebrochen wird, also für n ≤ ∞. Dies ist logisch nachvollziehbar: n bestimmt die Ordnung der Kugelflächenfunktionen und ein maximal festgelegtes n, wir nennen es N, legt die Anzahl der in dieser Summe verwendeten Kugelflächenfunktionen fest. Wenn n also beschränkt ist, wird die Anzahl der Komponenten, die das Schallfeld beschreiben, endlich, die Genauigkeit der Beschreibung dadurch auch. In der Praxis, und bezogen auf die Wiedergabesituation bei Ambisonics, bedeutet dies, dass die Ausdehnung des Sweet-Spots sinkt, je kleiner N wird. Der Sweet-Spot befindet sich im Zentrum der mit Gleichung 3.5 beschriebenen Kugeloberfläche. Je größer N wird, desto weiter kann sich der Kopf eines Rezipienten aus dem Zentrum der gedachten Kugel entfernen und trotzdem noch das angestrebte Hörereignis wahrnehmen. Der Sweet-Spot ist der Punkt innerhalb einer Lautsprecherkonfiguration, an dem die beste akustische Wahrnehmung gewährleistet ist. Die Genauigkeit eines Ambisonic-Systems ist also abhängig von der maximalen Ordnung der beschreibenden Kugelflächenfunktionen. So heißt ein Ambisonics-System, welches mittels Kugelflächenfunktionen bis zur Ordnung n=1 beschrieben wird, Am- bisonics erster Ordnung, eines welches auch auf Kugelflächenfunktionen zweiter Ord- nung basiert, Ambisonics zweiter Ordnung usw. Die maximal verwendete Ordnung N bestimmt die Anzahl der verwendeten Kugelflächenfunktionen und damit auch die Anzahl N der benötigten Aufnahme-, Übertragungs- und Wiedergabekanäle eines Ambisonics-Systems. Dabei gilt N ≥ (N + 1)2 . (3.6) 25
  30. 30. 3 Mikrofonarrays und Ambisonics 3.2.2 Kanaldefinition und Normierung In der Ambisonics-Praxis und -Literatur wird häufig eine andere Definition der Ku- gelflächenfunktionen verwendet als die in Gleichung 3.3 vorgestellte Version. Auf- grund des in 3.3 enthaltenen Faktors eimφ gilt Y m n [0, π] × [0, 2π] → C, aber die die Ambisonicskanäle repräsentierenden Kugelflächenfunktionen werden meistens reell- wertig definiert. Dabei wird eimφ ersetzt durch cos (mφ), falls m ≥ 1 oder durch sin (mφ), falls m ≤ −1. Bei m=0 fällt dieser Teil der Funktion weg, denn wie auch bei eimφ gilt: ei0φ = 1. (Daniel 2001) Auch für die Normierungsfaktoren Nm n gibt es abweichende Varianten. Dabei haben die in Ambisonics verwendeten Normierungsfaktoren bestimmte technisch motivierte Formen. Die schon bekannte, in Gleichung 3.4 verwendete Normierung, führt zu der Orthonormalität der Kugelflächenfunktionen, es gilt also: 2π 0 π 0 Y m n (θ, φ) Y m n (θ, φ)∗ sin θdθdφ = δnn δmm (3.7) mit (·)∗ , dem komplex-konjugierten von (·) und δnm, dem Kronecker-Delta (δij = 1, falls i = j und δij = 0, falls i = j). (Teutsch 2007) Diese Normierung führt aber auch dazu, dass alle Kugelflächenfunktionen die Ober- fläche O = 1 besitzen. Es gilt also: 2π 0 π 0 |Y m n (θ, φ)|2 sin θ dθ dφ = 1 (3.8) In der Praxis bedeutet dies, dass die Kugelflächenfunktionen, und damit auch die Ambisonicskanäle, mit steigender Ordnung n immer höhere Maximalwerte annehmen können. Stellt man sich ein statistisch verteiltes Schallfeld vor, sollte dies keine Pro- bleme bereiten. Kommt es aber zu dem Fall, dass stark gerichtete Schallquellen auf Ambisonics-Mikrofone höherer Ordnung strahlen, kann es passieren, dass die Dyna- mik des Übertragungs- bzw. Aufzeichnungskanals an ihre Grenzen stößt. (Malham 2003) Um dies zu vermeiden, verwendet man die Normierung mit der Bezeichnung SN3D (=Semi Normalised for 3D). Die als SN3D definierten Ambisonicskanäle verwenden die halbnormierten zugeordneten Legendre-Polynome nach Schmidt. Diese sind defi- niert als ˜Pm n (η) = (2 − δm0) (n − m)! (n + m)! Pm n (η) , (3.9) 26
  31. 31. 3 Mikrofonarrays und Ambisonics die SN3D-Normierungsfaktoren ergeben sich also zu Nm (SN3D) n = (2 − δm0) (n − m)! (n + m)! . (3.10) Letztendlich sind also die Kugelflächenfunktionen bzw. Ambisonicskanäle mit SN3D- Normierung nach (Daniel 2001) definiert als Y m (SN3D) n (θ, φ) = (2 − δm0) (n − m)! (n + m)! Pm n (cos θ) ×    cos (mφ) falls m ≥ 1 1 falls m = 0 sin (mφ) falls m ≤ −1 . (3.11) Verwendet werden die SN3D-Normierungsfaktoren aber aus dem oben genannten Grund eher für Ambisonics-Systeme höherer Ordnungen. Für Ambisonics bis zur Ord- nung 3 hat sich die N3D-Definition (=Normalised for 3D) durchgesetzt. (Kronlachner 2012) Normierung nach N3D liefert auch orthonormale Kugelflächenfunktionen, diese sind jedoch auch reellwertig. Nach N3D sind die Kugelflächenfunktionen auf eine Oberfläche von O = 4π normiert und nach (Daniel 2001) ergeben sich die Normie- rungsfaktoren aus Nm (N3D) n = (2 − δm0) (2n + 1) (n − m)! (n + m)! (3.12) Die N3D-Normierung wird als am geeignetsten für die Arbeiten mit einem natür- lichen Schallfeld angesehen, aber SN3D bietet sich in einigen Fällen als die bessere Wahl an (Chapman et al. 2009). Abbildung 3.2 verdeutlicht die Pegelunterschiede zwischen SN3D und N3D in zwei verschiedenen Schallfeld-Situationen. 3.2.3 FuMa-Gewichtsfaktoren und MaxN Eine weitere Normierungsmethode bilden die Furse-Malham-Gewichtsfaktoren nach Richard Furse und Dave G. Malham. Sie stellen sicher, dass die den Ambisonicska- nal repräsentierenden Kugelflächenfunktion nur Werte zwischen -1 und 1 annehmen können. Der erste Ambisonicskanal mit Ordnung und Grad n = 0, m = 0 ist auf den 27
  32. 32. 3 Mikrofonarrays und Ambisonics Abbildung 3.2: Pegelunterschiede der Ambisonicskanäle in Ahängigkeit von umgeben- den Schallfeld und Normierung. Die horizontale Achse gibt die Kanäle in ACN-Kanalreihenfolge (siehe Kapitel 3.2.4 auf S.29) an. Die Zahlen an der Skaleneinteilung sind die Quadratwurzeln aus den Kanalnummern und markieren den Beginn einer neuen Ordnung.(Chapman et al. 2009) 28
  33. 33. 3 Mikrofonarrays und Ambisonics Maximalwert 1√ 2 normiert, liegt also unter 1. Diese Normierung ist eine in Ambiso- nics häufig anzutreffende, gängige Praxis. Die FuMa-Gewichtungsfaktoren sind fast identisch zu der von Daniel (2001) vorgestellten Max-Normierung (englisch: Max- Normalisation). Bei MaxN ist auch der erste Ambisonicskanal auf einen Maximalwert von 1 normiert. (Malham 2003) Aufgrund einer bislang fehlenden Rekursiongleichung, wie z.B. die zugeordneten Legendre-Polynome eine solche darstellen, sind diese Gewichtungsfaktoren noch nicht für jede beliebige Ordnung automatisch berechenbar. In der Literatur finden sich diese Faktoren definiert bis zur dritten Ordnung, für die Anwendung auf SN3D normierte Ambisonicskanäle (Malham 2003). Es kann hier also keine allgemein anwendbare Umrechnungsformel angegeben werden, ausschließlich die folgende Aussage über den Wertebereich W von Y m (FuMa) n getroffen werden: W Y m (FuMa) n = [−1, 1] . (3.13) 3.2.4 Kanalordnung Auch in der Benennung und Reihenfolge der einzelnen Ambisonicskanäle gibt es un- terschiedliche Systeme. Die bekanntesten und wichtigsten sind die FuMa-Kanalfolge (Furse-Malham-Kanalfolge) und die ACN-Kanalfolge (Ambisonics-Channel-Number- Kanalfolge) der Ambisonics Association. Die FuMa-Kanalbenennung bedient sich aus den Buchstaben des lateinischen Alphabets. Die ACN-Nummerierung dagegen ist mo- tiviert aus der mathematischen Notation und ergibt sich aus Ordnung und Grad der zugehörigen Kugelflächenfunktion nach: Kanalnummer Nr.(ACN) = n(n + 1) + m (The Ambisonics Association 2008). In Tabelle 3.2.4 findet sich eine Übersicht der Ambisonicskanäle bis zur zweiten Ordnung mit den besprochenen Benennungen und Normierungen. 3.2.5 B-Format, A-Format und HOA In der Ambisonics-Terminologie gibt es, wahrscheinlich aufgrund des noch jungen Forschungsgebietes, keine Einigkeit. Insbesondere die Ausweitung von Ambisonics- Systemen auf höhere Ordnungen, hat dazu veranlasst, bestimmte Begriffe zu „deh- 29
  34. 34. 3 Mikrofonarrays und Ambisonics Ordn. FuMa- Kanal- benennung ACN SN3D- Definition n, m (SN3D) N3D- Konv.- faktor FuMa- Gewicht.- faktor 0 W 0 1 0, 0 1 1√ 2 1 X 3 sin θ cos φ 1, 1 √ 3 1 1 Y 1 sin θ sin φ 1, -1 √ 3 1 1 Z 2 cos θ 1, 0 √ 3 1 2 R 6 1 2 (3 cos2 (θ) − 1) 2, 0 √ 5 1 2 S 7 √ 3 2 sin (2θ) cos φ 2, 1 √ 5 2√ 3 2 T 5 √ 3 2 sin (2θ) sin φ 2, -1 √ 5 2√ 3 2 U 8 √ 3 2 sin2 θ cos (2φ) 2, 2 √ 5 2√ 3 2 V 4 √ 3 2 sin2 θ sin (2φ) 2, -2 √ 5 2√ 3 Tabelle 3.1: SN3D-Definition der Ambisonicskanäle in FuMa-Kanalreihenfolge der ersten und zweiten Ordnung, Ambisonics-Channel-Number und Konvertierungs- bzw. Gewichtungsfaktoren, nach Malham (2003). Angegeben in der FuMa- Kanalreihenfolge. Die ACN-Kanalreihenfolge ergibt sich durch Umsortierung nach der fortlaufenden ACN. 30
  35. 35. 3 Mikrofonarrays und Ambisonics nen“. Das B-Format im klassischen Sinne ist das von M. Gerzon erwähnte, vierkanali- ge Ambisonics erster Ordnung. Es ist das System niedrigster Ordnung, mit dem eine 3D-Schallfeldbeschreibung stattfinden kann. Alle Systeme höherer Ordnung werden als Higher Oder Ambisonics (HOA) bezeichnet. Auch kommt es vor, dass der Be- griff Ambisonics synonym für das B-Format verwendet wird. HOA gilt dann jedoch weiterhin als Bezeichnung höherer Systemordnungen. Unter dem A-Format versteht man im klassischen Sinne die Signale eines von Pe- ter Craven und Michael Gerzon entworfenen, speziellen Mikrofontyps, namentlich des Soundfield-Mikrofons (Craven et al. 1977). Dieses Mikrofon besitzt vier Mikrofonkap- seln, welche auf einem gedachten Tetraeder angeordnet sind. Durch Mischung dieser Mikrofonkapselsignale und einer Bearbeitung im Frequenzbereich ist es möglich, Si- gnale eines Ambisonics-Systems 1.Ordnung zu generieren. Diesen Vorgang nennt man A- zu B-Formatwandlung. Die Bearbeitung im Frequenzbereich ist nötig, um die durch den Abstand der Mikrofonkapseln entstandenen Verzerrungen auszugleichen. Mit dem Aufkommen von HOA wird der Begriff „B-Format“ aber auch für Signale von Ambisonics-Systemen höherer Ordnung verwendet, sollten sie die entsprechenden Kugelflächenfunktionen repräsentieren (zu sehen beispielsweise bei Malham (2003)). In Folge darauf, wurde auch das A-Format als Begriff für „Roh“-Signale erweitert. Als A-Format werden also auch Kapselsignale von Mikrofonen verstanden, die durch Ma- trizierung in die besser verwendbare, Kugelflächenfunktionen repräsentierende Form gebracht werden können und die eine höhere Ordnung als N = 1 aufweisen, wie das klassische A-Format-Mikrofon. 3.2.6 Beamforming Nach einer Ambisonics-Mikrofonierung liegt das Schallfeld analysiert vor. Man kann für eine Wiedergabesituation das Schallfeld jetzt wieder resynthetisieren, man kann die gewonnene Information aber auch dazu nutzen, das Schallfeld selektiv wieder zusammenzusetzen. Das Erstellen von virtuellen Mikrofon-Richtcharakteristiken ist möglich. In Kapitel 3.2.1 wurde dargelegt, dass jede Funktion, die quadratintegrierbar über die Einheitskugel ist, in eine unendliche Reihe, eine Summe aus gewichteten Kugel- flächenfunktionen zerlegbar ist. Nun sind Funktionen, die Richtcharakteristiken von Mikrofonen beschreiben, genau solche Funktionen. Beschrieben wird eine gewünschte 31
  36. 36. 3 Mikrofonarrays und Ambisonics Richt- charakteristik Kugel Breite Niere 1 Breite Niere 2 Niere Superniere Hyperniere Acht Bild A bzw. 1 1,0 0,75 0,63 0,5 0,366 0,25 0 Bündelungs- grad DF = γ 1,0 1,714 2,077 3,0 3,732 4,0 3,0 Vor-Rück- Verhältnis, s(0◦ ) /s(180◦ ) 1,0 2,0 3,85 ∞ 3,732 2,0 1,0 Abtands- faktor DSF = √ γ 1,0 1,309 1,441 1,732 1,932 2,0 1,732 φ(−3 dB), Mono- Aufnahme- winkel - ±100◦ ±78◦ ±65, 5◦ ±57, 5◦ ±52, 4◦ ±45◦ φ(−6 dB), Mono- Aufnahme- bereich - ±180◦ ±110, 5◦ ±90◦ ±77, 8◦ ±70, 5◦ ±60◦ Tabelle 3.2: Die typischen Richtcharakteristiken erster Ordnung und ihre akustischen Eigenschaften nach (Schneider 2008, Sengpiel 2002). 32
  37. 37. 3 Mikrofonarrays und Ambisonics Mikrofon-Richtcharakteristik Gd (θ, kR) durch die sog. Mikrofongleichung Gd (θ) = ∞ v=1 εv + (1 − εv) cos θ, (3.14) bei einer Richtcharakterisitk der Ordnung N wird ∞ ersetzt durch N. Die Abhängig- keit von (kR) mit der Kreiswellenzahl k und dem maximalen Radius R beschreibt die Frequenzabhängigkeit. Diese spielt in dieser Betrachtung des Beamformings jedoch keine weitere Rolle und wird deshalb aus Gründen der Übersichtlichkeit weggelassen. Gd (θ) beschreibt die Richtfunktion als eine im dreidimensionalen Raum stehende Funktion, in Richtung der z-Achse zeigend (Teutsch 2007). Die bekanntere Darstel- lung der Mikrofongleichung für Richtunktionen erster Ordnung, in Abhängigkeit von φ als Funktion im zweidimensionalen Raum lautet s (φ) = A + (1 − A) cos φ (3.15) mit A = ε1. In Tabelle 3.2 findet man die gängigen Richtcharakteristiken erster Ordnung mitsamt einer Auswahl ihrer akustischen Eigenschaften. Die Mikrofongleichung 3.14, entwickelt in eine unendliche Reihe aus Kugelflächen- funktionen lautet wie folgt: Gd (θ) = √ 4π ∞ n=0 Gdn Y 0 n (θ, φ) (3.16) mit Gdn = 1 2 √ 2n + 1 π 0 G (θ) Pn (cos θ) sin θdθ. (3.17) mit G (θ) wie Gd (θ) in Gleichung 3.14. Aus der Aussage, dass jede beliebige Richt- funktion in eine Reihe entwickelt werden kann, impliziert natürlich, dass sich der Beam in jede beliebige Raumrichtung ausrichten lässt. Jedoch ist es mathematisch nachvollziehbarer und simpler, zuerst allein die Form der gewünschten Richtfunk- tion, in Richtung der z-Achse zeigend, mittels Kugelflächenfunktionen darzustellen. Vorteilhaft ist daran, dass dafür nur Kugelflächenfunktionen Y m n (θ, φ) mit m = 0 verwendet werden. Die Anzahl der in der Reihe verwendeten Kugelflächenfunktio- nen reduziert sich auf N + 1. Sind dann anhand Formel 3.17 die Koeffizienten Gdn berechnet, kann der Beam in jede gewünschte Richtung rotiert werden. Mit einer 33
  38. 38. 3 Mikrofonarrays und Ambisonics Ausrichtung nach (ϑ, ϕ) wird Gd (θ) zu Gd (θ, φ, ϑ, ϕ) = 4π ∞ n=0 1 √ 2n + 1 n m=−n Gdn Y m n (θ, φ) Y m n (ϑ, ϕ)∗ (3.18) 34
  39. 39. 4 Konzeption und Realisierung Das intelligente Mikrofonsystem, dessen Funktionen und Bestandteile in Kapitel 2.4 beschrieben wurden, soll exemplarisch realisiert werden. Dafür sollen ausgewählte Funktionalitäten so implementiert werden, dass sich die Grundstruktur des Systems in der Entwicklung abzeichnet und sich das Verhalten des Systems im ersten prakti- schen Einsatz erproben lässt. Wichtig ist dabei, dass die Programmierung möglichst einfach erweiterbar sein soll. Es sollen einfach neue Funktionen implementiert werden und die hier gewählten Systemkomponenten, also Mikrofonarray, Audio-Interface und optisches System, mit wenigen Änderungen ausgetauscht werden können. 4.1 Funktionsumfang Realisiert werden soll die Kernfunktion „automatisches Mono-Verfolgermikrofon“. Es sollen bis zu zwei Personen im Erfassungsbereich erkannt werden und virtuelle Mi- krofone in Abhängigkeit von der Präsenz dieser Personen aktiviert und deaktiviert werden. Erkannte Personen sollen dabei optisch in einem Videobild des Erfassungs- bereiches markiert sein, um eine Kontrolle über Fehlerkennungen zu haben. Die für die virtuellen Mikrofone zur Verfügung stehenden Richtcharakteristiken sollen Niere, Superniere und Hyperniere, sämtliche in erster und zweiter Ordnung sein. Das System und der Beamforming-Algorithmus werden softwareseitig also für Ambisonics erster und zweiter Ordnung ausgelegt sein. In dieser exemplarischen Rea- lisierung soll vorerst jedoch nur ein Ambisonics-Mikrofon erster Ordnung zum Einsatz kommen. Das System soll Ambisonicssignale in den Normierungen SN3D, N3D und FuMa korrekt verarbeiten können. Alle für die Benutzung erforderlichen Benutzerein- gaben sollen über eine grafische Benutzeroberfläche bedienbar sein. 35
  40. 40. 4 Konzeption und Realisierung 4.2 Video 4.2.1 Microsoft Kinect-Sensor als optisches System Abbildung 4.1: Der Kinect-Sensor für Xbox 360 von Microsoft, ohne Gehäuse, aus (iFixit 2010) Als optisches System wurde der Kinect-Sensor des Herstellers Microsoft gewählt. Der Kinect-Sensor (kurz: die Kinect) ist eine sogenannte RGB-D-Kamera. Zusätzlich zu einem RGB-Bild wird der Erfassungsbereich der Kinect auch in seiner Tiefe (engl.: depth) erfasst. Er wird über einen USB-Anschluss mit einem Computer verbunden. Zum Zeitpunkt der Erstellung dieser Arbeit gab es drei verschiedene Generationen des Kinect-Sensors. Hier verwendet wird der Sensor aus der ersten Generation, der Kinect-Sensor für Xbox 360 (siehe Abbildung 4.1). Soweit nicht anders erwähnt, be- ziehen sich alle folgenden Aussagen auf genau diese Gerätegeneration, auch wenn im Allgemeinen von dem Kinect-Sensor gesprochen wird. Microsoft stellt für Softwareentwicklungen mit allen Kinect-Geräten ein Softwa- re Development Kit zur Verfügung. Mit Hilfe dieser Programmierschnittstelle ist es 36
  41. 41. 4 Konzeption und Realisierung möglich, auf die Daten der Kinect sowie auf von Microsoft für den Kinect-Sensor entwickelte Bildanalysealgorithmen zurückzugreifen. In diesen Algorithmen enthal- ten ist das sog. Skeletal Tracking. Das Skeletal Tracking analysiert die Positionen von 20 verschiedenen Körperpunkten einer erkannten Person, relativ zum Sensor. Durch die Kinect können 2 Personen auf diese Art getrackt werden, das Ermitteln der Positionen von vier weiteren Personen ohne detaillierte Körperanalyse ist möglich (Microsoft 2014). Das Tiefenbild erfasst der Kinect Sensor, wie bei RGB-D-Kameras üblich, über das Verfahren Active Triangulation. Dazu projiziert ein Infrarotprojektor ein codier- tes Lichtmuster (siehe Abbildung 4.2) in den Raum, das reflektierte Lichtmuster wird von einer um 5 cm versetzten Infrarotkamera wieder aufgenommen. Das aufgenom- mene Bild weist natürlich Abweichungen zum ausgesendeten Bild auf. Jeder Punkt des Lichtmusters, abhängig von der Entfernung des reflektierenden Punktes zur In- frarotkamera, wird durch den Infrarotsensor an einer anderen Stelle als auf dem ei- gentlich ausgesendeten Originalmuster erfasst. Aufgrund dieser Modulation, welcher jeder Punkt des Lichtmusters durch den Raum ausgesetzt ist, kann der Kinect-Sensor die Distanz jedes Punktes im Raum, im Rahmen der Auflösung des Infrarotsensors von 640 x 480 Pixeln, ermitteln. (Mutto et al. 2012). 4.2.2 Einbindung in die Steuerungssoftware Die Microsoft-Software für den Kinect-Sensor gibt die Positionsdaten von getrackten Personen und derer Körperteile in einem Koordinatensystem aus, in dessen Ursprung sich der Sensor befindet (siehe Abbildung 4.3). Alle Werte sind dabei in Metern angegeben. Für das Beamforming sind jedoch Winkelkoordinaten nötig, die in die Beamforming-Gleichung (siehe Gleichung 3.18) eingesetzt werden können. Aus den Positionsdaten, angegeben in x-y-z-Koordinaten, wird die Position in Winkelkoordi- naten umgerechnet, der die Abweichung der Position von der z-Achse des Kinect- Sensors, also seiner optischen Achse, angibt. Dabei werden die Winkelkoordinaten in den Komponenten Azimut (φ) und Elevation (θ(Kinect)) angegeben. Der Azimut- winkel bezeichnet die Abweichung von der z-Achse in horizontaler Richtung, bezieht sich also auf die x-Komponente. Elevation ist dagegen die Abweichung in vertika- ler Richtung und bezieht sich auf die z-Achse. Da das von der Kinect verwendete Koordinatensystem nicht den in den sonstigen Teilen dieser Arbeit verwendeten Ko- ordinatensystem entspricht, wird der Elevationswinkel mit dem Zusatz (·)(Kinect) 37
  42. 42. 4 Konzeption und Realisierung Abbildung 4.2: Von der Kinect projiziertes Infrarotmuster, erfasst vom Kinect-IR-Sensor, aus (Mutto et al. 2012: 42) Abbildung 4.3: Koordinatensystem der Kinect, aus (Microsoft 2012) 38
  43. 43. 4 Konzeption und Realisierung angegeben. Die Umrechnung der Elevation in das in dieser Arbeit verwendete Koor- dinatensystem geschieht nach θ = −θ(Kinect) + 90◦ . (4.1) Sollte sich das Mikrofonarray nicht an gleicher Position wie der Kinect-Sensor befin- den, verändert dies die Winkelwerte, die für das Beamforming notwendig sind. Es soll die Möglichkeit geben, das Mikrofon entlang der optischen Achse des Kinect-Sensors zu verschieben. Um die Distanz d dieser Verschiebung muss der Wert z verringert werden. Die Positionswinkel aus den x-,y-, und z-Werten sowie der Distanz d zwischen Kinect-Sensor und Mikrofon berechnen sich wie folgt: θ(Kinect) = tan−1 y z − d (4.2) φ = tan−1 x z − d (4.3) Einblendung der Tracking-Ergebnisse in das Videobild Eine vom Kinect-Sensor erkannte Person soll im Videobild markiert werden, indem entweder ein Punkt oder Text an dieser Position im Videobild zu sehen sind. Dazu muss die Darstellung auf den Aufnahmebereich der RGB-Kamera des Kinect Sensors normiert werden. Eine getrackte Person, die sich am Bildrand des Kinect-RGB-Bildes aufhält, sollte auch am Bildrand markiert werden. Normiert man die Position auf eine Darstellung zwischen -1 und 1, bei welcher der negative und der positive Wert jeweils einem Bildrand entsprechen und die Mitte des Bildes folglich den Wert 0 hat, kann man für jede beliebige Bildauflösung die exakte Pixelposition errechnen. Die auf das Intervall zwischen -1 und 1 normierte Darstellung für die vertikale Position v und die horizontale Position h erhält man durch: v = y z · tan θmax 2 (4.4) h = x z · tan φmax 2 (4.5) 39
  44. 44. 4 Konzeption und Realisierung mit θmax, dem Wert des vertikalen Aufnahmebereichs und φmax, dem Wert des hori- zontalen Aufnahmebereichs. Der Stream des Videobildes muss also ausgelesen werden und vor Bildschirmausga- be an den berechneten Stellen manipuliert werden, um eine Markierung der getrackten Personen zu erhalten. Alternative Hardware Statt des Microsoft Kinect-Sensors kann auch ein anderer optischer Sensor verwendet werden, welcher auf der gleichen Technologie wie die Kinect basiert: der Xtion PRO Sensor von ASUS. Dabei wird die Verwendung in fast der selben Programmkonzeption möglich sein. Für das Produkt von ASUS muss jedoch ein anderer Treiber und ein anderes Software Development Kit gewählt werden. Auch muss bei dem Gerät von Asus auf einen RGB-Sensor verzichtet werden, dieser könnte aber einfach durch ein Zusatzgerät ergänzt werden. Auch möglich ist das Verwenden von produktunabhängiger Software zur Bildana- lyse wie z.B. der Softwarebibliothek OpenCV. Dabei müssen aber Funktionen wie Human Recognition und Lokalisierung wesentlich aufwendiger implementiert werden. Sollten durch die Verwendung anderer Systemkomponenten ähnliche Ergebnisse wie durch die Kinect erzielt werden, lassen sich diese einfach in der hier konzeptionierten Struktur weiterverarbeiten. 4.3 Audio 4.3.1 Soundfield SPS200 als Mikrofonarray Als Mikrofonarray wurde das Soundfield SPS200 Software Controlled Microphone der Firma TSL Products gewählt. Dieses Mikrofon ist ein A-Format-Mikrofon (siehe Kapitel 3.2.5), besitzt somit vier in einem Tetraeder angeordnete Mikrofonkapseln. Die Mikrofonsignale werden analog über XLR-Anschlussstecker ausgegeben. Um die Signale in das in der Praxis verwendete B-Format mit den nach FuMa benannten Kanälen W, X, Y und Z zu konvertieren, ist also eine komplexere Signalverarbeitung von Nöten. Zu diesem Zweck liefert der Hersteller ein VST-Plugin mit dem Mikrofon, welches diese Formatwandlung übernimmt. Als Audio-Interface wurde das LIQUID Saffire 56 des Herstellers Focusrite verwen- 40
  45. 45. 4 Konzeption und Realisierung Abbildung 4.4: Das SoundField SPS200 Software Controlled Microphone der Firma TSL Products, aus TSL Products (2014) det, welches die Mikrofonsignale verstärkt und digital wandelt. Das Audio-Interface wird mit einem gerätespezifischen ASIO-Treiber geliefert, welcher die einfache Ein- bindung der vom Interface angebotenen Ein- und Ausgangskanäle in Audio-Software ermöglicht. 4.3.2 Signalverarbeitung und Beamforming Der Zugriff auf die Eingangssignale muss separat und parallel möglich sein. Aus al- len Eingangskanälen, die systemseitig über das Audio-Interface abgreifbar sind, sollen diese, an denen die Ambisonics-Eingangssignale anliegen, auswählbar sein. Des Weite- ren soll es softwareseitig eine Möglichkeit geben, die Signalreihenfolge zu verändern. In der Konzeption mit dem Soundfield-Mikrofon wäre dies auch durch ein Umste- cken der XLR-Anschlüsse möglich. Die Software soll jedoch nicht exklusiv für dieses Mikrofon in Verbindung mit dem verwendeten Audio-Interface ausgelegt sein. Sollte z.B. ein Ambisonics-Mikrofon mit integriertem Audio-Interface verwendet werden, bei welchem die Signale in einer festgelegten Reihenfolge anliegen, so soll diese Reihenfol- ge für die Signalverarbeitung beliebig änderbar sein. Als zu verwendende Eingangs- 41
  46. 46. 4 Konzeption und Realisierung Reihenfolge wird die FuMa-Kanalordnung gewählt. In diese FuMa-Kanalfolge müssen die Eingangssignale also bei Bedarf sortiert werden. Als Hilfestellung für den Anwen- der soll der Eingangspegel aller Eingangskäle dargestellt werden, um das korrekte Anliegen der Signale in der Software überprüfen zu können. In dem Fall des hier verwendeten Mikrofons werden vom Audio-Interface keine praktikablen B-Format-Signale übergeben. Nach Auswahl der richtigen Eingangs- kanäle müssen diese zuerst durch das zugehörige VST-Plugin verarbeitet werden. Dazu muss im Signalweg eine VST-Schnittstelle implementiert werden. Die Anzahl der vom optischen System und Trackingsoftware erkannten Personen bestimmt, wie oft der Satz an anliegenden Ambisonicskanälen für die weitere Verar- beitung kopiert wird. Für jede erkannte Person liegt ein Wertepaar aus horizontalem und vertikalem Winkel vor, nach welcher die Beamforminganweisung berechnet wird. Jeder vorliegende Satz an Ambisonicssignalen wird nun parallel und abhängig von den ermittelten Positionswinkeln dem Beamformingprozess unterzogen. Alle Kanäle eines Signalsatzes müssen dafür unterschiedlich gewichtet und danach in einer Au- diosumme zusammengefasst werden. Nach diesem Prozess liegen also genau so viele Mono-Signale vor, wie Personen vom System erkannt worden sind. In einem nächsten Schritt kann nun entschieden werden, ob die beiden Signale auf getrennten Kanälen ausgegeben werden, oder ob auch diese beiden Monosignale in einem Monosignal summiert werden. Anwendung der Beamforming-Gleichung In Kapitel 3.2.6 wurde gezeigt, wie durch Summierung von gewichteten Kugelflächen- funktionen jede beliebige Richtfunktion erzeugt werden kann. Aus einer Mikrofonauf- nahme im Ambisonicsformat kann also durch Gewichtung der einzelnen Kanäle vor der Summierung dieses gewünschte gerichtete Mikrofon virtualisiert werden. Die Audiosignalverarbeitung muss dabei das leisten, was Gleichung 3.18 vorschreibt, die Kugelflächenfunktionen bzw. Ambisonicskanäle also mit Variablen und Faktoren gewichten und aufaddieren. Die Rotation des virtuellen Mikrofons geschieht in Echt- zeit, deswegen sind die Variablen die Ausrichtungsvariablen (ϑ, ϕ). Die für die Art der Richtcharakteristik verantwortlichen Beamforming-Koeffizienten Gdn stehen vor- her fest, werden im Vorfeld berechnet, und sind der Software also als Konstanten bekannt. Es sollen nun also die Berechnungsvorschriften gefunden werden, die auf jedes einzelne Ambisonics-Signal bis zur zweiten Ordnung angewendet wird und nach 42
  47. 47. 4 Konzeption und Realisierung Implementierung in der Steuerungssoftware dazu führt, dass bei der Summierung aller Ambisonicssignale am Ende ein Audiosignal entsprechend der gewünschten Richtcha- rakteristik ausgegeben werden kann. Die Beamforming-Gleichung 3.18 verwendet Kugelflächenfunktionen, welche als komplexwertig definiert sind. Das Ergebnis Gd (θ, φ, ϑ, ϕ) nach Berechnung des Be- ams ist jedoch immer reellwertig und auch die Ambisonicskanäle, wie sie in der Praxis verwendet werden, sind rein reell. Es zeigt sich, dass bei einer Darstellung der Beamforming-Gleichung in algebraischer Form, also mit der getrennten Darstel- lung von Real- und Imaginärteil, und nach einer anschließenden Vereinfachung der Gleichung, ausschließlich mit reellwertigen Kugelflächenfunktionen gearbeitet wer- den kann. Bei näherer Betrachtung der Kugelflächenfunktionen wird deutlich, dass die reellwertig definierten Kugelflächenfunktionen ihre Entsprechung in den getrenn- ten Real- Imaginärteilen der komplexwertig definierten Funktionen finden. Tabelle 4.3.2 zeigt die Kugelflächenfunktionen (bzw. Real- oder Imaginärteile dieser) in reell- und komplexwertiger Definition, die geometrisch ähnlich sind. Die Ähnlichkeit in diesem Fall bedeutet, dass allein die Normierung, also die Gewichtung der Kugel- flächenfunktionen unterschiedlich ist. Um diese Beziehungen der Kugelflächen nut- FuMa-Kanalbenennung Y 0 (SN3D) 0 ∼ Y 0 0 W Y 1 (SN3D) 1 ∼ Re Y −1 1 X Y −1 (SN3D) 1 ∼ −Im Y (−1,1) 1 Y Y 0 (SN3D) 1 ∼ Y 0 1 Z Y 0 (SN3D) 2 ∼ Y 0 2 R Y 1 (SN3D) 2 ∼ Re Y −1 2 S Y −1 (SN3D) 2 ∼ −Im Y (−1,1) 2 T Y 2 (SN3D) 2 ∼ Re Y (−2,2) 2 U Y −2 (SN3D) 2 ∼ Im (Y 2 2 ) V Tabelle 4.1: Geometrisch ähnliche Kugelflächenfunktionen bzw. deren Real- oder Ima- ginärteile zusammen mit den zugehörigen FuMa-Kanalbuchstaben zen zu können betrachten wir die einzelnen Summanden der Beamforming-Gleichung 43
  48. 48. 4 Konzeption und Realisierung und den komplexwertigen Funktionen in algebraischer Form. Entsprechend der Mul- tiplikationsregeln für komplexe Zahlen ergibt sich die Beamforming-Gleichung für Kugelflächenfunktionen bis zur Ordnung N = 1 zu Gd (θ, φ, ϑ, ϕ) = 4π 1 n=0 1 √ 2n + 1 n m=−n Gdn Y m n (θ, φ) Y m n (ϑ, ϕ)∗ = 4π Gd0 1 2 √ π Y 0 0 (θ, φ) + 1 √ 3   1 2 3 2π Gd1 sinϑ cosϕ Re Y −1 1 (θ, φ) − 1 2 3 2π Gd1 sinϑ sinϕ Im Y −1 1 (θ, φ) + 1 2 3 2π Gd1 i sin ϑ sin ϕ Re Y −1 1 (θ, φ) + sin ϑ cos ϕ Im Y −1 1 (θ, φ) + 1 2 3 π Gd1 cos ϑ Y 0 1 (θ, φ) − 1 2 3 2π Gd1 sin ϑ cos ϕ Re Y 1 1 (θ, φ) − 1 2 3 2π Gd1 sin ϑ sin ϕ Im Y 1 1 (θ, φ) + 1 2 3 2π Gd1 i sin ϑ sin ϕ Re Y 1 1 (θ, φ) − sin ϑ cos ϕ Im Y 1 1 (θ, φ)     . (4.6) Da Re Y −1 1 (θ, φ) = −Re(Y 1 1 (θ, φ)) und Im Y −1 1 (θ, φ) = Im(Y 1 1 (θ, φ)), verein- facht sich Gd (θ, φ, ϑ, ϕ) zu 44
  49. 49. 4 Konzeption und Realisierung Gd (θ, φ, ϑ, ϕ) = 4π Gd0 1 2 √ π Y 0 0 (θ, φ) + 1 √ 3   3 2π Gd1 sinϑ cosϕ Re Y −1 1 (θ, φ) − 3 2π Gd1 sinϑ sinϕ Im Y −1 1 (θ, φ) + 1 2 3 π Gd1 cos ϑ Y 0 1 (θ, φ)     . (4.7) Mit den Beziehungen aus Tabelle 4.3.2 lassen sich die Bezeichnungen der Kugelflä- chenfunktionen durch die FuMa-Kanalbuchstaben ersetzen. Trotz der Verwendung der FuMa-Kanalbenenung entsprechen die Kanäle an dieser Stelle noch nicht ei- ner der in der Praxis verwendeten SN3D-, N3D- oder FuMa-Normierungen. Die Beamforming-Gleichung für Ambisonics erster Ordnung mit den Kanälen W, X, Y und Z ergibt sich zu Gd (θ, φ, ϑ, ϕ) = 4π Gd0 1 2 √ π · W + 1 √ 3   3 2π Gd1 sin ϑ cos ϕ · X + 3 2π Gd1 sin ϑ sin ϕ · Y + 1 2 3 π Gd1 cos ϑ · Z     (4.8) Führt man diese Berechnungen für Beamforming mit Ambisonics zweiter Ordnung aus, erweitert sich Gd (θ, φ, ϑ, ϕ) aus Gleichung 4.8 mit den zusätzlichen Ambisonics- 45
  50. 50. 4 Konzeption und Realisierung kanälen R, S, T, U und V zu Gd (θ, φ, ϑ, ϕ) = 4π 2 n=0 1 √ 2n + 1 n m=−n Gdn Y m n (θ, φ) Y m n (ϑ, ϕ)∗ = 4π Gd0 1 2 √ π · W + 1 √ 3 Gd1   3 2π sin ϑ cos ϕ · X + 3 2π sin ϑ sin ϕ · Y + 1 2 3 π cos ϑ · Z   + 1 √ 5 Gd2   1 4 5 π 3 cos2 ϑ − 1 · R + 1 2 15 2π sin 2ϑ cos ϕ · S + 1 2 15 2π sin 2ϑ sin ϕ · T + 1 2 15 2π sin2 ϑ cos 2ϕ · U + 1 2 15 2π sin2 ϑ sin 2ϕ · V     . (4.9) Anpassung der Normierung Die Audiosignalverarbeitung, welche das Beamforming ausführt, soll für SN3D-normierte Eingangssignale ausgelegt sein. Die Kugelflächenfunktionen nach SN3D, Y m (SN3D) n (θ, φ), unterscheiden sich jedoch in Ihrer Gewichtung von der hier verlangten Normierung für orthonormale komplexwertige Kugelflächenfunktionen Y m n (θ, φ) nach Definition in Gleichung 3.3 . Die Division Re bzw. Im(Y m n (θ, φ)) Y m (SN3D) n (θ, φ) = Konv.-Faktor (4.10) führt zu den erwünschten Faktoren, welche also die eingehende SN3D-Normierung in die in der Beamforming-Berechnung verwendete Normierung für die komplexwertigen orthonormalen Kugelflächenfunktionen konvertiert. In Tabelle 4.3.2 finden sich diese Faktoren für die Kanäle erster und zweiter Ordnung. Die Eingangsignale sollen der Audiosignalverarbeitung jedoch auch in einer anderen Normierung zugeführt werden können. Die Konvertierung ist einfach: In Tabelle 3.2.4 findet man für jeden Ambisonicskanal bis zur zweiten Ordnung Konvertierungsfak- toren für die Normierungen N3D und FuMa, anzuwenden auf die SN3D-Normierung. Sollten die Eingangssignale eines von diesen beiden Formaten haben, können mit ei- ner Multiplikation der Kehrwerte dieser Faktoren die Signale nach SN3D konvertiert 46
  51. 51. 4 Konzeption und Realisierung W 1 2 √ π X,Y 1 2 3 2π Z 1 2 3 π R √5 π 2 S, T, U, V 1 2 5 2π Tabelle 4.2: Konvertierungsfaktoren für die gelisteten Ambisonicskanäle in FuMa- Benennung und SN3D-Normierung für die Verwendung in der hier darge- legten Beamforming-Berechnungsvorschrift werden. Beamforming-Anweisungen für die Audiosignalverarbeitung Wendet man nun die Konvertierungsfaktoren aus Tabelle 4.3.2 auf die Ergebnisse aus Gleichung 4.9 an, ist für jeden einzelnen Ambisonicskanal bis zur zweiten Ordnung die Berechnungsvorschrift für das Beamforming festgelegt. Mit den folgenden For- meln können die Gewichtungsfaktoren für die einzelnen Ambisonicskanäle berechnet werden, welche am Ende summiert werden. Die Gewichtungsfaktoren sind abhängig von der Richtcharakteristik, hier beschrieben durch die Koeffizienten Gd0 , Gd1 und Gd2 sowie durch die Rotation in die Richtung (ϑ, ϕ). Diese Formeln können in die Software implementiert werden und lauten im Einzelnen: 47
  52. 52. 4 Konzeption und Realisierung Ambisonics-Kanal Faktor W Gd0 X √ 3 Gd1 sin ϑ cos ϕ Y √ 3 Gd1 sin ϑ sin ϕ Z √ 3 Gd1 cos ϑ R 1 2 √ 5 Gd2 (3 cos2 ϑ − 1) S 1 2 √ 15 Gd2 sin 2ϑ cos ϕ T 1 2 √ 15 Gd2 sin 2ϑ sin ϕ U 1 2 √ 15 Gd2 sin2 ϑ cos 2ϕ V 1 2 √ 15 Gd2 sin2 ϑ sin 2ϕ Tabelle 4.3: Formeln zur Berechnung der Gewichtungsfaktoren der Ambisonicskanäle erster und zweiter Ordnung für das Beamforming Berechnung der Beamforming-Koeffizienten Gdn In der Mikrofonsteuerungssoftware soll das Beamforming mit den Richtcharakteris- tiken Niere, Superniere und Hyperniere in erster und zweiter Ordnung möglich sein. Die Koeffizienten ε1 und ε2 für die Mikrofongleichung 3.14 lauten je nach Richtcha- rakteristik: Koeffizienten ε1, ε2 Richtcharakteristik 1. Ordnung 2. Ordnung Niere ε1 = 0, 5 ε1,2 = 0, 5 Superniere ε1 = 0, 366 ε1 = 0, 218, ε2 = 0, 472 Hyperniere ε1 = 0, 25 ε1 = − 1√ 5 , ε2 = 1√ 5 Tabelle 4.4: Mikrofon-Koeffizienten verschiedener Richtcharakteristiken (Schneider 2008, Benesty et al. 2013) Die Mikrofongleichung 3.14 wird mit den entsprechenden Koeffizienten aus Tabelle 4.4 eingesetzt in die Gleichung 3.17. Die Mikrofongleichung ersetzt hierbei G (θ). Die 48
  53. 53. 4 Konzeption und Realisierung Gleichung zur Berechnung der Beamforming-Koeffizienten lautet also Gdn = 1 2 √ 2n + 1 π 0 ∞ v=1 εv + (1 − εv) cos θ Pn (cos θ) sin θdθGd (θ) (4.11) und liefert die Ergebnisse, die in Tabelle 4.5 festgehalten sind. Mit diesen Beamforming- Koeffizienten und den Berechnungsvorschriften aus Tabelle 4.3 ist der Beamforming- Prozess für die softwareseitige Implementierung vollständig definiert. Beamforming-Koeffizienten Gd0 , Gd1 , Gd2 Richtcharakteristik 1. Ordnung 2. Ordnung Niere Gd0 = 0.5, Gd1 ≈ 0.289 Gd0 ≈ 0.333, Gd1 ≈ 0.289, Gd2 ≈ 0.075 Superniere Gd0 = 0.366, Gd1 ≈ 0.366 Gd0 ≈ 0.241, Gd1 ≈ 0.279, Gd2 ≈ 0.123 Hyperniere Gd0 = 0.25, Gd1 ≈ 0.433 Gd0 = 1 15 , Gd1 = 2 5 √ 3 , Gd2 = 8 15 √ 5 Tabelle 4.5: Beamforming-Koeffizienten verschiedener Richtcharakteristiken 4.4 Realisierung in vvvv 4.4.1 Die Entwicklungsumgebung vvvv Die Entwicklungsumgebung vvvv (ausgesprochen: Vau vier) ist ein hybride Software bestehend aus grafischer Entwicklungsumgebung, textbasierter Entwicklungsumge- bung und Laufzeitumgebung. Vergleichbar ist vvvv am ehesten mit der bekannteren Software Max der Firma Cycling ’74 und zählt wie Max zu den datenstromorien- tierten Programmiersprachen. Daten werden von externen Quellen eingelesen oder intern erzeugt und in der zusammengestellten Struktur bearbeitet. Aus jedem Input folgt am Ende der Bearbeitungskette ein Output, vvvv arbeitet kontinuierlich. Es befindet sich ununterbrochen im Laufzeitmodus und nötige Kompilierung wird für den Anwender unmerklich im Hintergrund verrichtet. vvvv ist größtenteils ausgelegt für das Erstellen und Manipulieren von Video- und Grafikdaten in 2D und 3D durch Integration der Rendering Engines SVG, DirectX9 and DirectX11. Die auch über DirectX bereitgestellten Funktionen zur Audiosignal- verarbeitung sind in vvvv integriert, lassen aber nur grundlegende Verarbeitungs- schritte zu. Seit Dezember 2013 ist ein Zusatzpaket an Funktionen für vvvv verfügbar, mit welchem wesentlich weitreichendere Audiodatenmanipulation möglich ist. Die mit 49
  54. 54. 4 Konzeption und Realisierung vvvv erstellten Programme sind nur innerhalb der vvvv-eigenen Laufzeitumgebung ausführbar. Da die Laufzeitumgebung untrennbar mit der Entwicklungsumgebung verknüpft ist, muss auf jedem ausführenden System eine komplette vvvv-Installation zu finden sein. Für weitere Informationen über vvvv sei ein Blick auf die Homepage der vvvv group empfohlen: http://vvvv.org. Grafische Programmierung in vvvv Die Programme in vvvv heißen Patches. Ein Patch ist die Oberfläche, auf welcher programmiert wird. Die beiden Elemente, mit denen programmiert wird sind die sog. Nodes und die Verbindungen zwischen den Nodes. Nodes in vvvv enthalten Daten oder Funktionen und haben Ein- und Ausgänge, die sog. Inlets und Outlets. Daten- Nodes sind i.d.R. die sog. IOBoxes. IOBoxes können Daten anzeigen und speichern und in ihnen können Werte manuell geändert werden. Alle Daten, wie z.B. Audio- oder Videodaten in vvvv können in Inlets und aus Outlets von IOBoxes fließen, angezeigt und manuell geändert werden können in IO-Boxes üblichen Datentypen wie z.B. Integer-, String-, Float- oder Boolean-Werte. Die Datenübergabe zwischen Funktionen und IOBoxes geschieht durch Verbinden der In- und Outlets. IOBoxes sind auch die zentralen Bedienelemente in einem vvvv-Patch. Eine IOBox, die einen Boolean-Wert enthält kann z.B. als Schalter dargestellt werden, dessen Zustand per Mausklick veränderbar ist. In Abbildung 4.5 ist ein einfaches Programm „gepatcht“, welches die grafische Programmierung mit den erwähnten Elementen verdeutlicht. Der Übersichtlichkeit halber können Patches als sog. Subpatches in andere Patches eingebunden werden. Diese Subpatches werden wie andere Funktions-Nodes verwen- det. Dies hat den Vorteil, das ein Subpatch in mehreren anderne Patches Verwendung finden kann, eine häufig verwendete Funktion also flexibel in anderen Patches aufruf- bar ist. Doch auch wenn eine Funktion in einem Patch mehrmals verwendet wird, so lässt diese sich einmal als Subpatch erstellen und beliebig oft einbinden. In Abbildung 4.6 ist die Funktion aus Abbildung 4.5 mittels eines Subpatches realisiert. Die Datenströme in vvvv sind in sog. Spreads organisiert. Ein Spread ist in etwa vergleichbar mit einem Array. Ein Spread besteht aus mehreren Einzelwerten, den sog. Slices. Eine IOBox kann einen Spread mit beliebig vielen Slices enthalten. Dient diese IOBox als Input für eine Funktion, so werden alle Slices dieser IOBox von dieser Funktion gleich behandelt. Verarbeitet eine Funktion zwei Spreads gleichzeitig 50
  55. 55. 4 Konzeption und Realisierung Abbildung 4.5: Ein einfacher Patch in vvvv, welcher einen Zahlenwert quadriert und vom Ergebnis einen anderen Wert subtrahiert. Abbildung 4.6: vvvv-Patch aus Abbildung 4.5, realisiert als Subpatch 51
  56. 56. 4 Konzeption und Realisierung und ist das Ergebnis abhängig von beiden Spread-Inputs, so wird die Funktion die bearbeitung Slice-weise vornehmen. Die Funktion verwendet also den Slice mit dem Index 0 von Spread 1 und Spread 2 und gibt einen Output aus, danach werden die Werte aus Spread 1 und Spread 2 mit dem Index 1 verarbeitet usw. Abbildung 4.7 verdeutlicht die Verarbeitung von Spreads. Abbildung 4.7: vvvv-Patch aus Abbildung 4.5 als Subpatch, Spreads als Input 4.4.2 Die Mikrofonsteuerung in vvvv Grundlegende Struktur Die Konzeption des Systems in Kapitel 4 erfolgte getrennt nach Videosignal- und Audiosignalverarbeitung, diese Aufteilung findet sich auch im vvvv-Patch wieder. Die einzelnen Bestandteile sind als Subpatches realisiert und in einem Hauptpatch mit den Bedienelementen für den Endbenutzer zusammengeführt worden. Die wichtigen Subpatches, ihre Funktionen sowie die für die Mikrofonsteuerung wichtigen In- und Outlets sind im folgenden tabellarisch dargestellt: 52
  57. 57. 4 Konzeption und Realisierung human_detection_kinect Funktionen: Initialisiert den Kinect-Sensor, ließt die x-y-z-Koordinaten der er- kannten Personen aus, wandelt die Koordinaten in Winkelkoordinaten, generiert einen Text aus Winkelkoordinaten, normiert die Winkelkoordinaten auf den RGB- Kamerawinkel der Kinect, positioniert den Text an entsprechender Stelle im RGB- Bild der Kinect, gibt Bild und Winkelkoordinaten aus. Inlets Outlets Startbefehl zum Initialisieren der Kinect Anzahl der getrackten Personen Reset-Befehl für Neuinitialisierung der Ki- nect Winkelkoordinaten Elevation θ(Kinect) der getrackten Personen Abstandswert zwischen Kinect und Mikro- fon Winkelkoordinaten Azimuth φ der ge- trackten Personen RGB-Bild mit eingeblendeten Winkelkoor- dinaten an Position der getrackten Perso- nen beampattern_select Funktion: Lässt eine Richtcharakteristik wählen und gibt einen Spread mit den Beamforming-Koeffizienten Gd0 , Gd1 und Gd2 aus. Inlets Outlets Niere Gd0 , Gd1 , Gd2 Superniere Name der gewählten Richtcharakteristik Hyperniere Niere 2. Ordnung Superniere 2. Ordnung Hyperniere 2. Ordnung 53
  58. 58. 4 Konzeption und Realisierung beamforming_spreads Funktion:Berechnet für jedes Winkelpaar jeder getrackter Person die Gewichtungs- faktoren für die Ambisonics_kanäle entsprechend der Ordnung des Ambisonics- systems, des Ausrichtungswinkel des Beams und der Beamforming-Koeffizienten Gd0 , Gd1 , Gd2 Inlets Outlets Vertikaler Ausrichtungswinkel θ Gewichtungsfaktoren für die Ambisonics- kanäle Horizontaler Ausrichtungswinkel φ Ordnung des Ambisonicssystems Gd0 , Gd1 , Gd2 54
  59. 59. 4 Konzeption und Realisierung audio_sig_proc Funktion: Initialisiert die vvvv-AudioEngine, nimmt die Audiosignale entgegen, zeigt die Eingangspegel dieser Signale an, wählt die zu verarbeitenden Signale aus und sortiert diese dabei in die richtige Reihenfolge, lässt die Audiosignale bei Bedarf von einem VST-Plugin bearbeiten, führt bei Bedarf eine Konvertierung der Abisonics- Normierung durch, kopiert die Signale der Anzahl der erkannten Personen entspre- chend, gewichtet die Ambisonicskanäle mit den Gewichtungsfaktoren, summiert je- den Satz an gewichteten Ambisonicssignalen zu einem Mono-Signal, summiert die entstandenen virtuellen Mikrofonsignale bei Wunsch zu einem Mono-Signal, gibt die bearbeiteten Audiosignale an das Interface aus. Inlets Outlets Startbefehl zum Initialisieren der Au- dioEngine Pegelwerte der aller Eingangskanäle Auswahl des ASIO-Audiotreibers Befehl zum Öffnen der Benutzeroberfläche des gewählten Audiotreibers Samplingrate Anzahl der Eingangskanäle des Interfaces Anzahl der Ausgangskanäle des Interfaces Ordnung des Ambisonicssystems Auswahl einer optionalen Konvertierung der Ambisonicssignale nach SN3D Format der Ambisonicssignale vor Konver- tierung Anzahl der getrackten Personen/der zu virtualisierenden Mikrofone Gewichtungsfaktoren für die Ambisonics- kanäle 55
  60. 60. 4 Konzeption und Realisierung Datenverarbeitung im Detail Die grundlegende Signalkette, von den Daten der Kinect bis zur Audio-Ausgabe soll im Folgenden detailliert dargestellt werden, um einen Einblick in die Programmie- rung zu geben. Der Patch „MAIN_PATCH“ dient als Benutzeroberfläche. Auf ihm sind alle wichtigen Bedienelemente durch IOBoxes realisiert und mit den Subpatches, beschrieben in den oberen Tabellen, verbunden. Alle diese Subpatches befinden sich deshalb auch im Patch „MAIN_PATCH“, Abbildung 4.8 zeigt diesen. Abbildung 4.9 zeigt einen Ausschnitt aus dem Subpatch „human_detection_kinect“. Der Node „Kinect“ bindet die Funktionen des Software Development Kits für Kinect ein. An den Inlets des Nodes wird die Kinect, der RGB-Sensor sowie die Tiefenerfas- sung aktiviert. Am ersten Outlet des Nodes werden die Daten der Kinect ausgegeben. An diesen ist der Node „Skeleton“ angeschlossen. Dieser Node liefert unter anderem die x-y-z-Position des Körperschwerpunktes der getrackten Personen in einem Spread. Mithilfe des Nodes „Vektor“ wird dieser Spread in seine einzelnen Komponenten zer- legt. „Vektor“ besitzt drei Outlets an welchen die Koordinaten getrennt nach x, y und z ausgegeben werden. Die Koordinaten werden an die Inlets des Subpatches „positi- on_angle_real_world“ weitergegeben. In diesem Subpatch werden die Winkelkoor- dinaten berechnet, wie es die Gleichungen 4.2 und 4.3 vorschreiben. Die Winkelkoor- dinaten werden in zwei IOBoxes ausgegeben und liegen bei zwei getrackten Personen als Spread vor. Über die Outlets von „human_detection_kinect“ können die Win- kelkoordinaten im Patch „MAIN_PATCH“ abgegriffen werden. Dort wird auch die Elevationskomponente entsprechend Formel 4.1 konvertiert. Die Winkelkoordinaten werden den entsprechenden Inlets des Subpatches „beamforming_spreads“ überge- ben. Ein Ausschnitt dieses Subpatches ist zu sehen in Abbildung 4.10. Dem Subpatch „beamforming_spreads“ werden zusätzlich zu den Winkeldaten noch die Beamforming-Koeffizienten Gd0 , Gd1 und Gd2 sowie die Ordnung des verwen- deten Ambisonics-Systems übergeben. In diesem Patch entsprechen die Beamforming Koeffizienten den folgenden Variablen: Gd0 = a0, Gd1 = a1 und Gd2 = a2. Anhand der Ordnung des gewählten Ambisonics-Systems wird in Node „Expr – number of ambisonic channels of given order“ nach Gleichung 3.2.1 die benötigte Kanalanzahl berechnet. Die Kanalanzahl (bei erster Ordnung: 4, bei zweiter Ordnung: 9) wird multipliziert mit der Anzahl der getrackten Personen. Der Node „Count – Num- ber of Beams“ ermittelt dabei die Größe des anliegenden Spreads. Entsprechend der Gesamtanzahl der Kanäle wird die Größe eines zu erzeugenden, leeren Spreads ge- 56

×