Home
Ein generisches Monitoringsystem für akustische
Contents
1. HRESULT EndOfStream Diese Methode garantiert im Fall einer benutzerdefinierten Puffergr e die Abarbeitung noch offener Samples per ProcessAudio falls das Ende des Datenstromes signalisiert wird 123 Anhang F Bedienung des Klassifikationsfilters Das MonitoringClassifier Filter operiert in sieben verschiedenen Modi Modus 0 Erkennungsmodus arbeitet auf im k d Baum abgelegten Trainingsdaten Klassifikationen werden als Events an nachgeschaltete Filter versandt Modus 1 Aus Trainingsdaten den k d Baum erstellen Dies kann je nach Datenmenge einige Zeit in Anspruch nehmen in der das Filter nicht reagiert Modus 2 Laden des Baumes aus einer Datei Modus 3 Speichern des Baumes in eine Datei Modus 4 Trainingsdaten f r Klasse Musik Modus 5 Trainingsdaten f r Klasse Sprache Modus 6 Reset aller Baumdaten Um Audiosignale zu klassifizieren muss entweder ein bereits trainierter Baum aus den in einer Datei abgelegten Daten geladen Modus 2 oder selbst eine Menge von Trainingsdaten zur Konstruktion verwendet werden Modi 4 5 zum Training danach Modus 1 f r die Erzeugung des Baumes Wird ein Klassifikatorfilter durch Laden eines Projektes aufgerufen so wird versucht die entsprechenden Baumdaten automatisch zu laden Entsprechend umfasst der Konfigurationsdialog folgende Parameter Index Dateiname Datei f r das Laden und Speichern des Baumes k Parameter des k NN Klassifikators
2. double CMonitoringEventMerger ValueFunction double dValue REFERENCE TIME ICID IL IE IE umrechnen in Referenz Zeit 100ns Aufl sung UTICA PTEMIE ete Dake ic wis alOuay MSE ED E O 1L OOO 1110 9 anwenden cVvalus ie Diicic C CDLECUSLON 2 ggf abschneiden return max 0 dValue Das Filter arbeitet dar ber hinaus auch bei nur einer eingehenden Verbindung Dies kann z B zur Filterung eines Eventstromes eingesetzt werden 5 3 6 MonitoringEventExcluder Dieses Verarbeitungsfilter verwendet eine Blacklist von Event Beschreibungen um Events zu filtern Dazu stehen per Konfigurationsdialog bis zu acht Felder zur Verf gung 72 5 Implementation 5 3 7 MonitoringEventIncluder Identisch mit MonitoringEventExcluder allerdings wird hier eine Whitelist verwendet so dass nur darin enthaltene Events weitergeleitet werden Diese beiden Filter erm glichen ein effektives gezieltes Filtern von Events z B im Szenario dass GenMAD das Auftreten nur ganz bestimmter Events berwachen und alle anderen Events ignorieren soll 5 3 8 MonitoringXMI Writer Bei diesem Filter handelt es sich um ein Renderer Filter das den eingehenden Eventstrom in eine per Property auszuw hlende XML Datei schreibt Da Events nicht garantiert in der korrekten zeitlichen Reihenfolge eintreffen werden sie bis zum durch Stoppen des Graphen ausgel sten Schreiben in einer sortierten Liste gehalten Die XM
3. Abb 6 5 Klassifikationsleistung jeweils als Diagramm und als Matrix 6 1 7 Einfluss der Parameter des k NN Verfahrens In diesem Test wurde untersucht wie sich die Klassifikationsleistung des Filters ver ndert wenn verschiedene Werte f r amp verwendet werden also f r die Anzahl der im k NN Klassifikationsverfahren dem Suchvektor n chstliegenden Trainingsvektoren Die Ergebnisse sind in Abbildung 6 5 dargestellt und zeigen ein uneinheitliches Bild in dem sich f r ver ndernde k Werte die Klassifikationsleistung von Musik und Sprachdaten jeweils entgegengesetzt verbessert bzw verschlechtert 6 1 8 Parallelklassifikation mit verschiedenen Abtastraten In diesem Test wurde untersucht ob sich mittels einer Parallelklassifikation durch zwei entsprechende Pipelines eine Verbesserung der Klassifikationsleistung erreichen l sst Grundlage daf r war die in Abschnitt 6 1 4 erl uterte unterschiedliche Beobachtung dass Sprache bei niedrigeren Abtastraten Musik dagegen bei h heren Abtastraten besser erkannt wird An dieser Stelle kommt die flexible durch GenMAD erm glichte Signalverschaltung zum Einsatz wie in Abbildung 6 6 aufgezeigt Da zum Zeitpunkt des Testens kein hochwertiges Filter zum Echtzeit Downsampling der verwendeten 19 Minuten langen Test Audiodatei vorhanden war wurde diese extern mit CoolEdit auf 8 kHz heruntergerechnet und als separate Datei eingebunden Weiterhin kamen in jeder Pipeline Equalizer zum Einsatz
4. 00 00 06 00 00 08 00 00 10 00 00 12 00 00 14 00 00 16 Abbildung 5 2 Das Visualisierungsfenster von GenMAD Das in Abbildung 5 2 dargestellte Visualisierungsfenster ist zum einen ebenfalls mit einer Toolbar ausgestattet und zum anderen entsprechend der in Abbildung 4 3 dargestellten drei Teilklassen zur Visualisierung in drei Teilbereiche jeweils variabel einstellbarer Gr e eingeteilt Auf der linken Seite befindet sich eine in Listenform gehaltene Darstellung aller Events die zu jedem Event auch die entsprechenden Parameter enth lt Die rechte H lfte des Fensters enth lt im oberen Teil eine Echtzeitdarstellung der Wellenform des ausgew hlten Filters falls der im folgenden erl uterte Audiofokus gesetzt ist und im unteren eine Piano Roll hnliche Echtzeit Repr sentation der Events Verschiedene Instanzen des zur Event Visualisierung verwendeten MonitoringEventV isuahzer Filters werden bereinander angeordnet dargestellt Die Farbgebung korrespondiert dabei ebenso wie in der Liste mit der Farbe der Filter im Manipulationsbereich Jeder vertikale Strich der Eventdarstellung entspricht einem per Zeitstempel datierten Event dessen H he seinem Ranking entspricht Aufeinander folgende Events gleicher Quelle werden als Eventblocks visuell zusammenfasst indem ein dar ber liegender mit dem Namen des Events beschrifteter horizontaler Balken gezeichnet wird wie in Abbildung 5 2 ersichtlich Das erw hnte Konzept des Audiofokus
5. 104 Anhang D Technische Dokumentation von GenMAD HRESULT RemoveFilter CFilterContainer pFltContainer Komplettes Entfernen eines Filters aus dem Graphen void SwitchPinConnection Umkehren des Verbindungszustandes des selektierten Pins also verbunden und nicht verbunden void ShowMediaTypes Anzeige der Mediaformate eines Pins per CMediaTypeDialog HRESULT AddConnection IBaseFilter pFilter Verbindung zwischen selektiertem und bergebenem Filter herstellen vorc start void Pause void Stop Abspielkontrolle wie in 5 1 8 beschrieben Dabei wird sowohl pControl verwendet als auch das Visualisierungsfenster synchronisiert void Serialize CArchive amp archive Wie in Abschnitt 5 1 4 beschrieben findet hier das Laden und Speichern mittels des CArchive Objektes statt void Update Benachrichtigen aller Filter ber m gliche nderungen und anschlie endes Zeichnen void Recreate CString sOpenPath Nach einem Ladevorgang ausgef hrte Methode zur Verbindung aller Filter wie in 5 1 4 erl utert HRESULT SwitchReferenceClock bool bUseReference Referenz Clock von NULL wie per positivem Parameter angezeigt auf normal amp umgekehrt umschalten Siehe 5 1 7 f r eine Beschreibung des Konzeptes void ChangeSourcekFile CFilterContainer pEltContainer Austausch einer Mediendatei eines FileSource Filters Wird erreicht durch Neu Erzeugen und geeignetes Verbinden anstelle des bisherigen
6. IMonitoringMaster pMonitoringMaster Kommunication mit GenMAD ver ffentlichte Properties PropertyType pPropertyType int cPropertyCount Zeitstempel des aktuellen evtl noch offenen Puffers REEBREINGHERTSNMEIERSTES REFERENCE TIME rtSeekOffset eigenes puffer management int iBufferSize Puffergr sse in Byte int iDirectXBufferSize aktuelle DirectShow Puffergr sse bool bUseSpecificBuffer eigenen Puffer verwenden BYTE pSpecificBuffer der eigene Puffer BYTE pBuffer Zeiger auf aktuelle Puffer Schreibestelle Nachfolgend werden die wesentlichen Methoden erl utert Voici Toae In dieser Funktion die unter anderem von den Konstruktoren aufgerufen wird ist die zentrale Initialisierung aller Variablen enthalten 120 Anhang E Technische Dokumentation des Filter SDK virtual HRESULT CallSlave int iCodeID void pParam void ppReturnValue virtual HRESULT SetIMonitoringMaster IMonitoringMaster pmm virtual int GetAllProperties PropertyType ppPropertyVarType virtual HRESULT GetProperty int iPropID PropertyType pProp virtual HRESULT SetProperty PropertyType Prop virtual HRESULT SetShowAudioData bool bShowData virtual void FreeResources virtual int Ready char szErrMsg virtual void SetBufferSize int iBytes virtual int GetBufferSize return iBufferSize virtual HRES
7. long lNewEstSeekPos 0 Was liegt weiter vom Ziel weg Before oder After Pointer REFERENCE TIME rtDifBefore rtNewPos rtBefore REFERENCE TIME rtDifAfter rtAfter rtNewPos den weiter entfernten Zeiger in gleichem Verh ltnis wie den anderen ans vermeintliche Ziel heranschieben LE KELEIDELIEBKSNEONS gt EelDHLIBLUDeEeN entweder neu anteilig berechnen oder zumindest minimal weiter if 1PosBefore lt 1EstSeekPos 1NewEstS else kPos 1PosBefore l1EstSeekPos lPosBefore 2 74 5 Implementation lNewEstSeekPos max lPosAfter 1PosBefore 2 1PosBeforet256 else entsprechend f r den umgekehrten Fall Rekursion ausf hren return SeekPos rtNewPos pFile 1lNewEstSeekPos xml weeicwicm S ORG Die Funktion FindEventAtPos verwendet dabei den XML Parser um in demjenigen Bereich der Datei nach einem Event zu suchen der sich ab der bergebenen Position erstreckt 5 3 10 MonitoringClassifier Dieses Generatorfilter verwendet eine im Rahmen dieser Diplomarbeit konzipierte und realisierte Methode zur Klassifikation eingehender Audiosignale in Stille Sprache oder Musik Zur Diskriminierung der eingehenden Signale werden die folgenden Audiomerkmale verwendet e Varianz der Zero Crossing Rate e Low Energy Frame Percentage e Varianz des Spectral Flux e Varianz des Spectral Centro
8. 22 23 24 25 26 27 28 29 30 Literaturverzeichnis E Batlle J Masip E Guaus Amadeus A Scalable HMM based Audio Information Retrieval System Proceedings of First International Symposium on Control Communications and Signal Processing Hammamet Tunisia 2004 Bay TSP Tracking Security amp Protection http www baytsp com R Bellman Adaptive Control Processes A Guided Tour Princeton University Press 1961 C M Bishop Neural Networks for Pattern Recognition Oxford University Press Oxford 1995 G Booch Object Oriented Design with Applications Benjamin Cummings Redwood City 2 Auflage 1994 Brand Detector http www detect tv com C J C Burges J C Platt S Jana Extracting Noise Robust Features from Audio Data Microsoft Res Redmond WA ICASSP p 1021 1024 2002 P Cano E Batlle T Kalker and J Haitsma Review of Audio Fingerprinting Algorithms in MMSP 2002 P Cano E Batlle H Mayer and H Neuschmied Robust sound modeling for song detection in broadcast audio in Proc AES 112th Int Conv Munich Germany May 2002 P Cano M Koppenberger S Le Groug J Ricard P Herrera N Wack Nearest neighbor generic sound classification with a wordnet based taxonomy Proceedings of AES 116th Convention Berlin Germany 2004 Cedega http www transgaming com E Chavez G Navarro R A B
9. Microsoft DirectX http msdn microsoft com directx MIDI Spezifikation http www midi org about midi specinfo shtml A Moore K means and Hierarchical Clustering Carnegie Mellon Univ 2001 MPEG 7 Overview version 9 2003 http www chiariglione org MPEG standards mpeg 7 mpeg 7 htm MPEG 21 Overview 5 Oktober 2002 http www chiariglione org MPEG standards mpeg 21 mpeg 21 htm MSN Music http beta music msn com Music Reporter http www musicreporter net MusicBrainz http www musicbrainz org MusicMatch Jukebox http www musicmatch com MusicTrace Broadcast Monitoring and Internet Tracing for Music and Advertising http www musictrace de Napster http www napster com Native Instruments Reaktor http www nativeinstruments de Nielsen Broadcast Data System http www bdsonline com A Y Nooralahiyan L Lopez D McKewon and M Ahmadi Time delay neural network for audio monitoring of road traffic and vehicle classification Proc SPIE Vol 2902 pp 191 198 1997 130 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 Literaturverzeichnis A V Oppenheim R W Schafer and J R Buck Discrete Time Signal Processing 2nd edition Prentice Hall Inc 1999 C Panagiotakis and G Tziritas A Speech Music Discriminator Based on RMS and Zero Crossings IEEE Transactions on Multi
10. Parameter Zeiger auf COM Objekt das ImonitoringMaster implementiert HRESULT STDMETHODCALLTYPE virtual erweiterbare Funktionalit t Parameter SetIMonitoringMaster IMonitoringMaster pam 0 iCodeID Codes f r generische Unterfunktionen pParam Zeiger f r beliebige Parameter ppReturnValue Zeiger auf Zeiger f r beliebige R ckgabewert HRESULT STDMETHODCALLTYPE virtual pParam void on CallSlave int iCodeID void ppReturnValue Festlegen und Abfrage der Puffergr sse in Bytes void STDMETHODCALLTYPE int STDMETHODCALLTYPE Eigen virtual void STDMETHODCALLTYPE SetBufferSize int iBytes GetBufferSize Resourcen wieder freigeben FreeResources 0 Statusabfrage ob bereit zu starten Parameter szErrMsg optionaler Fehlertext zur R ckgabe R ckgabe Ein Wert 0 signalisiert Bereitschaft virtual int STDMETHODCALLTYPE Festsetzen des Namens Parameter sNewName Name virtual void STDMETHODCALLTYPE T Ready char szErrMsg SetFilterName char sNewName OF Abfrage einer Liste aller Properties Parameter ppPropertyVarType Array mit Properties R ckgabe Anzahl der Properties virtual int STDMETHODCALLTYPE Abfrage einer Property Parameter PP MIZEOOMIDE TD Cer Prooarey GetAllProperties PropertyType ppProper
11. basierend auf den Angaben aus FilterDefs h wichtige Methoden in den Code der Filterklasse einf gen z B die Factory Methode zum Erzeugen einer Instanz Dar ber hinaus werden Makros definiert die Pin Felder mit Pin Instanzen f llen Auf diese Weise wird ein ein Arbeiten in der zu erstellenden Filterklasse erm glicht als ob der Benutzer selbst diese Angaben manuell gemacht h tte E 2 8 DXAudioBuffer Diese Stuktur wird in CMonitoringBaseFilter intern zum Datentransport verwendet struct DXAudioBuffer long cSamp Anzahl Samples im Buffer IMediaSample pms das DirectX IMediaSample f r diesen Buffer WR E 2 9 GlobalDefs h Diese Headerdatei beinhaltet die CLSIDs von CMonitoringBaseFilter und CMonitoringBaseFilter PropertyPage E 2 10 EventSample h Diese Headerdatei enth lt die in Anhang D 4 2 abgebildete EventSample Datenstruktur 117 Anhang E Technische Dokumentation des Filter SDK E 3 Die Pin Klassen Im Folgenden sollen die wichtigen Methoden der Pin Klassen erl utert werden Dabei werden wichtige Operationen durch ein serialisierendes Streaming Lock vom Typ CCritSec gesch tzt das sich mittels Initialisierung durch die CAutoLock Klasse automatisch selbst wieder ffnet E 3 1 CMonitoringAudiolnputPin class CMonitoringAudiolnputPin public CBaseInputPin Diese Klasse repr sentiert einen Eingangs Audiopin HRESULT CheckMediaType const CMediaType pmt In dieser Methode findet ein Teil der
12. das als Splitterfilter auch die GenMAD Applikation zu einer Art abstraktem Rendererfilter macht und auf diese Weise eine echtzeitf hige und effiziente Visualisierung erm glicht 4 2 2 Zentrale Aspekte der GenMAD Applikation Prim re Ziele des GenMAD Konzeptes sind e Bereitstellung einer grafischen Oberfl che zur visuellen Erstellung und Editierung eines Datenflussgraphen aus DirectX Filtern e Kommunikation mit und Konfiguration von Filtern e Abspiel und Transportkontrolle mit Fehlerbehandlung e Projektzentriertes Arbeiten mit M glichkeiten zum Laden Speichern des aktuellen Datenflussgraphen e Bereitstellung einer geeigneten konfigurierbaren Echtzeit Visualisierung von Audio und Eventdaten mehrerer Filter 56 4 Entwurf des GenMAD Systems Visualisierung und Konfiguration Ereignisbehandlung und Systemkontrolle DirectShow Kommunikation und Modellierung Abbildung 4 3 Schicht Aufbau von GenMAD Dazu werden die verschiedenen Aufgabenbereich m glichst klar in Klassen und diese abstrakt in Schichten getrennt Dieser Schicht Aufbau ist in Abbildung 4 3 dargestellt und erleichtert zum einen die bersicht und somit die Erweiterbarkeit und das Debugging der Implementierung zum anderen dient es durch das Ausf hren in verschiedenen Threads und die Zugriffskontrolle private gesch tzte und ffentliche Methoden und Eigenschaften der Robustheit bzw Laufzeitsicherheit der Anwendung Die Tiefe einer Schicht ergibt
13. x n x In n Z Die Anzahl 1 T der Abtastwerte engl Samples je Sekunde wird als Abtastfrequenz oder rate engl sampling rate bezeichnet Bei einer solchen Wandlung stellt sich nat rlich die Frage des Informationsverlustes Dazu wird der Begriff der Bandbegrenztheit ben tigt Ein Signal f L R hei t bandbegrenzt falls eine 2 Audiomonitoring Frequenz f existiert so dass das Spektrum f von f f r alle Frequenzen au erhalb des Frequenzbandes f axs Sm verschwindet d h f 0 f r alle Frequenzen f gt fyax Das Abtasttheorem von Shannon 94 besagt dass ein bandbegrenztes Signal durch eine diskrete Menge von Abtastpunkten fehlerfrei reproduziert werden kann wenn dieses mit einer Frequenz f 1 T abgetastet wird die gr er als doppelt so hoch ist wie die h chste im abzutastenden Signal auftretende Frequenz foa also gt gt R 2 Ws Dabei wird f 2 auch als Nyquist Frequenz bezeichnet In dem der Abtastung nachfolgenden Prozess findet eine Quantisierung der Signalwerte auf Integerwerte eines fixen Wertebereiches statt blicherweise angegeben in Bits Die Folge der Signalwerte wird entsprechend einem linearen oder nichtlinearen Schema auf Quantisierungswerte abgebildet Die Anzahl der Abstufungen definiert somit die Qualit t der Repr sentation Gibt es zu wenige Abstufungen so werden verschiedene Amplitudenwerte der selben Qualit tsstufe zugeordnet was zu Quantisierungsrauschen f
14. ESULT ShowAudio AudioBuffer ab ESULT ShowEvent EventSample es ESULT NotifyDiscontinuity REFERENCE TIME rtTimestamp ESULT NotifyFilterChange int iParam ESULT SetFilterName char sOldName char sNewName Implementation des IMonitoringMaster Interfaces siehe dessen Beschreibung in D 3 1 I u S S STDMETHODIMP NonDelegatingQueryInterface REFIID riid void ppv DirectShow Methode zur Ver ffentlichung implementierter Schnittstellen damit dieser via COM verf gbar sind void HandleMouse int iEvent WPARAM wParam LPARAM lParam Behandlung von Mausereignissen im Manipulationsbereich void ShowVisualizer CFilterContainer pFlt Anzeigen des Visualisierungsfenster bergabe von Filter Informationen void HandleKeys WPARAM wParam LPARAM lParam Behandlung von Tastatureingaben voro Permie Zeichnen des aktuellen Graphen durch Aufruf entsprechender Methoden aller Filter Cm llivewComtaidmneiz Gewrilter ine D CFilterContainer GetFilter CString szName CFilterContainer GetFilterByViewName CString szName Filter anhand von ID internem oder angezeigtem Namen finden HRESULT AddFilter CFilterContainer pFltContainer HRESULT AddFilter IBaseFilter pFilter CString sName Hinzuf gen eines Filters zum Graphen entweder als Hilfsfunktion zur RenderData oder nach Auswahl im CAvailsFiltersList Dialog
15. Gesamte falsche Klassifikation 43 4 24 15 36 29 Musik korrekt klassifiziert 49 56 74 51 523 Musik falsch klassifiziert 50 44 25 49 42 77 Sprache korrekt klassifiziert 82 47 80 79 84 92 Sprache falsch klassifiziert 17 53 19 21 15 08 Stille korrekt klassifiziert 66 67 77 78 86 67 Stille falsch klassifiziert 33 33 22 22 13 33 Tab 6 9 bersicht ber die Klassifikationsleistung in der beiden Pipelines und der Kombination im Radiotest 2 Auff llig ist hier zum einen dass der auf 44 1 kHz operierende Klassifikator wie vermutet in beiden F llen signifikant besser arbeitet als der 8 kHz Klassifikator Dies scheint auf die ohnehin hohe Komprimierung der Testdaten zur ckzuf hren zu sein so dass die Verbindung von dem mit 48 kHz kodierten Signal und dem Downsampling auf 8 kHz eine zu starke Verzerrung erzeugte Zum anderen wird hier im Gegensatz zum Test in 6 1 8 eine Verbesserung der Gesamtleistung in Folge der Kombination der beiden Pipelines sichtbar In den Logdaten zeigt sich dass alle drei gemessenen Ereignisreihen aus langen Passagen mit einer Klassifikation bestehen die in mehr oder weniger h ufigem Ma durch Ausrei er Fehlklassifikationen von ca 1 20 Sekunden L nge unterbrochen werden In der 44 1 kHz Pipeline sind die AusreiBer seltener und von gleichm igerer Art und L nge als in der mit 8 kHz arbeitenden Pipeline wo oftmals ein Wechsel zwischen 2 3 Sekunden langen Folgen zu beobachten ist Die H ufigkeit diese
16. Handel und sonstige Manipulationen des Objektes umfasst Um dies zu erm glichen muss das Digital Item genau identifiziert beschrieben verwaltet und gesch tzt werden Dies setzt eine Standardisierung s mtlicher verwendeter Komponenten auf Interfaces fu ende Inhalts Definitionen von Syntax und Semantik sowie die Beschreibungen enthaltener Beziehungen voraus Das MPEG 21 Framework basiert daher grunds tzlich auf sieben Schl sselelementen e Digital Item Declaration Einheitliche Abstraktion zur Definition von Digital Items e Digital Item Identification and Description Mechanismen zur Identifikation und Beschreibung e Content Handling and Usage Interfaces und Protokolle f r s mtliche Benutzerinteraktionen e Intellectual Property Management and Protection Rechteverwaltung e Terminals and Networks Transparenz gegen ber dem Transportmedium e Content Representation Darstellung der Inhalte e Event Reporting Performanzmessung MPEG 21 Benutzer werden nicht in Kategorien wie etwa Produzent eingeteilt sondern individuell anhand ihrer Beziehungen zu anderen Benutzern identifiziert Die sich durch eine solche Standardisierung er ffnenden M glichkeiten sind offensichtlich so weitreichend dass der gesamte Multimedia Markt ma geblich davon betroffen sein d rfte vom Privatanwender ber Internethandel bis zu digitalem Fernsehen Nachdem in diesem und dem vorigen Kapitel die Grundlagen daf r gelegt wurden soll im nun folgenden z
17. Zus tzlich werden oft auch statistische Daten verf gbar gemacht Integration mit und Unabh ngigkeit von Hardware Dies wird m glich z B durch ein geeignetes Treibermodell und die Unterst tzung von CPU Multimedia Erweiterungen Verwaltung von Framework Komponenten blicherweise erweitern Drittanbieter ein gegebenes Framework ber eine standardisierte P ngin Schnittstelle Plugins sind im Allgemeinen kleine portable Code Objekte die ber einen definierten Registrierungs Mechanismus in ein Framework integriert werden k nnen und hnlich einer Bibliothek ein oder mehrere Interfaces implementieren Das Einbinden bzw das Aufrufen des enthaltenen Codes findet dann ber Funktionen des Frameworks statt z B unter Verwendung eines Factory Patterns Beispiele f r Plugins sind Audio Video Codecs und Filter Transformatoren Dienste f r die Produktion von Multimediadaten Bereitstellung von entsprechenden Werkzeugen und dokumentierten Schnittstellen z B f r das Capturing von Daten also die Aufnahme eines Eingangsdatenstromes mit entsprechender Dokumentation und automatischen Metadaten Rechtemanagement und Sicherheitsfunktionalit t Hierunter f llt neben einer Sicherheit gegen ber Angriffen durch kryptografische und konfiguratorische Ma nahmen auch Ausfallsicherheit in Form von Datensicherungsmechanismen Threadsicherheit und Robustheit gegen ber z B fehlerhafter Hardware Die rechtlichen Aspekte dagegen betreffen die
18. akustische Daten verarbeitet werden wie z B im Falle von Projekten zum automatisierten Monitoring von Tierstimmen die momentan von der Arbeitsgruppe Multimedia Signalverarbeitung der Universit t Bonn in Kooperation mit verschiedenen Partnern aus der Biologie und dem Bundesamt f r Naturschutz in Angriff genommen werden Obwohl wie in Kapitel 2 noch genannt vielf ltige Ans tze existieren um Audiosignale zu identifizieren zu klassifizieren und zu berwachen sind diese jedoch in nur sehr eingeschr nktem Ma e austausch und vergleichbar Dar ber hinaus fehlt oftmals ebenso eine M glichkeit zur flexiblen Verwendung verschiedener Datentypen wie eine Schnittstelle zur Einbindung von fremden Algorithmen Ziel der vorliegenden Diplomarbeit ist daher die Konzeptionierung und Realisierung eines generischen Monitoringsystems f r akustische Datenstr me Generisch bezeichnet im vorliegenden Fall die Eigenschaft beliebige Monitoring Algorithmen dynamisch ber eine definierte Schnittstelle verwenden zu k nnen Dies schlie t auch M glichkeiten zur Filterung und Visualisierung derjenigen Daten mit ein die die eingebundenen Algorithmen erzeugen Auch wenn dies nicht die Definition eines Standards zur Arbeit mit Audiomonitoring Verfahren darstellt so soll das System doch auf die Notwendigkeit eines solchen Systems hinweisen und praxisnah Vor und Nachteile verdeutlichen Die Erweiterbarkeit des Systems ist daher wesentlicher Bestandteil des z
19. bersicht ber weitere Ans tze zur Audioidentifikation sei hier auf die Arbeit 21 verwiesen ber die reinen Audioidentifikations Technologien hinaus kam es in den letzten Jahren zu einem Boom von Start Up Unternehmen deren Produkte sich mit Audioidentifikation besch ftigen darunter das von Napster Gr nder Shawn Fanning gegr ndete Relatable 87 Aufgrund rechtlicher Schwierigkeiten der Firma Napster war die neueste Version des Systems die eine High Level Musikmodellierung zur Filterung von File Sharing Anfragen verwendete jedoch nur wenige Tage im Einsatz Die Technologie wurde von Fanning im Dezember 2004 in einem neuen Service namens Snocap 98 der ffentlichkeit vorgestellt Weitere Firmen und Projekte finden sich online z B AudibleMagic 9 Yacast 120 und MusicBrainz 74 2 6 Audioklassifikation Ein der Audioidentifikation nah verwandter Teilbereich des Audio Information Retrieval ist die Andioklassifikation Ziel ist dabei die automatische Zuordnung eines Anfrage Audiosignals zu einer semantischen Klasse Auch hier unterscheidet man auf Metadaten arbeitende Verfahren z B Stringmatching unter Verwendung von Anmerkungen zu Autor und Titel und inhaltsbasierte Verfahren Hier soll auf letzteren Fall eingegangen werden Einige der hierbei erl uterten Konzepte finden Anwendung in dem Klassifikationsmodul welches im Rahmen dieser Diplomarbeit entwickelt und umgesetzt wurde Die entsprechende Darstellung findet sich in Kapitel 5
20. die dem jeweiligen Klassifikator sowohl im Trainings als auch im Erkennungsmodus vorgeschaltet waren Ziel der Verschaltung war es je eine Pipeline zur Erkennung von Musik und Sprache zu verwenden deren Ausgaben durch ein MonitoringEiventMerger Filter zusammengef hrt werden wobei die Signale und Klassifikatoren jeder Pipeline auf h chste Klassifikationsleistung der jeweiligen Klasse optimiert werden Die Ergebnisse dieses Tests sind in Abbildung 6 7 visualisiert Ginput Ultrafunk fx Equalizer R3 MonitoringEventMerger MonitoringEventVisualizer MonitoringeventNullRenderer Abb 6 6 GenMAD Projekt mit zwei parallel arbeitenden Klassifikationspipelines 81 6 Anwendungen Tests und Bewertungen Klassifikation von Musikdaten Klassifikation von Sprachdaten Gesamtklassifikationsleistung 44 1KHZ KHZ Gesamt ae OK Gesamt Sonstiges 4 55 o 2 82 f rs o sprache 21 43 32 98 18 85 fsracne En EL Gesamt Musik 74 02 67 02 78 33 Emsi 39 28 2142 32 87 korrekt ae Abb 6 7 Links und in der Mitte Klassifikationsleistung jeweils als Diagramm und als Matrix Rechts Gesamtleistung Klassifikationsparameter k 5 Merger Diffusion 5 Gewichtung 0 SegmentMindestL nge 0 Wie erwartet erreichten beide Pipelines akzeptable Ergebnisse in ihren Spezialgebieten
21. kommerziellen F llen die Software zum Abspielen P ayer kostenlos verf gbar ist um eine starke Marktdurchdringung zu erlangen die zur vollwertigen Produktion ben tigten Versionen und Servereditionen jedoch daf r um so kostspieliger sind Zwar existieren auch zahlreiche Multimedia Frameworks die wie z B MME 29 das an der Universit t Z rich entwickelte MET 1 das Berkeley CMT 97 und Nsync 12 aus universitarem Kontext heraus oder wie Steinbergs VST Technologie 123 oder Cycling 74 Max Msp 26 zumindest teilweise kommerziell entwickelt wurden im Folgenden soll jedoch lediglich eine Auswahl weit verbreiteter oder zumindest hinreichend komplexer Multimedia Frameworks genauer vorgestellt werden 3 3 1 Quicktime Apple schuf mit Quicktime 7 1991 als Erweiterung des eigenen Betriebssystems zur Behandlung zeitbasierter Daten die erste Streaming Technologie die heute in Form der stark weiterentwickelten Version 6 elementarer Bestandteil der aktuellen OS X Systemarchitektur ist Auf Quicktime basierende Software kann dar ber hinaus auch f r Windows und Java entwickelt werden Zum umfassenden Funktionsumfang geh ren unter anderem die Anzeige und Bearbeitung von Audio Video Grafik Text MIDI Flash und VR Panoramen sowie mehr als 250 unterst tzter Dateiformate Das enthaltene Streaming basiert auf der Unterst tzung von HTTP RTP RTSP und 20 weiteren Netzwerkprotokollen und bekommt neben Broadcasting auch durch die ebenfall
22. lt lt interface gt gt IMonitoringMaster public protected public void pVisualizer CAudioComboBox CAudioComboBox SetParent CAudioView protected bool bFollowTrack bool bZoomChanged CVisualizerFrame pVFrame int iBytesPerSample int iChannels double dRefTimePerSample int iMiliSecTiming REFERENCE_TIME rtTimePerPixel REFERENCE_TIME rtPreviousTimestamp CVisualizerFrame double dPixels protected CList Filters CList FiltersEV CString sOldAudioFilter CToolBar m_wndToolBar CAudioComboBox m_comboAudioFilter CSliderCtrl m_wndSlider ViewBuffer vBufl int iCurBufReadindex int iCurBufWritelndex double fSamplesLeft double fSamplesPerView CDC bufDataDC CDC bufScalaDC bool bBufDCSet Bitmap bmpData Bitmap bmpScala CRect origScreen bool bResized HANDLE mutex REFERENCE_TIME rtPreviousActionTimestamp public CAudioView CAudioView SetParent Action ShowAudio HRESULT Reset SetFollowTrack GetMsTiming int SetMsTiming PreCreateWindow bool WindowProc LRESULT protected OnPaint OnSize GetSampleValue short Lock bool UnLock bool CEventView protected bool bIsStilMode bool bAlreadySerolling CS
23. pCat POSITION pos Unter Verwendung eines COM Objektes namens SystemDeviceEnumerator wird eine Filter Kategorie pCat im System erfragt und in den Baum eingef gt Der Zweig des Baumes wird mit dem Kategorie Index pos markiert Der Vorgang wird in 5 1 3 zusammengefasst IBaseFilter CreateFavorite int iIndex Erzeugung eines als Favorit definierten Filters an Stelle iIndex im vordefinierten Feld das als IBaseFilter zur ckgegeben wird IBaseFilter CreateFilter CLSID categoryCLSID int ilndex Erzeugung eines durch Filters der Kategorie categoryCLSID an Stelle iIndex im vordefinierten Feld mittels des beschriebenen Vorgangs Das Filter wird als IBaseFilter zur ckgeliefert 100 Anhang D Technische Dokumentation von GenMAD D 2 5 CAvailPinsDialog Dialog der zu einem gegebenen Pin in einer Baumstruktur alle Pins mit zugeh rigem Filter anzeigt die sich mit einander verbinden lie en Auf Knopfdruck wird dies ausgef hrt Die verbindbaren Pins werden dem Dialog bergeben und in einer CList gespeichert CIVPSCIRcrlisic lt KCktichilst CPiialmten gt jolewincle ims 9 void OnOK Anhand des gewahlten Eintrags im Baum Steuerelement wird versucht eine Verbindung dazu herzustellen Im Erfolgsfall wird der Dialog geschlossen D 2 6 CChildView class CChildView public CWnd Diese Klasse reprasentiert den Manipulationsbereich und dient einzig dem Zweck von Windows versandte Zeichnen und Benutzereingabe Messages abzufange
24. repr sentierten Filter des aktuellen Graphen mit namentlicher Beschriftung Dabei sind Filter die das IMonitoringSlave Interface implementieren dadurch markiert dass ihr Name statt durch dunkle durch wei e Schrift auf dunklem Hintergrund hervorgehoben ist Eingehende Pins sind als kleine graue Quadrate stets an der linken Seite jedes Filters ausgehende an der rechten Seite befestigt und mit ihrem Namen versehen Verbindungen zwischen Filtern respektive Pins sind durch Linien gekennzeichnet Der Aufbau ist dabei inspiriert von dem im DirectX SDK enthaltenen Programm GraphEdit S mtliche durch den Benutzer ausf hrbare Operationen sind entweder ber die Toolbar erreichbar oder durch Editieren der genannten Objekte im Manipulationsbereich m glich Per Rechtsklick kann ein Filter dialogbasiert konfiguriert werden Dar ber hinaus verf gen Filter und Pins zus tzlich ber Kontextmen s die Informationen zu Zustand und Eigenschaften sowie verschiedene Operationen anbieten E enman e Datei D eA Fae mol u lo hoo MonitoringAudentifyF ilter MonitoringEventVisualizer MonitoringEventNullRenderer Bereit num 4 Abbildung 5 1 berblick ber das Hauptfenster von GenMAD 59 5 Implementation Ei Monitoring Ausgabe ib MonitoringAudentifyFilter2 v J20ms Timestamp _ Desk Score shift___ ce 00 00 06 00 00 08 00 00 12 00 00 14 00 00 16
25. root mean square error und kann je nach Datenbeschaffenheit gut abgesch tzt werden Jedes Codebuch stellt eine Klasse dar und wird entsprechend in einer Klassendatenbank abgelegt Die im Erkennungsmodus stattfindende Identifikation erh lt eine Anfrage in Form einer Folge von Vektoren im R Die Treffererkennung stellt nun ein N Klassen Klassifikationsproblem dar Zun chst wird die Anfrage in eine Sequenz entsprechender Merkmale transformiert die nachfolgend durch alle in der Datenbank vorliegenden Codeb cher unter Verwendung der RMSE Distanz approximiert wird Dabei wird der Fehler jedes Codebuches akkumuliert Die Anfrage wird derjenigen Klasse zugeordnet die den geringsten akkumulierten Fehler besitzt Zur Steigerung der Performanz werden w hrend der Verarbeitung der Vektorfolgen kurzzeitliche Statistiken berechnet und im folgenden angewandt was zu einer sowohl h heren Erkennungsrate wie auch zu einer schnelleren Berechnung f hrt In Tests mit bis zu 15 000 Testmusikst cken erreichte das System selbst bei verrauschten Signalen ber 98 korrekter Treffer Dar ber hinaus ist AudioID ein sehr performantes System das auch auf g ngigen Desktop PC Systemen l uft 2 5 2 Shazam Ent Wang Als eines der ersten Verfahren wird der von Shazam Entertainment Kalifornien unter Leitung von Avery Wang entwickelte Audioidentifikationsalgorithmus 114 seit 2002 kommerziell eingesetzt Der unter anderem in Gro britannien und in Deu
26. um die Dimensionalit t weiter zu reduzieren oder um eine Gl ttung der Vektordaten zu erreichen z B DCT bei der Verwendung von MFCCs die im nachfolgenden Abschnitt erl utert werden 63 18 2 Audiomonitoring d Merkmalsextraktion In diesem Teilschritt des Front Ends wird aus dem vorverarbeiteten und transformierten Eingangssignal mittels eines Merkmalsextraktors eine Folge von Merkmalen erzeugt Die dazu verwendeten Ans tze unterscheidet man in parametrische und nicht parametrische Methoden Im parametrischen Fall folgen alle Signale einem mathematischen statistischen Modell und unterscheiden sich lediglich in den Modellparametern Ein solches Modell k nnte beispielsweise aus mehrdimensionalen Gau Verteilungen von Merkmalen bestehen und die Parameter aus den jeweiligen Mittelpunkten und Varianzen Da ein solches Modell in der Praxis jedoch wegen der gro en Signalvielfalt kaum findbar und falls doch die Modellparameter nur sehr aufwendig bestimmbar sind verwendet man blicherweise nicht parametrische Methoden 27 Die Menge der Audiomerkmale l sst sich weiterhin in semantische und nicht semantische Merkmale unterteilen Andere Quellen sprechen auch von wahrnehmbaren respektive physikalischen Merkmalen Semantische Merkmale bezeichnen auch f r Menschen intuitiv erkennbare Bewertungen wie z B Genre oder Beats Per Minute BPM Semantische Merkmale weisen jedoch wesentliche Nachteile auf e Sie sind oft mehrdeutig subjektiv un
27. 1 Grundlegendes Konzept des GenMAD Systems Wichtigstes Element von GenMAD ist der Datenflussgraph Dieser ist ein gerichteter azyklischer Graph und besteht aus einer Menge miteinander verbundener Module genannt Fifer die verschiedene Signalverarbeitungsoperationen durchf hren k nnen In GenMAD werden zwei Typen von diskreten Signaldaten unterst tzt Zum einen einer Audiodatenemenge Da ZR Die Audiodatenelemente Signalelemente d4 udio sind von der Form da ATR danao E Daudi und ordnen einem Zeitpunkt einen reellen Wert zu Die Differenz der Zeitpunkte zweier Audiodatenelemente entspricht stets dem Mehrfachen einer festen als Abtastrate bezeichenten Frequenz f4 In GenMAD werden jedoch nur endliche Signale f a gt R b a 1 N verarbeitet die in sogenannten Puffern p der L nge Len p N gespeichert werden Ein Puffer p ist ein Tupel aus einem einfachen Vektor und einem Zeitstempel p RN x Z mit einer Zeitdauer von N f Sekunden Der Zeitstempel eines Puffers wird ber Zeit RNx Z Z zur ckgeliefert Die Folge der Puffer wird als Datenstrom bezeichnet 53 4 Entwurf des GenMAD Systems Datenflussgraph IMonitoringSlave IMonitoringMaster GenMAD Abbildung 4 1 Schema des GenMAD Systems Daneben werden auch sogenannte Eventdaten dy Zx E unterst tzt vent einer Eventmenge D Event die ei
28. 2 2 Performanz von GenMAD Die Laufzeitleistung von GenMAD wird fast ausschlie lich durch die im Datenflussgraphen enthaltenen Filter bestimmt Lediglich die Visualisierung der verarbeiteten Daten ben tigt in wesentlichem Ma e Rechenzeit Auch ohne eingehende Daten schl gt das offene Visualisierungsfenster mit ca 4 Prozessotlast zu Buche F r die datenbezogene CPU Last muss zwischen Ereignis und Audiodaten unterschieden werden Die Audiodatenanzeige ben tigt unabh ngig vom Rest des Projektes ca 10 der Prozessorleistung Ist der Audiofokus keinem Filter zugewiesen wird keine Prozessotlast verursacht Die Darstellung von Eventdaten scheint ebenfalls einem linearen Verlauf zu folgen bei dem je Event Visualisierungsfilter 0 5 der Prozessotleistung ben tigt werden 6 3 Anwendungen GenMAD bietet vielf ltige Ans tze f r Monitoring Anwendungen Diese ergeben sich vor allem aus den Mitteln zur flexiblen Erzeugung und Bearbeitung des Datenflussgraphen in Kombination mit einer gro en Menge von hochwertigen durch Dritte entwickelten Filtern Die im Monitoring stets pr senten Bereiche Vorverarbeitung Analyse und Nachverarbeitung profitieren dabei alle von den gebotenen M glichkeiten Die Unterst tzung aller g ngigen Audioformate und die Verwendbarkeit von Capturingfilter erlauben den Einsatz in vielen verschiedenen Umgebungen Ein Einsatzgebiet besteht z B in der Verwendung eines in Echtzeit eingehenden Videosignals dessen Audiokanal f
29. 8 beschriebenen MonitoringXMI Writer bernommen diese f hren jedoch noch zus tzliche Operationen aus und sind daher je nach Projekt ungeeignet 70 5 Implementation 5 3 3 MonitoringEventVisualizer Dieses Filter dient der Visualisierung von Events in GenMAD Es besitzt eine numerische Property namens Score Threshold mit Standardwert 7 die bei eintreffenden Events mit dem darin enthaltenen Score Ranking verglichen wird Nur bei einem dem Threshold mindestens gleich hohen Score Wert wird der Event an GenMAD bermittelt Das exklusive Verwenden dieses Filters zur Eventvisualisierung erlaubt eine viel gezieltere Auswahl visualisierter Filter als wenn s mtliche Filter Events sendeten denn in diesem Fall w rde das GenMAD Visualisierungsfenster durch Mengen redundanter Daten so un bersichtlich dass ein gezieltes Arbeiten stark erschwert w rde Auch die automatische Visualisierung der Event Generatoren wie dem MonitoringAudentifyFilter widerspr che dem hier gew hlten flexiblen Ansatz vor allem im Fall komplexerer Verschaltungen 5 3 4 MonitoringEventSplitter Dieses Splitterfilter dient der Verteilung von eingehenden Events an zwei nachgeschaltete Filter 5 3 5 MonitoringEventMerger Als einziges der hier vorgestellten Filter besitzt dieses Kombinatorfilter zwei eingehende Event Pins Zweck ist das Zusammenf hren zweier Event Pipelines unter Verwendung eines Algorithmus welcher Ereignisse bewertet und ggf verwirft Dies
30. Blocks Fehler sein d rfen um eine Identifikation noch zu erm glichen Eine zu identifizierendes Audiosignal wird ebenfalls in eine Folge von Hash Signaturen umgewandelt Da sich ein Brute Force Vergleich aus Performanzgr nden verbietet werden unter der Annahme dass mit hoher Wahrscheinlichkeit auch ein verzerrtes Audiosignal zu einem dem Original hnlichen Hash Block f hrt und dabei mindestens eine Signatur je Block fehlerfrei bleibt nur bestimmte Bit Positionen verglichen Bei bereinstimmung wird der weitere Hash Block genauer untersucht Dieses Vorgehen spiegelt sich in geringer Laufzeit und hohen Trefferquoten wider Da in der Praxis die angenommene Robustheit bei stark verzerrten Signalen nicht immer gew hrleistet ist erlaubt man zur Steigerung der Robustheit 1 2 Bitfehler Dies f hrt allerdings zu einer h heren Laufzeit Das rechenintensivste Teilmodul ist jedoch die Fouriertransformation die das Fingerabdrucksystem jedoch in Form einer reellwertigen Festkomma Implementierung selbst auf einem PDA oder Mobiltelefon lauff hig macht Die von Philips kommerziell vertriebene Implementierung besteht aus einer einfachen Master Slave Architektur die sich gut skalieren l sst Weiterhin ist der eigentlichen Identifikation eine unabh ngige Klassifikation mit Qualit tseinsch tzung vorgeschaltet 2 5 5 Audentify Das in der Arbeitsgruppe Multimedia Signalverarbeitung der Universit t Bonn von Professor Clausen unter Mitarbeit von F K
31. CList lt FilterDesc FilterDesc amp gt FiltersEV Liste der visualizerenden Filter Dar ber hinaus verwendet die Klasse einen Timer um in Millisekundenabst nden die Teilbereiche zum Aktualisieren aufzufordern HRESULT ShowAudio AudioBuffer ab HRESULT ShowEvent EventSample es Diese beiden Methoden erhalten zu visualisierende Daten und leiten sie an die entsprechenden Teilbereiche weiter void Start REFERENCE TIME rtNow void Pause won STOD 7 Diese drei Abspielfunktionen werden von CGraphController synchronisiert und kontrollieren den Timer Dieser wiederum ruft die folgende Methode auf 107 Anhang D Technische Dokumentation von GenMAD NWAOILCL AN IESLOiA Diese Methode ruft gleichlautende Funktionen in allen drei Teilbereichen auf void Reset void Reset bool bAudioOnly Diese Funktionen setzen die Visualisierungs Anzeige zurtick z B wenn der Graph gestoppt wird Das bAudioOnly Flag kontrolliert das Zur cksetzen der Filterinformationen und wird im Zusammenhang mit dem Umschalten zwischen Echtzeit und Standbyanzeige eingesetzt void ListAudioViewFilters CList lt FilterDesc FilterDesc amp gt pFilters CList lt FilterDesc FilterDesc amp gt pFiltersEV Dieser Methode werden Informationen zu Generator und visualisierenden Eventfiltern bergeben Daraufhin werden die Bahnen der Piano Roll Anzeige ggf neu vergeben und
32. Datenflussgraph und dem internen Zustand der Applikation kann unter Verwendung eines CArchive Objektes serialisiert und in einer Datei gespeichert werden Damit eine Klasse diese MFC Funktion verwenden kann muss sie von CObject abgeleitet sein je ein Makro in Header und Implementationscode enthalten und die Funktion void Serialize CArchive amp archive implementieren Die zun chst aufgerufene CGraphController Klasse f hrt diese Operation auf allen enthaltenen Filtern aus Diese speichern extern verf gbare Verbindungen Pins und Zustand darunter die Filter CLSID Falls ein Filter das IPersistStream Interface implementiert kann es selbstst ndig seinen privaten internen Zustand als I St eam Objekt zur ckliefern Dieses unterst tzt eine Methode zur Speicherung des Inhaltes in einem IStorage Objekt welches eine komplette virtuelle Dateistruktur mit Verzeichnissen in einer einzelnen Datei verwaltet Um das gesamte GenMAD Projekt in nur einer Datei zu speichern wird die von Storage erzeugte Datei anschlie end bin r ausgelesen und dem seriellen CArchive Strom hinzugef gt Entsprechend werden beim Laden nach einem Zur cksetzen des Graphen zun chst die Filter separat deserialisiert und in der CFilterContainer Recreate Methode bei gegebener Unterst tzung des PersistStream Interfaces durch Schreiben in eine tempor re Datei und das entsprechende IStorage Objekt in den originalen internen Zustand versetzt Quellfilter die auf eine Mediend
33. Funktionen z B zur Abspielkontrolle auch die Repr sentanten Objekte der verwendeten Filter sowie Funktionen zu Eventbehandlung Erzeugung und Manipulation von Graph und Filtern Dar ber hinaus implementiert sie das bereits beschriebene IMonitoringMaster Interface und stellt dadurch die Kommunikationsschnittstelle der Filter dar Dies impliziert auch die Initiierung der Signal Visualisierung e CFilterContainer Modelliert ein Filter und stellt durch Zugriff auf ver ffentlichte DirectShow Funktionen die jeweils enthaltenen Pins und vor allem auf das IMonitoringSlave Interface die Schnittstelle der Applikation zu jedem Filter dar e CPinInfo Repr sentiert einen Pin e CVisualizerFrame Klasse des Hauptfensters der Visualisierung das die Organisation der untergeordneten Fenster Teilbereiche bernimmt e CAudioView Fensterklasse zur zoombaren Echtzeit Visualisierung des Audiodatenstroms e CEventView Fensterklasse zur zoom und scrollbaren Echtzeit Visualisierung des Eventdatenstroms mittels einer Piano Roll Ansicht e CEventListView Fensterklasse zur Echtzeit Auflistung des Eventdatenstroms Da Eventdaten eine zentrale Rolle in GenMAD spielen soll ein kurzer berblick ber die Eigenschaften eines Events gegeben werden e Beschreibung des Events z B Name eines identifizierten Musikst ckes e Zeitstempel e Score Ranking des Events e Shift zeitliches Mapping z B auf das Auftreten des identifizierten St ckes in einer Dat
34. Graphen hinzugef gt Die Identifikationsinformationen jedes aufgef hrten Filters werden zum Erzeugen dadurch ermittelt dass der zum F llen des Baums verwendete Algorithmus ein zweites Mal und zwar bis zu dem Index der zum gew hlten Filter gespeichert wurde durchlaufen wird Das Erzeugen selbst erfolgt ber eine DirectShow Methode inCreateFavorite Die Kategorien sind dabei als CFilterCategory Objekte einer CObList fix vordefiniert CobList categories Ebenso existiert ein Feld pFavFilters mit vordefinierten Filtern das w hrend des Auflistungsprozesses in LoadFilters dynamisch um Filter mit dem Namenspr fix Monitoring erg nzt wird int cFavFilters Fayocirekilters pravEnltsrts l MAX RAVS COUNT 7 Wesentliche Methoden sind CAvailFilterList CGraphController pGraphController CWnd pParent Definition von Favoriten und Kategorien void OnOK Aufruf der erzeugenden Methoden CreateFavorite bzw CreateFilter unter Einbeziehung von Informationen des aktuell gew hlten Baumknotens falls ein Filter gew hlt ist void LoadFilters Erzeugen des Baum Steuerelementes sukzessives Aufrufen von LoadFilterFavorites bzw LoadFilterCategory HRESULT LoadFilterFavorites CFilterCategory pCat POSITION pos Einf gen der in pFavFilters gespeicherten und als pCat bergebenen Filter in den Baum Dabei wird der Zweig des Baumes mit dem Kategorie Index pos markiert HRESULT LoadFilterCategory CFilterCategory
35. Kontrolle ber Datenformate statt die der Pin und somit das Filter f r eingehende Daten akzeptieren Wie in Abschnitt 5 2 1 erl utert findet hier nur ein prinzipielles Ablehnen von Nicht Audioformaten des bergebenen Parameters statt das eigentliche berpr fen wird an das Filter deligiert HRESULT Receive IMediaSample pms Hier werden eingehende IMediaSample Datenbl cke in DXAudioBuffer Objekte verpackt an das Filter zur Weiterverarbeitung in PreProcessAudio weitergereicht und abschlie end per DeliverOutputBuffer Funktion des Filters zu nachgeschalteten Filtern transportiert Im Fall einer Stream Unterbrechung wird dies hier zus tzlich mit einem Zeitstempel festgehalten HRESULT EndOfStream Am Ende des Datenstroms aufgerufen sorgt diese Methode daf r dass s mtliche noch vorhandene Datenbl cke wie in Receive verarbeitet und weitertransportiert werden E 3 2 CMonitoringAudioOutputPin class CMonitoringAudioOutputPin public CBaseOutputPin Diese Klasse repr sentiert einen Ausgangs Audiopin HRESULT CheckMediaType const CMediaType pmt Der Vorgang ist nahezu identisch mit dem in CMonitoringAudioInputPin hier wird jedoch zus tzlich noch darauf geachtet dass der Eingangs Audiopin berhaupt verbunden ist HRESULT DecideBufferSize IMemAllocator pAllocator ALLOCATOR PROPERTIES pProp Um den Transport von Ausgangs Pin zu Eingangs Pin zweier Filter zu erm glichen verwenden
36. Linux Simple Direct Layer SDL 61 schlie lich ist ebenfalls plattform bergreifend und setzt unter Windows beispielsweise auf DirectX auf Es unterst tzt neben Audio auch Video Ereignisbehandlung und Threading Funktionalit t wie Semaphore und Mutex Objekte Es scheint etwas fragw rdig in allen drei F llen sowohl von Multimedia als auch Frameworks zu sprechen JACK unterst tzt lediglich Audio Applikationen und ist wie auch SDL wohl cher als Bibliothek denn als ein echtes Framework zu bezeichnen 3 3 4 Helix RealMedia Um ein vollwertiges Multimedia Framework f r Linux verf gbar zu machen haben mit RedHat und Novell zwei f hrende Linux Distributoren Pl ne angek ndigt 46 das aus dem kommerziellen Real Player von Real Networks 86 heraus entwickelte plattform bergreifende Open Source Projekt Helix Player 46 zum Standard Framework ihrer Distributionen zu machen Helix ist ein auf ber 1000 Interfaces und Methoden aufbauendes Multimedia Framework bestehend aus den Elementen Heix DNA Server Client und Producer die Backend Player und Authoring Komponenten darstellen Die Helix Plattform unterst tzt COM basierte Plugins Monitoring QoS Dienste webbasierte Administration Zugriffskontrolle Caching und vor allem Streaming Funktionalit t deren G te durch z B das loss protection System zur Rekonstruktion verlorener Frames sowie weitergehende Video Filter und Audio Resampling Routinen weiterentwickelt wurde Neben HTT
37. Prozessen zu integrativen Zwecken so d rfen beispielsweise zusammengeh rige Audio und Videostream Timecodes einer Fernseh bertragung nur um einen gewissen Betrag variieren um nicht als fehlerhafte Darstellung wahrgenommen zu werden blicherweise betrachtet man weiche Synchronisationsanforderungen die eine abstufbare G te der 4 3 Multimedia Frameworks Synchronizitat verwenden Dem zugrunde liegt die Erkenntnis dass das Wahrnehmen von Asynchronizit t problemspezifisch ist Daraus resultierende Informationen beeinflussen daher die Anforderungen zu zeitlichen Aufl sungen der Multimedia Frameworks Steinmetz 100 zeigt dazu ausf hrliche Fallstudien aus verschiedenen Multimediabereichen und Anwendungen entsprechende maximale Versatzgr en und L sungsans tze etwa durch QoS Mechanismen die der Anpassung von Puffergr en und Latenzen dienen Bereitstellungen von Quality of Service QoS Funktionen Zur Garantie einer gewissen Dienstg te werden Ressourcen durch dynamische Skalierung und Reservierung entsprechend gesteuert Vorgaben betreffen z B Echtzeit Anforderungen Korrektheit bzw Fehlertoleranzen und garantierte Antwortzeiten blicherweise sind diese nach dem ISO Standard QoS oder weitergehenden Verfahren flexibel parametrisierbar und schichtweise implementiert 100 Dar ber hinaus werden M glichkeiten zur Erkennung von und dem robusten adaptiven Umgang mit Fehlern gegeben um wahrnehmbare Effekte zu vermeiden
38. Push Modus arbeitet auf den Start Befehl hin eine verschachtelte zweite Schleife In dieser werden entweder mehrere neue Events aus der Datei eingelesen oder unter Verwendung der Referenzuhr des Graphen alle Events versendet deren Zeitstempel kleiner oder gleich der aktuellen Zeit ist Zum Lesen der Datei wird eine ereignisbasierte XML Komponente verwendet die auf der Grundkomponente von David Hubbard 49 beruht und um eigene Anforderungen erweitert wurde Der Lesevorgang besteht aus den folgenden schematisch dargestellten sukzessiven Schritten 1 ffnen der Datei 2 Testverfahren f r Mindestl nge und enthaltene Event Tags 3 Ermitteln des Zeitstempels des letztes enthaltenen Events 4 Ausf hren einer Seek Operation 5 Lesen von maximal 65kB Daten 73 6 SchlieBen der Datei 7 bergabe der Daten an den XML Parser 5 Implementation Falls der Parser Events findet werden diese in EvenrSampleObject Objekte verpackt und zu einem Vektor hinzugef gt der von der Sende Schleife abgearbeitet wird Vor und R cklauf werden ber das Versetzen eines Positionszeigers in der Datei ausgef hrt Da die Events in einer Datei eine Start und eine Endposition besitzen und im Allgemeinen nicht linear ber ihre Zeitstempel in der Datei verteilt sind wird ein rekursives Sch tzverfahren angewandt Es wird versucht die Dateiposition unmittelbar vor demjenigen Event zu finden der den bez glich des vom Graphen angeforderten n chstgr eren Z
39. Quantisierung 2 2 Inhaltsbasierte Audioidentifikation Um das Prinzip des Monitorings auch auf akustische Datenstr men anwenden zu k nnen bedarf es zun chst einiger grundlegenden Definitionen und Begriffe aus den Bereichen Akustik und Digitale Signalverarbeitung Akustische Ger usche entstehen durch Dichtemodulation in einem elastischen Medium im vorliegenden Kontext meist der Luft Als Folge dieser lokalen Verdichtungen entstehen Schallwellen kontinuierliche mechanische Schwingungen Treffen Schallwellen auf eine Membran so wird diese ebenfalls zum Schwingen angeregt Koppelt man nun eine solche Membran mit einer Drahtspule so l sst sich per Induktion ber ein magnetisches Feld ein kontinuierlicher elektrischer Strom erzeugen dessen Spannung proportional zur Amplitude der Auslenkung der Membran und somit zur erzeugenden Schallwelle ist Auf diesem Prinzip beruht die Funktionsweise des Mikrofons Analoge Signale lassen sich durch den Lebesgueraum L R modellieren 57 Dieser wird f r eine Funktion f R gt C definiert durch TR f R C fmessbar und f f t dt lt o Mittels eines Analog Digital A D Wandlers l sst sich dieses analoge Signal in zwei Schritten digitalisieren wie in Abbildung 2 2 illustriert ist Dazu wird das Signal x zun chst in vorab festgelegten diskreten Zeitabst nden T abgetastet indem diskrete Werte aus den Amplituden des Signalstroms extrahiert werden
40. Systems for Audio Signals Princeton Computer Science Technical Report TR 651 02 Jane 2002 G Tzanetakis and P Cook MARSYAS A Framework for Audio Analysis Organized Sound Cambridge University Press 4 3 2000 G Tzanetakis and P Cook Multi Feature Audio Segmentation for Browsing and Annotation In Proc IEEE Workshop on Applications of Signal Processing to Audio and Acoustics WASPAA New Paltz NY 1999 G Tzanetakis G Essl and P Cook Automatic Musical Genre Classification Of Audio Signals presented at International Symposium on Music Information Retrieval Bloomington Indiana USA 2001 G Tzanetakis J Gao and P Steenkiste A scalable peer to peer system for music content and information retrieval Computer Music Journal Special Issue on Music Information Retrieval 2004 M Vacher D Istrate L Besacier J F Serignat and E Castelli Sound Detection and Classification for Medical Telesurvey Proc Of the 2nd Intern Conf Biomedical Engineering Innsbruck Austria 2004 C J Van Rijsbergen Information Retrieval Butterworths Boston 1980 A Viterbi Error bounds for convolutional codes and an asymptotically optimum decoding algorithm IEEE Transactions on Information Theory vol 13 no2 pp 260 269 2001 Vorlesungsskript Medientechnik Universitat Hamburg WS 2001 132 114 115 116 117 118 119 120 121 122 123
41. Weise lassen sich Analyse und Verarbeitungsmodule optimal aufeinander abstimmen und k nnen wie in 6 1 9 gezeigt wird zu h heren Klassifikationsleistungen f hren In hnlicher Weise ist der Aufbau einer parallel arbeitenden Filterbank m glich die Analysen verschiedener Frequenzb nder zusammenf hrt wie in Abbildung 6 11 dargestellt Dazu wird das Signal zun chst auf vier Pipelines aufgeteilt von denen jede das Signal durch ein Filtermodul auf einen bestimmten Frequenzbereich eingrenzt das ver nderte Signal klassifiziert und die generierten Eventdaten durch eine Kaskade von Kombinatorfiltern an einen XMLWriter Filter bergibt Durch das Hinzuf gen zus tzlicher EventExcluder oder Includerfiltern l t sich das Auftreten bestimmter Ereignisse in einem Frequenzband herausfiltern Durch die M glichkeit Eventdaten aufzuzeichnen lassen sich z B Identifikationsdaten archivieren und sp ter zu Vergleichszwecken einsetzen etwa im Rahmen einer Szenenanalyse Ein solches Projekt ist in Abbildung 6 12 dargestellt Dort werden zwei Pipelines zusammengef hrt In der einen werden in Echtzeit in den Rechner eingehende Signale per Audentify auf bekannte Audiost cke hin untersucht die daraus entstehenden Eventdaten mittels eines EventIncluder Filters auf eine Menge erlaubter Ereignisse eingegrenzt zur Visualisierung an GenMAD und anschlie end an den Kombinator bergeben Parallel dazu werden archivierte Eventdaten eingelesen visualisiert und eb
42. ausgelesen und an CGraphController weitergereicht D 2 18 CToolbarEdit Class ClO ola cnalt cease Owolre CH clits Dieses Steuerelement zeigt andere Werte an als intern gehalten werden und findet Verwendung in Unterst tzung der Slider amp SpinCtrl in der Seekbar von CSlideToolBar Die internen Werte werden anhand eines von z Zt zwei festgesetzten Modi auf andere Werte abgebildet in dem Windows Nachrichten abgefangen werden Dies umfasst auch Benutzereingaben Zeit Anzeige generiert aus 100ns Einheit Stunden Minuten Sekunden define TOOLBAREDIT MODE TIME 0 Skalierungs Anz ig 7 zeigt in Tausendstel des tats chlichen Wertes an define TOO BAREDIT MODE 1000 1 D 2 19 CURLDialog class CUREDEallag 3 use CDiglhes Hierbei handelt es sich um einen simplen Dialog zur Eingabe einer URL D 2 20 CVisualizerFrame class CVisualizerFrame public CFrameWnd Diese Klasse repr sentiert das Visualisierungsfenster Es enth lt dazu Instanzen der drei Teilbereiche die zusammen mit trennenden CSplitter Steuerelementen erzeugt werden CAudioView pWndAudioView Audioanzeige CEventView pWndEventView Event Piano Roll CEventListView pWndEventListView Event Liste Informationen ber im Graph enthaltene Filter werden mit weiteren Angaben angereichert und als CList von FilterDesc Objekten lokal gespeichert CImisite lt hs GerDescyarilterDese gt sHrnelrTernst Liste aller Generatoren
43. behandelt werden 36 Kapitel 3 Multimedia Frameworks Mit steigender Prozessorleistung wachsender Anzahl von Breitbandverbindungen und stetig starkerer Einbindung von Computern in alltagliche Bereiche spielen Multimedia Applikationen mittlerweile f r viele Benutzer eine zentrale Rolle im Umgang mit Computern Auch kommerziell ist die Einbindung von Multimedia F higkeiten integraler Bestandteil vieler Systeme Ausdruck f r diese Ver nderung war auch die Wahl des Wortes Multimedia zum Wort des Jahres 1995 durch die Gesellschaft f r deutsche Sprache GfdS 43 Multimedia besitzt keine bindende allgemeing ltige Definition sondern wird in verschiedenen Wissenschaftsgebieten unterschiedlich aufgefasst Im technischen Bereich kann es aber mit Synthese und Nutzung verschiedener Medien umschrieben werden 48 Ein weiterer Hinweis f r die wichtige Rolle von Multimedia ergibt sich aus der Art wie Menschen multimediale Daten filtern So k nnen die meisten Menschen nur 20 der gesehenen und separat 30 von geh rten Informationen speichern im Fall des simultanen Reizens beider Sinne steigt die Rate des Gespeicherten dagegen auf 50 101 Die gestiegene Popularit t von Multimedia Anwendungen hat Auswirkungen auf sowohl Produzenten als auch Konsumenten Da zum einen Entwicklungszyklen immer k rzer und Entwicklungsbudgets zunehmend gek rzt zum anderen multimediale Anwendungen immer komplexer werden hat sich der Einsatz einheitlicher ob
44. ck HRESULT OnConnect IUnknown pUnk Dieser Handler wird beim Verbinden der Applikation mit dem Konfigurationsdialog aktiviert und ermittelt durch Verwenden des IMonitoringSlave Interfaces die im vorliegenden Filter ver ffentlichten Properties HRESULT OnActivate void Dieser Handler wird aufgerufen sobald die Seite aktiviert wird Hier findet das F llen und Verstecken der Steuerelemente der acht Zeilen statt HRESULT OnApplyChanges void Wird aufgerufen wenn der Benutzer Ubernehmen w hlt Hier werden die neuen Feldwerte bernommen BOOL OnReceiveMessage HWND hwnd UINT uMsg WPARAM wParam LPARAM 1Param Diese Methode wird bei Ver nderung von Steuerelementen der Konfigurationsseite aufgerufen und enth lt Code zur Behandlung aller m glichen Elemente Dabei werden unter Verwendung der SetNewValue Funktion die neuen Werte vermerkt 116 Anhang E Technische Dokumentation des Filter SDK HRESULT OnDeactivate void Diese Methode wird sowohl beim Wechsel zu einer anderen in diesem Fall nicht vorhandenen Seite als auch beim Beenden des Dialogs aufgerufen Falls der Benutzer neue Werte eingegeben hat werden diese gespeichert HRESULT OnDisconnect void Aufruf beim Verlassen des Dialogs Auch hier werden die nderungen bernommen E 2 6 PropertyType Diese Datenstruktur wird in Anhang D 4 8 erl utert E 2 7 SDK h In dieser zentralen SDK Datei befinden sich Praprozessorbefehle die
45. der zu erwartende Kommunikationsaufwand und der zur Synchronisierung n tige Zeitaufwand einsch tzen Auch die Balancierung der Index Dokumente ist bei gr tenteils hnlich gro en Dokumenten m glich Die tats chliche Effizienz h ngt aber in gro em Ma e vom Unfang des Datenbestandes ab so dass eine Trennung von Indexierung und Suche sinnvoll sein kann 2 4 5 Hypothesen Test Der Verlauf des Vergleichs von Anfrage und Datenbank f hrt zu einer Menge von Distanzwerten Um zu entscheiden ob die Anfrage als ein Dokument der Datenbank identifiziert werden kann muss der entsprechende berechnete Distanzwert ber einem zu definierenden Schwellenwert liegen Dieser Wert ist stark abh ngig vom Fingerabdrucks Modell dem Datenbankbestand und dessen Gr e und kann bei einer falschen Festsetzung leicht zu False Positives f hren vom System ausgegebenen Treffern die keine sind Zur Vermeidung dieser Probleme stehen verfahrensspezifische Fehlertoleranzmechanismen zur Verf gung 2 4 6 Datenbank Pflege Der Vorgang des Einf gens neuer Signal Dokumente in eine Datenbank folgt grunds tzlich dem Schema das im Rahmen des Fingerabrucks Modellierungsvorgangs beschrieben wurde Zu jedem einzuf genden Signal wird in Abh ngigkeit des verwendeten Modells ein Audiofingerabdruck erzeugt und in der Datenbank abgelegt Damit verkn pft werden zugeh rige evtl aufzubereitende Metadaten Typ Speicherformat Profildaten die nach einer Identifik
46. diese im Push Modus ein sogenanntes IMemAllocator Objekt das hier als Parameter bergeben wird Dessen ebenfalls bergebene Eigenschaften bestimmen die Details des Transportes und werden an dieser Stelle abgestimmt STDMETHODIMP EnumMediaTypes IEnumMediaTypes ppEnum Diese Methode liefert per bergebenem Parameter eine Liste aller pr ferierten Medientypen zur ck in dem versucht wird diese Funktion auf denjenigen Pin anzuwenden der mit dem Eingangs AudioPin des Filters verbunden ist Die Anfrage wird also nach M glichkeit stromaufw rts weitergeleitet 118 Anhang E Technische Dokumentation des Filter SDK STDMETHODIMP NonDelegatingQueryInterface REFIID riid void ppv Die von dieser Klasse an vorgeschaltete Filter weitergeleiteten IMediaPosition bzw IMediaSeeking Anfragen werden hier ver ffentlicht E 3 3 CMonitoringEventInputPin class CMonitoringEventInputPin public CBaseInputPin Diese Klasse repr sentiert einen Eingangs Eventpin HRESULT CheckMediaType const CMediaType pmt Analog zum Vorgehen in den Audiopins werden hier nur Nicht Eventformate abgelehnt bevor die Anfrage an das Filter weitergereicht wird HRESULT Receive IMediaSample pms Diese Methode reicht das unbearbeitete Eventobjekt welches noch in ein von DirectShow zum Transport verwendetes IMediaSample Objekt verpackt ist an die Filter Methode PreProcessEvent weiter gt E 3 4 CMonit
47. engl decision boundaries McKinney et al 65 zeigen in ihrer Arbeit dass die Wahl speziell auf das konkrete Problem zugeschnittener Merkmale z B aus der Psychoakustik im Gegensatz zu blich verwendeten Merkmalen einen gro en Einfluss auf die Effektivit t der Klassifikation besitzt Scheirer und Slaney verwenden in ihrer vielzitierten Ver ffentlichung 93 zur Diskriminierung von Sprache und Musik dreizehn verschiedene Merkmale und untersuchen Effektivit t und Effizienz einzelner Merkmale Neben typischen hier in Abschnitt 2 4 1d genannten Merkmalen in der Spracherkennung und deren Varianten die teilweise bessere Ergebnisse erzielten als die zugrunde liegenden Merkmale pr sentieren die Autoren auch neue Merkmale darunter das Pulse Metric Merkmal das Rhythmizit t anhand von Autokorrelationen ber 5 Sekunden lange Zeitr ume analysiert und das zu den drei effektivsten der untersuchten Merkmale geh rt Weiterhin werden zur Untersuchung der Praxistauglichkeit die Klassifikationsfehler der besten und der schnellsten Verfahren gegen bergestellt Neben dem weit verbreiteten s atistischen Ansatz spielen vor allem von biologischen Mustererkennungsverfahren inspirierte Neuronale Netzwerke eine wichtige Rolle Diese besitzen eine integrierte Einheit aus Merkmalsextraktion und Klassifikator und arbeiten durch verschaltete Schichten bzw Netze einzelner trainierbarer Module den Nenronen Die Topologie und das Zusammenspiel einzelner Neuron
48. hrt Telefon bertragung z B verwendet blicherweise einen Wertebereich von 8 Bit CD Qualit t dagegen 16 Bit womit es 65536 Quantisierungsabstufungen gibt Man unterscheidet hier zwischen linearer also gleichverteilter und nichtlinearer Quantisierung Die am weitesten verbreitete Codierung digitaler Audiodaten ist PCM engl pulse code modulation Ein bandbegrenztes Audiosignal kann also anhand seiner Abtastwerte verlustfrei rekonstruiert werden wenn die Abtastrate nur entsprechend hoch genug gew hlt wird Um eine solche Bandbegrenzung zu erreichen wird das Signal vor der Wandlung blicherweise durch einen Bandpass Filter auf den f r die geplante Abtastrate passenden Frequenzbereich begrenzt Oft wird dieser durch den f r das menschliche Ohr wahrnehmbaren Frequenzbereich von ca 16Hz 20 kHz 55 beeinflusst Bei einer Audio CD z B werden vor der Abtastung Frequenzen oberhalb von 22 05 kHz herausgefiltert und die Daten anschlie end mit 44 1 kHz abgetastet Wird ein Signal mit einer Abtastrate diskretisiert die geringer oder h chstens gleich dem Doppelten der h chsten im Signal enthalten Frequenz ist so spricht man von Undersampling In diesem Fall ist ein Informationsverlust unvermeidbar Hinzu kommen neue st rende Klangbestandteile Adasing genannt Oversampling hingegen f hrt auf der anderen Seite theoretisch nicht zu einem Mehr an Informationen wird jedoch trotzdem gelegentlich verwendet um z B Qualit tsverluste durch mi
49. iParamID ID des Parameters dValue Wert des Parameters virtual HRESULT STDMETHODCALLTYPE BroadcastParam int iParamID double dValue 0 Visualisierung von Audiodaten Parameter anzuzeigender Audiodatenblock virtual HRESULT STDMETHODCALLTYPE ShowAudio AudioBuffer ab 0 Visualisierung von Eventdaten Parameter anzuzeigender Event virtual HRESULT STDMETHODCALLTYPE ShowEvent EventSample es ll fo Benachrichtigung ber Unterbrechung im Stream Parameter rtTimestamp Zeitstempel virtual HRESULT STDMETHODCALLTYPE NotifyDiscontinuity REFERENCE TIME rtTimestamp 0 T Benachrichtigung ber Filter Ver nderung Parameter iParam Parameter ID 109 Anhang D Technische Dokumentation von GenMAD HRESULT STDMETHODCALLTYPE w lieicblell Ubergabe des Filternamens z B Parameter sOldNam alter Nam sNewNam neuer Nam virtual HRESULT STDMETHODCALLTYPE a D 3 2 IMonitoringSlave NotifyFilterChange int iParam 0 nach Laden eines Projektes SetFilterName char sOldName char sNewName 0 DirectShow Schnittstelle deren Implementation Filtern die Kommunikation mit eigenen Erweiterungen anderen Filtern und dem GenMAD Host erm glicht DECLARE INTERFACE IMonitoringSlave IUnknown pllorleier bergab ines Zeigers auf den Host
50. in Abbildung 4 2 abgebildet Transformatorfilter lassen sich bezogen auf ihren Einsatz in GenMAD noch weiter typisieren wobei in besonderen F llen Filter mehreren Typen entsprechen k nnen Gilt f r ein Filter F und T e DT Ein fP gt Aus F gt 0 so spricht man von einem Kombinator im entgegengesetzten Fall 0 lt Ein F lt Aus F von einem Sp tter Gilt dagegen Eines Auspren P und Ein puio O Ausayao F so wird F Verarbeitungsfilter genannt F r Generatoren gilt 0 Ein F lt Aus F f r Konsumenten Ein F gt Aus F 0 Das in Abbildung 4 2 gezeigte Filter F etwa ist nach dieser Definition ein Generator F dagegen ein Kombinator 55 4 Entwurf des GenMAD Systems Event 1 Event 2 Event 1 Event 1 Audio Event 1 E Abb 4 2 Beispielgraph Transformatorfilter k nnen also vielf ltige Aufgaben besitzen Datenstr me vereinen verteilen ver ndern erzeugen oder zerst ren Erst durch diese F higkeiten wird ein maximal flexibles Arbeiten in GenMAD erm glicht Wie in Kapitel 5 erl utert wurde im Rahmen dieser Arbeit eine Reihe verschiedener Transformatortypen konzipiert und umgesetzt Wie erw hnt stellt neben der umfangreichen und flexiblen Manipulation des Datenflussgraphen die Datenvisualisierung eine zentrale GenMAD Funktionalit t dar Da dies das Verwenden der Datenstr me des Datenflussgraphen erfordert wurde das Konzept des Visualisierungsfilters erstellt
51. kompilierten Bibliotheken sowie Quellen und Includes von DirectX9 Interfaces die ffentlichen GenMAD Schnittstellen und SDK einen leeren Prototyp Das SDK verwendet lediglich die STL ben tigt also keine MFC Komponenten Um ein kompilierbares Filter zu erstellen sind die folgenden Schritte n tig 1 Kopieren des Verzeichnisses SDK in ein neues Unterverzeichnis von GenMAD SDK 2 ffnen der kopierten Datei Plugin1 dsw in Visual C 6 0 3 ndern der Datei Plugin1 def Oben neuen Ausgabenamen spezifizieren 4 In den Projekteigenschaften Alt F7 diesen Namen unter Linker3Allgemein Name der Ansgabedatei ebenfalls angeben 5 In FilterDefs h muss Grundlegendes zum neuen Filter angegeben werden neue GUID bitte UNBEDINGT neu generieren Siehe Kommentare in Code neuen Klassennamen und zu ver ffentlichenden Filternamen angeben 6 Das SDK Projekt enth lt in NewFilter h cpp die zu ndernde Filter Klasse ndere Klassennamen siche 5 definiere eigene zu ver ffentlichende Variablen implementiere berschreibe Funktionen bzw l sche nicht verwendete Beispiel Funktionen 7 Nach dem Kompilieren muss die Filter Datei z B MeinFilter ax einmalig registriert werden regsvr32 MeinFilter ax Hierbei wird auch der Pfad festgelegt danach darf die Datei also nicht mehr verschieben Der regsvr Parameter u hebt die Registrierung auf Falls entgegen der Empfehlung ohne Verwendung der NewFilter Dateien gearbeitet werde
52. m ssen durch den Benutzer geeignet konfigurierbar sein und in einer beliebigen Kaskadierung verwendet werden k nnen Dar ber hinaus muss ein Parameterabgleich verbundener Plugins jenseits reiner Signaldaten m glich sein e Das eingesetzte Streamingmodell muss in der Lage sein jedem Plugin die zu bearbeitenden Daten paketweise und mit einer geeigneten Paketl nge anzubieten e Mitschneiden sowohl der Audiosignaldaten als auch der Eventdaten eines Plugins in einer separaten geeignet formatierten Datei sollen m glich sein e Visualisierungskomponenten f r beide Signaltypen sind erforderlich e Exemplarische Plugin Umsetzung eines von der betreuenden Arbeitsgruppe Multimedia Signalverarbeitung bereitgestellten Audioidentifikations Algorithmus und eines eigenen Klassifikators zur Unterscheidung eines Signalausschnitts in die Klassen Sprache Mnsik Stille und Sonstiges 50 4 Entwurf des GenMAD Systems e Zu implementieren sind Methoden zur geeigneten linearen Kombination von Datenstr men mehrerer Plugins etwa zur Behandlung widerspr chlicher Identifikationen e Durchzufihren ist ein Test des Systems anhand der Analyse von Radiosendungen e Das System soll unter Windows 2000 lauff hig und in MS Visual Studio 6 kompilierbar sein 4 1 Verwandte Ans tze amp Motivation Es existieren wie in Abschnitt 2 7 erl utert zahlreiche Audiomonitoring Systeme verschiedenster Art Diese haben jedoch gemein dass sie jeweils auf eine
53. max 16 St ck imag 1 Wiese laconic 2 deren tats chliche Anzahl EB D 4 7 EVENTINFO Struktur zur Definition des Datentyps Event zur Inter Filter Kommunikation typedef struct tagEVENTINFO int iVersion Versionsnummer EVENTINEO 112 D 4 8 PropertyType Anhang D Technische Dokumentation von GenMAD Struktur zur Speicherung und Verarbeitung von Properties in Filtern Variablentyp Konstanten CoOmasic DIROESITNTEIN IONE its COmsic INQ SERING Die COMSE PROPIVEE BLOAT Sy Comic ROR PILL Ap typedef struct tagPROPERTYTYPE char sName 64 me da PwopID p int iPropType void pValue Wertehalter int iValue double fValue PropertyType D 4 9 ViewBuffer anzuzeigender Nam ID Variablentyp Zeiger auf die Variable fur Dialogkommunikation char sValue 255 Stringwert Integerwert Floatingwert Repr sentiert in der Audio Visualisierung einen Bereich der ein Pixel breit ist struct ViewBuffer taw Weil iaw Well REFERENC ueMax ueMin 3 EIMI Di rtTimestamp Maximalwert des repr sentierten Zeitintervalls Minimalwert des repr sentierten Zeitintervalls Zeitstempel 113 Anhang E Technische Dokumentation des Filter SDK Da das SDK wegen des Basierens auf Praprozessoranweisungen weniger aus einer komplexen Anzahl von Klassen sondern vielmehr eine
54. multimedia applications In S K Chang ed Handbook of multimedia applications pp 21 53 World Scientific 2002 M E Fayad and D C Schmidt Special issue on object oriented application frameworks Comm of the ACM 40 October 1997 R Ferber Data Mining und Information Retrieval Kap 1 3 7 dpunkt Verlag 2003 J Foote An overview of audio information retrieval Multimedia Systems vol 7 no 1 p 2 10 Jan 1999 J H Friedman J L Bentley and R A Finkel An algorithm for finding best matches in logarithmic expected time ACM Trans Math Software 3 no 3 209 226 1977 F F nfst ck R Liskowsky K Mei ner Softwarewerkzeuge zur Entwicklung multimedialer Anwendungen Eine bersicht Informatik Spektrum 23 1 11 25 2000 J Garcia V Tarasov E Batlle E Guaus J Masip Industrial audio fingerprinting distributed system with CORBA and Web Services Proceedings of Fifth International Conference on Music Information Retrieval Barcelona 2004 D Gerhard Audio Signal Classification History and Current Techniques Technical Report TR CS 2003 7 University of Regina Department of Computer Science November 2003 Gesellschaft f r deutsche Sprache GfdS W rter des Jahres http www gfds de woerter html GStreamer Projekt Homepage http gstreamer freedesktop org J Haitsma and T Kalker A highly robust audio fingerprinting system International Sy
55. r Monitoringzwecke eingesetzt wird Hinzu kommt die M glichkeit Dateien ber das Internet 85 6 Anwendungen Tests und Bewertungen miteinzubeziehen Auf diese Weise lassen sich auch servergest tzte Projekte erzeugen um z B ffentlich publizierte Nachrichtensendungen oder Onlineradiosendungen zu verwenden In der Vorverarbeitung k nnen beliebige Kombinationen hochwertiger Filterungs und Effektmodule eingesetzt werden um eingehende Datenstr me zu transformieren Ein Beispiel daf r ist etwa der in Abbildung 6 6 dargestellte Einsatz eines Equalizerfilters der gezielt bestimmte Frequenzbereiche verst rkt bzw vermindert um den nachfolgenden Klassifikationsfiltern ein m glichst gut auf ihren Zweck zugeschnittenes Frequenzspektrum zu bieten In hnlicher Art k nnen Sprachverarbeitungsfilter wie De Esser zum Einsatz kommen die St rlaute reduzieren Ein bliches Problem bei der Verwendung von in Echtzeit ber Capturingfilter eingehenden Signalen ist Rauschen welches durch De Noiser Module vermindert werden kann In vielen publizierten Verfahren werden Hoch oder Tiefpassfilter eingesetzt um das Frequenzspektrum einzugrenzen Auf der anderen Seite ist es durch k nstliches Einstreuen von St rungen und Signalverzerrungen genauso m glich eine Simulationsumgebung zu erzeugen die Parameterabstimmungen im Voraus f r bestimmte Einsatzzwecke erm glicht etwa um die in einer Live Aufnahme oft auftretenden Hintergrundger usche zu vermi
56. sein Zum einen ben tigen diese deutlich weniger Speicherplatz zum anderen existieren zahlreiche Ans tze aus dem Bereich des Information Retrieval um durch effiziente Vergleichsverfahren oder Inhaltsanalysen Textsammlungen zu strukturieren und zu verwalten Suchmaschinen bieten darauf aufbauend mehr oder weniger komfortable Suchmasken um Inhalte in der Unstrukturiertheit des World Wide Web WWW zu finden Einer der V ter des WWW Tim Berners Lee entwarf daher das Konzept des Semantic Web 119 welches durch Verwenden universeller XML basierter Regeln die semantische Repr sentation von in Daten verpacktem Wissen erm glichen und dadurch die automatisierte Verarbeitung von Daten entscheidend verbessern und vereinfachen soll In hnlicher Weise stellt MPEG 7 70 einen Standard f r die Beschreibung von Multimediainhalten durch Deskriptoren dar Dieser k nnte z B von Suchmaschinen ob Desktop oder webbasiert angewandt werden um das Auffinden von Inhalten nach bestimmten Kriterien zu erlauben Das tats chliche maschinelle Verstehen von Multimediainhalten Semantic Computing erfordert aber noch mehr als Deskriptoren Erst ein tieferes Verst ndnis von Inhalten welches sich nicht beigef gten und eingebetteten Metadaten bedient sondern den Inhalt selbst verarbeitet erlaubt z B automatisiertes Bewerten und Katalogisieren von Multimediadaten In diesem Kontext f llt dem Multimedia Information Retrieval eine besondere Rolle zu Dieses jung
57. tze amp Motivation 6 0 ce eee n tenes 4 1 1 Wahl des Multimedia Frameworks wk ce eens 42 Das GERMAD System eich eR ATR Og LEDERER CA alee aaah Wow bs 4 2 1 Grundlegendes Konzept des GenMAD Systems st we eee ee 4 2 2 Zentrale Aspekte der GenMAD Applikation eee eee ADP Vase be Ooms Weta ieee ed eee wale a ae 5 Implementation 5 l en EAD rt gel Paste aang Tea 5 1 1 Zentrale Klassen von GenMAD 0 eee eae 5 1 2 DirectShow Events lien 5 1 3 Hinzuf gen neuer Filtet nieht sea 5 1 4 Speichern amp Laden erpresst meena 5 1 5 Hinzuf gen von Mediendateien als Datenquelle 5 1 6 Filter Konfiguration aeg aes nek dae ee 51 2 Zetund Ihren aaeeeo are ars Fae 5 1 8 Datenfluss Abspielkontrolle amp Seeking De Vasyalisietung Arena eng 52 Das PUES umsehen een 5 2 1 Medienform at Abgleich ca eo een as 5 2 2 Daten bertragung ality untae nya ea as 5 2 3 KRonfigutaton Lait ee 5 24 S eking Muse dee A EE E E A E 5 25 Laden Speichen ns eyes kin oa eed 5 3 Implementierte GenMAD Filter ss ser lan 5 3 1 MonitoringAudentifyFilter nrasiasssr se unseres 5 3 2 MonitoringEventNullRenderet susanne 5 3 3 MonitoringEventVisualizer agienytanwyatiides Seiy peas weed ehe 5 3 4 MonitoringEventSplittet nn mt eeu ee 5 39 MonitofinoEventMefget nut ae nee 5 3 6 MonitoringEventExcluder one ee 5 3 7 MonitoringEventIncluder iii 5 3 8 Monitoring XMLW ritet ed 53 9 Mortons XMI Reader oserei ele
58. verteiltes sensorisches Netzwerk Mit Hilfe der Eingaben von gerichteten Mikrofonen und der Analyse durch eine Autokorrelationsfunktion erlaubt dieses System die Klassifikation des Verkehrsger usches in verschiedene Fahrzeugtypen Ein Neuronales Netz lernte anhand von Trainingsdaten die Diskriminierung in vier verschiedene Fahrzeugklassen und erreicht eine berragende Klassifikationsleistung die auch k nstliche Verzerrungen nicht wesentliche beeintr chtigten 80 Duarte und Hu entwickelten diese berwachungstechnik weiter und verwenden in ihrem Ansatz ein System aus drahtlos kommunizierenden verteilten Sensoren die ber eine Reihe von Klassifikationsverfahren Umgebungsger usche einordnen 33 Im Forschungsfeld des Verkehrs Monitorings arbeiten dar ber hinaus weitere Forschungsgruppen zu deren Zielen unter anderem die Steigerung der Transporteffizienz sowie die berwachung von Umwelt und Sicherheitsaspekten geh ren 102 Das im vierten Kapitel eingehend vorgestellte generische Monitoringsystem das im Rahmen dieser Diplomarbeit entwickelt wurde weist einige Gemeinsamkeiten mit den gerade vorgestellten Audiomonitoringsystemen auf Im Gegensatz zu ihnen handelt es sich dabei jedoch um ein Konzept das die Einbindung prinzipiell beliebiger Audiomonitoringverfahren erm glicht Da dieses Monitoringsystem intensiven Gebrauch von Mua timedia Framework Mechanismen macht soll das Konzept des Multimedia Frameworks im nachfolgenden dritten Kapitel
59. zeitliche scrollen Die Gr enverh ltnisse der drei Anzeigen k nnen durch Drag n Drop der Splitter ver ndert werden Toolbar Audiosignal Anzeige N reie AEH jr itm WMT MT ALA IM EE G EEE Eventlisten Anzeige Splitter Event Anzeige or Ricklaufkontrolle Abbildung C 3 Das Visualisierungsfenster 95 Anhang C Benutzerhandbuch Arbeitshinweise Es empfiehlt sich zum Aufbau eines Datenflussgraphen in GenMAD analog zum Fluss des Graphen vorzugehen Zun chst f gt man durch Anklicken der entsprechenden Buttons in der Toolbar eine oder mehrere neue Mediendateien zum Graphen hinzu Dabei werden jeweils automatisch auch diejenigen Filter erzeugt und verbunden die zur Transformation und Ausgabe des entsprechenden Dateityps n tig sind Da manche Filtertypen erst bei korrekter Parametrisierung bestimmte Pins ver ffentlichen sollte jedes Filter sofort nach dem Einf gen konfiguriert werden Diesen grundlegenden Graphen erweitert man nun durch zus tzliche Filter die ebenfalls wie oben erl utert mittels der Toolbar hinzugef gt und manuell an geeigneter Stelle in den Signalfluss eingesetzt werden indem eine existierende Verbindung zweier Filter entfernt wird und die Pins des einzubindenden Filters mit den nun freien Pins verbunden werden Wenn der Graph komplett erstellt konfiguriert und verbunden wurde kann der Datenfluss durch Starten des Graphen initiiert werden Der Aufruf des Visualisierungsfensters kann
60. zu Beginn dieses Kapitels erl utert ber drei Teilbereiche jedes davon als von CWnd abgeleitete Klasse implementiert Intern l uft ein Timer der in Millisekunden Abst nden die drei Klassen zu Updaten auffordert und in einem zum CGraphController Objekt separaten Thread ausgef hrt wird Bei Ver nderung des Laufzeit Zustandes z B Start gt Pause wird CVisualizerFrame analog dazu benachrichtigt und stoppt bzw startet entsprechend den Timer Die zur Visualisierung ben tigten Audio und Eventdaten werden ber separate Mechnismen erhoben Demjenigen Filter das den oben erl uterten Audiofokus erh lt wird dies per IMonitoringSlave SetShowAudioData Methoden Aufruf mitgeteilt woraufhin es eingehende Audiodaten nicht nur an nachgeschaltete Filter sondern auch an GenMAD weiterreicht Eventdaten dagegen werden nur von einem Filtertyp dem MonitoringEventV isualizer Filter an GenMAD weitergegeben Beide Datentypen werden dem CGraphController Objekt ber die IMonitoringMaster Schnittstelle bergeben und direkt an die CVisualizerFrame Instanz weitergereicht Diese verteilt sie auf die drei Teilfenster Der CAudioView Klasse wird ein AudioBnffer Objekt bergeben in dem sowohl ein Datenblock als auch Metadaten zu z B Abtastrate und Zeitstempel enthalten sind Dieses wird mittels eines durch die aktuelle Zoomaufl sung parametrisierten Algorithmus in gleich gro e zeitliche Abschnitte zerteilt zu denen je minimaler und maximaler Signal
61. 124 Literaturverzeichnis A Wang An Industrial Strength Audio Search Algorithm Proc of the Int Symp of Music Information Retrieval 2003 Baltimore 2003 H Wessels Audio Information Retrieval berblick Proseminar Robuste Signalidentifikation Universit t Bonn 2003 04 Wikipedia Discrete cosine transform http en wikipedia org wiki Discrete cosine transform E Wold T Blum D Keislar and J Wheaton Content based classification search and retrieval of audio IEEE Multimedia Mag vol 3 pp 27 36 July 1996 H J Wolfson and I Rigoutsos Geometric hashing An overview IEEE Computational Science and Engineering pp 10 21 October December 1997 W3C Semantic Web Homepage http www w3 org 2001 sw Yacast http www yacast com A Zell Simulation neuronaler Netze Addison Wesley Verlag Bonn 1994 3 939 T Zhang and C C J Kuo Hierarchical System for Content based Audio Classification and Retrieval SPIE s Conference on Multimedia Storage and Archiving Systems III Boston Nov 1998 Steinberg Cubase http www steinberg de MET www ifi unizh ch groups mml projects met met html Die G ltigkeit aller angegebenen URLs wurde zuletzt am 26 2 2005 berpr ft 133 Erklarung Hiermit erklare ich die vorliegende Arbeit selbstandig verfasst und unter ausschlieBlicher Verwendung der angegebenen Literatur angefertigt zu haben
62. 2 4 Struktureller Aufbau eines Audioidentifikationssystem Audioidentifikationssysteme unterscheiden sich im Wesentlichen durch die Art Verwendung und Speicherung von Merkmalen die Wahl eines hnlichkeitsma es und die Handhabung des Vergleiches von Anfrage und Datenbank 13 Die wissenschaftlichen Hintergr nde aktueller Systeme umfassen neben an Mustererkennung und dem klassischen Multimedia Retrieval angelehnte Verfahren auch Ans tze aus Sprachverarbeitung 22 Kryptographie 45 und Bioinformatik 22 Nichtsdestotrotz weisen alle bislang vorgestellten Methoden strukturelle Gemeinsamkeiten auf In Anlehnung an Cano et al 21 wird ein Audioidentifikationssystem in zwei Module aufgegliedert wie in Abbildung 2 4 dargestellt ist 1 ein Modul zur Fingerabdrucksextraktion bestehend aus Front End und Fingerabdrncksmodellierer 2 ein Vergleichsmodul mit Submodulen Datenbanksuche Distanzmessung und Hypothesentest Die einzelnen Module werden nachfolgend erl utert wobei nach M glichkeit auf die in g ngigen Audioidentifikationssystemen verwendete Realisierung von Teilmodulen eingegangen wird Audiosignal Vorverarbeitung Fensterfunktion Transformation Front End Merkmalsextraktion Nachbearbeitung Audiofingerabdruck Abbildung 2 5 Audiofingerabdrucks Extraktion 13 2 Audiomonitoring 2 4 1 Front End In diesem seriellen f nfstufigen Teilsystem illustriert in Abbildung 2 5 wird das zu identifizierende A
63. 2E 06 2 13E 07 Spectral Centroid Hz aS A_ A 5 39E 04 1 08E 03 1 62E 03 2 16E 03 2 70E 03 Spectral Flux Wert Low Energy Percentage Spectral Roll Off 1000 H ufigkeit a gt H ufigkeit 24 85 39 82 54 80 69 77 84 74 99 71 8 34E 04 4 28E 06 8 48E 06 1 27E 07 1 69E 07 2 11E 07 Low Energy Percentage Spectral Roll Off Hz ZCR 1200 1000 800 600 400 200 3 766 1528 2290 3053 3815 ZCR Abb 6 1 Histogrammdarstellungen zur Diskrimierungsleistung der einzelnen Merkmale Dabei sind jeweils vertikal die H ufigkeit und horizontal die sortierten Merkmalswerte in je 100 Bins aufgetragen Die Merkmale der Musikdaten sind jeweils blau die der Sprachdaten rosa markiert 78 6 Anwendungen Tests und Bewertungen Klassifikation von M usikdaten Klassifikation von Sprachdaten 100 1 Minute 5 Minuten 10 Minuten El Sonstiges 3 43 1 53 0 52 E Sprache 19 3 29 19 36 54 W Musik 74 68 66 85 60 3 E Stille 2 6 2 45 2 66 80 60 40 20 0 1 Minute 5 Minuten 10 Minuten Sonstiges 1 01 0 62 0 16 Sprache 48 36 50 65 53 Musik 33 68 31 95 32 76 E Stille 14 96 16 79 14 1 Abb 6 2 Klassifikationsleistung jeweils als Diagramm und als Matrix Auf der l
64. 3 10 bliche Audioklassifikationsszenarien haben eine Einordnung eingehender Signaldaten als Musik oder Sprache zur Aufgabe 93 ebenso wie die Klassifikation von Musik in verschiedene Genres 108 oder die Klassifikation von in Audioaufnahmen vorhandenen Musikinstrumenten 47 Reale Anwendungen ergeben sich z B in der Medizin wo ein Expertensystem 29 2 Audiomonitoring Atmungsger usche analysiert oder im Bereich der Heimelektronik etwa zur automatischen Auswahl eines entsprechenden Equalizer Presets anhand des erkannten Musikgenres 42 Die Verwendung von Audioklassifikatoren stellt eines der Hauptelemente von Audiomonitoringsystemen dar Dies reicht von Vorverarbeitungsschritten zur Effizienzsteigerung oder zur automatischen Segmentierung von Audiostr men 8 etwa um Datenstr me automatisch zu beschriften 107 bis hin zur automatischen Diskriminierung von Nachrichtensendungen und Werbung in Datenstr men 62 Auch andere Bereiche profitieren von effizienten Audioklassifikations Verfahren Da Musik und Sprache durch unterschiedliche Komprimierungsverfahren Codecs jeweils effizient bearbeitet werden k nnen universelle Codecs im Allgemeinen jedoch weniger Codierungseffizienz in Form geringerer Komprimierungsraten besitzen k nnte durch Verwendung eines Moduls zur Klassifikation in Musik und Sprache eine flexible effektivere Komprimierung eingesetzt werden 34 etwa f r bertragung von Multimediadaten im Internet Weitere d
65. Ein anderer Klassifikatoransatz verwendet Wahrscheinlichkeitsberechnungen und parametrische Modelle um ber Sch tzungen von Parametern eine Entscheidung ber eine Klassenzugeh rigkeit eines zu klassifizierenden Objekts durch Wahl der h chsten Wahrscheinlichkeit zu erm glichen Ein typischer solcher Klassifikator ist z B der mehrdimensionale Gau sche MAP maximum a posteriori Sch tzer der jede Klasse als Gau sche Verteilung von Punkten eines multidimensionalen Raumes interpretiert Anhand von durch Trainingsdaten gesch tzten Mittelwert und Kovarianz Parametern jeder Klasse k nnen eingehende Anfragemuster anhand der Mahalanobis Distanzmessung der n chsten Klasse zugeordnet werden 93 In hnlicher Weise modellieren Gau sche Mixtur Modelle GMM Klassen als Vereinigung mehrerer Gau scher Cluster Siehe auch Abbildung 2 8 Anhand gesch tzter Wahrscheinlichkeitsmodelle werden Anfragen der wahrscheinlichsten Klasse zugeordnet Die Sch tzungen werden dabei iterativ durch den Expectation Maximization Algorithmus durchgef hrt wie im Fall des von Vacher et al 110 zur Sprachklassifikation im Rahmen eines medizinischen Telesystems verwendeten GMMs Eine direkte geometrische Berechnung der Entscheidungsgrenzen kann jedoch auch zu einem dritten Klassifikatoransatz f hren Dazu wird ein Fehlerkriterium optimiert beispielsweise der durchschnittliche quadtierte Fehler engl mean squared error MSE Dies kann beispielsweise durch Neuronale
66. Ein generisches Monitoringsystem f r akustische Datenstr me Diplomarbeit Jan Henrik Wild Rheinische Friedrich Wilhelms Universit t Bonn Institut f r Informatik III 01 03 2005 i Remember Information is not knowledge Knowledge is not wisdom Wisdom is not truth Truth is not beauty Beauty is not love Love is not music Music is the best Frank Zappa Danksagung Bei der Entstehung der vorliegenden Diplomarbeit standen mir einige Personen hilfreich zur Seite denen ich im Folgenden danken m chte Zun chst m chte ich mich bei der Arbeitsgruppe Multimedia Signalverarbeitung der Universit t Bonn und dabei insbesondere bei Professor Dr Clausen f r die Vergabe dieses Diplomarbeitsthemas bedanken Weiterhin danke ich meinem Betreuer Dr Frank Kurth f r die konstruktive Zusammenarbeit und die positive Unterst tzung w hrend der gesamten Dauer der Arbeit Weiterhin waren die Anregungen von Andreas Ribbrock und Rolf Bardeli eine Hilfe bei der Konzeptionierung des Systems Ich m chte meiner Familie und meinen Freunden danken die mich in der gesamten Zeit vermutlich mehr ertragen als erlebt haben und mir in den richtigen Momenten durch Unterst tzung oder Ablenkung geholfen haben Vor allem m chte ich mich bei Christopher Gies Kai Starke Julia von Selchow Sebastian Wild und Kai Leder f r Verbesserungsvorschlage und Feedback bedanken Mein besonderer Dank gilt Eleni Orfanidou die immer f r mich da war und mir St rke ga
67. Einhaltung von Copyright Verfahren und damit verbundene Zugriffsbeschr nkungen bzw rechte Datenschutz amp Anonymit t Funktionen zum Authenzit tsnachweis Kryptoverfahren zur Vertraulichkeitseinhaltung und Integrit tspr fungen f r Multimediadaten 100 Plattformunabh ngigkeit Bereitstellung standardisierter Komponenten und Schnittstellen Ein h heres Ma an Plattformunabh ngigkeit geht allerdings blicherweise einher mit einer st rkeren Abstraktion und damit oft mit einer geringeren Performanz 42 3 Multimedia Frameworks e Medienserver Funktionen Speicherung und Verteilung multimedialer Daten verbunden mit einem Verzeichnisdienst Je nachdem ob Client oder Server den Sendeprozess initiieren spricht man von Pull oder Push Server Pull Server werden im Allgemeinen nur in LANs eingesetzt Push Server dagegen auch f r Broad oder Multicast Dienste z B im Internet e Bereitstellung von Interfaces zur flexiblen Erweiterung Neben High Level Ans tzen wie Skriptsprachen ist vor allem der systemweite objektorientierte Eingriff von der M glichkeit z B neue Dateitypen hinzuzuf gen bis hin zu Low Level Interfaces interessant Neben der generellen Dokumentation verwendeter Interfaces ist dazu vor allem die Bereitstellung von Entwicklungspaketen engl Software Development Kit SDK von prim rem Belang 3 3 Aktuelle Multimedia Frameworks Die gro e Marktbedeutung von Multimedia Frameworks f hrt dazu dass in den meisten
68. Filters void ActivateAudioFilter CString sName bool bActive Benachrichtigung des benannten Filters tber Erhalt oder Abgabe des Audiofokus D 2 12 CGUID2String Class mC CUED Ais teresa Hilfsklasse zum Konvertieren von GUIDs aus in Strings D 2 13 CMainFrame class CMainFrame public CFrameWnd Reprasentiert das Hauptfenster Wichtige Eigenschaften CStatusBar m wndStatusBar yScauwuszeile CSlideToolBar m wndToolBar Toolbar CChildView m_wndView Manipulationsbereich 105 Anhang D Technische Dokumentation von GenMAD Dar ber hinaus sind Handlermethoden f r die Buttons der Toolbar vorhanden die allerdings nur Vorarbeit leisten und auf in CGraphController implementierte Funktionen verweisen D 2 14 CMediaTypeDialog class CMediaTypeDialog public CDialog Dieser Dialog zeigt in einer Auflistung die separat bergebenen unterst tzten Medienformate eines Pins D 2 15 CMonitorApp class CMonitorApp public CWinApp Dies ist die Windows Applikationsklasse deren einzige Aufgabe die Erzeugung und Anzeige der CMainFrame und der CGraphController Klasse ist D 2 16 CPinInfo elass CPrinInro 8 joulolic Colojecc Dieser Klasse repr sentiert ein Pin und besitzt ffentliche Variablen f r alle wichtigen Pin Eigenschaften CString sName Name des Pins CString Smilie Name des Filters PIN DIRECTION dir Ein oder Ausgangspin CString sConnectedFilter Name des verbundenen Filters CString sCon
69. In der Praxis kann die Aussagekraft der Relevanz in Abh ngigkeit des tats chlichen Inhaltes der votliegenden Datenbank aber begrenzt sein e p r Weitere Herausforderungen des Monitorings ergeben sich vor allem aus folgenden Bereichen e M gliche Unstrukturiertheit der Anfrage Im Falle von intuitiven Eingabemasken muss die Eingabe des Benutzers f r die weitere Verarbeitung formalisiert werden Dies betrifft z B Verfahren bei denen die hnlichkeit des Datenbestandes zu einer gepfiffenen Melodie berpr ft werden soll e Verzerrte oder verrauschte Eingangsdaten Die zu verwendenden Signaldaten k nnen durch Hintergrund oder St rger usche beeinflusst sein oder durch den Einsatz minderwertiger Hardware wie Mikrofone oder Wandler eine geringe Signalg te aufweisen e Sehr gro e und oder unstrukturierte oder heterogene Datenbanken Dazu z hlen Datenbanken mit variablen Dokumententypen und dezentrale Datenbanken deren Synchronisierung die Echtzeit Anforderung erschwert ebenso wie riesige Dokumente teils komplexer Datentypen Kombination verschiedener Typen Objekt Referenzen Einbettung von Objekten sowie die Aktualit t der Daten e Subjektive Semantik Das subjektives hnlichkeitsempfinden des Benutzers kann im Gegensatz zum definierten hnlichkeitsma des Monitoringsystems stehen 2 Audiomonitoring Quantisierungsstufe Abbildung 2 2 Digitalisierung eines kontinuierlichen Signals mittels Abtastung und
70. L Datei folgt dabei folgender DTD lt xml version 1 0 gt lt DOCTYPE event lt ELEM T NT event index timestamp description shift score generator sample rate bytes per semole Chennels gt ENT index PCDATA gt ENT timestamp PCDATA gt ENT description PCDATA gt ENT shift PCDATA gt INT score PCDATA gt ENT generator PCDATA gt ENT sample rate PCDATA gt ENT bytes per sample PCDATA gt ENT channels PCDATA gt lt ELE lt ELE lt ELE lt ELE lt ELE lt ELE lt ELE lt ELE lt ELE Bim Bile ie mms ie I gt 5 3 9 MonitoringXMLReader Dieses Filter ist das einzige implementierte Quellfilter Es liest Events aus einer XML Datei mit dem im vorigen Abschnitt definierten Format und sendet diese an Filter stromabwarts Um ein Reagieren auf Graphen Befehle in Echtzeit zu erm glichen verwendet das Filter einen sogenannten Worker Thread der in einem separaten Thread das eigentliche Auslesen und Senden bernimmt Im Folgenden wird der Haupt Thread des Filters einfach als Fier bezeichnet Der Worker l uft in einer durch das Filter terminierbaren Schleife und wartet auf Transportbefehle wie Start und Stop die das Filter nach Erhalt durch den Flussgraphen ebenso weiterreicht wie Befehle zum Seeking Der Worker startet da er anders als viele andere Quellfilter im
71. Manipulation von Filter Eigenschaften verf gt Wichtige Eigenschaften CTypedPtrList lt CPtrList CPinInfo gt pConnections Pins IBaseFilter pFilter das repr sentierte DirectX Filter Tar CPinsta CwWaiasOwe Anzaal Rimo Sa CUE CString sName interner name CString sFilterName angezeigter Name z b nach manuellem Umbenennen CHS iD eels CLSID des Filters IMonitoringSlave pMonitoringSlave Zeiger auf Interface evtl NULL Folgende Methoden sind wesentliche Bestandteile der Klasse CFilterContainer CGraphController pGrCtrl IBaseFilter pFlt bergeben werden diesem Konstruktor Zeiger auf CGraphController und das dieser Instanz zugrunde liegende Filter Nach Aufruf der in Init zentral ausgef hrten Initialisierung werden Informationen durch Abfrage des Filters eingeholt und gespeichert void Draw CClientDC pDC Anhand der Filtereigenschaften wird in dieser Methode der bergebene Zeichenbereich beschrieben void NotifyFilter CClientDC pDC Durch diese Methode wird die Klasse ber nderungen informiert z B nach Herstellen einer neuen Verbindung Dabei werden s mtliche Graph bezogenen u eren Informationen des Filters aktualisiert Der bergebene Zeichenbereich wird dazu verwendet die Ausdehnung von Beschriftungen zu ermitteln und f r eine schnellere Ausf hrung von Draw zu speichern 102 Anhang D Technische Dokumentation von GenMAD CPinInfo GetPinInfo CString szNam Liefert
72. Modus aktueller Operationsmodus Stille_Schwellwert Schwellwert der Stille Erkennungsstufe 124 Anhang G Inhalt der beiliegenden CD Auf der beiliegenden CD befindet sich die folgende Verzeichnisstruktur AudentifyFilter BaseFilter Classifier DirectX EventExcluder EventIncluder EventMerger EventNullRenderer EventSplitter EventVisualizer Interfaces Monitor SDK WaveDest XmlReader XmlWriter GenMAD exe MonitoringAudentifyFilter ax MonitoringClassifier ax MonitoringEventExcluder ax MonitoringEventIncluder ax MonitoringEventMerger ax MonitoringEventNullRenderer ax MonitoringEventSplitter ax MonitoringEventVisualizer ax MonitoringXMLReader ax MonitoringXMLWriter ax pcmIndexDLL dl1l wavdest ax i am Acie X Dabei handelt es sich um die Verzeichnisse mit den Quelltexten und den Projektdateien der einzelnen Filter und von GenMAD welches sich im Verzeichnis Monitor befindet Hinzu kommen Verzeichnisse mit gemeinsamen Elementen Im Wurzelverzeichnis befinden sich die kompilierten Versionen aller Komponenten die nach der Registrierung siehe Anhang B direkt lauff hig sind 125 Literaturverzeichnis 10 11 12 13 P Ackermann Developing Object Oriented Multimedia Software Based on MET Application Framework dpunkt Verlag Heidelberg 1996 E Allamanche J Herre O Helmuth B Fr ba T Kasten and M Cremer Content ba
73. Netze geleistet werden 52 Einen relativ neuen Ansatz findet man im Bereich der Support Vector Machines Diese zwei Klassen Klassifikatoren berechnen eine Menge von Vektoren die den geometrisch interpretierten leeren Randbereich zwischen den beiden zu trennenden Klassen definieren 52 32 2 Audiomonitoring Auch die Verwendung der in der Spracherkennung erfolgreich eingesetzten Hidden Markov Models HMM bietet insbesondere in Verbindung mit anderen Verfahren neue M glichkeiten vor allem im Bereich der Audio Segmentierung 56 Zhang et al setzen HMMs in ihrem hierarchischen Klassifikationssystem ein um regelbasierte Grobklassifikationen von Audiosignalen weiter zu verfeinern 122 Da jedes Klassifikationsverfahren problemspezifische Vor und Nachteile besitzt kann durch eine Verschaltung mehrerer Klassifikatoren eine Effektivit tssteigerung erzielt werden Die M glichkeiten umfassen verschiedene Architekturen und Gewichtungen So kann etwa durch eine serielle Kombination schneller aber ungenauer Klassifikatoren und langsamer effektiver Klassifikationsverfahren eine Leistungsverbesserung erzielt werden F r eine bersicht siehe Jain et al 52 Eine hnliche M glichkeit stellt eine dynamische Gewichtung z B in Form eines gleitenden Mittelwertes dar mittels dem eine fehlerhafte Klassenzuordnung engl class switching eingeschr nkt werden kann 34 Eine un berwachte Audioklassifikation muss im Gegensatz zu Ans tzen di
74. Nov 1999 J O Smith and P Gossett A flexible sampling rate conversion method in Proceedings of the International Conference on Acoustics Speech and Signal Processing San Diego vol 2 New York pp 19 4 1 19 4 2 March 1984 B C Smith L A Rowe J A Konstan and K D Patel The Berkeley Continuous Media Toolkit Proceedings of the 4th ACM International Conference on Multimedia 96 ACM Press pp 451 452 1996 131 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 Literaturverzeichnis Snocap http www snocap com Spiegel Online Rot Gr n setzt sich f r Radioquote ein 15 12 2004 http www spiegel de kultur gesellschaft 0 1518 333030 00 html R Steinmetz Multimedia Technologie Grundlagen Komponenten und Systeme Springer Verlag 1999 N Stiel Multimedia the new frontier Encyclopaedia Universalis pp 144 149 1995 C Sun S G Ritchie and S Oh Inductive Classifying Artificial Network for Vehicle Type Categorization Computer Aided Civil and Infrastructure Engineering 18 3 pp 161 172 2003 Taligent Building Object Oriented Frameworks A Taligent White Paper Technical report Taligent Inc 1994 Technology Review LABOR Forschung und Entwicklung Der Sinn der Musik http www heise de tr artikel 44683 0 G Tzanetakis Manipulation Analysis and Retrieval
75. P und FTP werden RTSP Realtime Streaming Protocol das RTP Control Protocol RTCP f r QoS Zwecke und SDP Session Description Protocol zum Initiieren von Multimedia Sessions verwendet die ihrerseits auf TCP IP bzw UDP aufsetzen Unterstiitzte Dateitypen sind neben RealAudio Video auch Apple QuickTime MPEG 2 MPEG 4 und selbst Microsofts Windows Media Format 3 3 5 Windows Media Windows Media ist eine Plattform f r Erstellung Transport und Distribution von digitalen Multimedia Inhalten die auf den in Abb 3 5 dargestellten Komponenten beruht und in das Windows Betriebssystem integriert ist Aus letzterem ergibt sich zum einen ein gro er Verbreitungsgrad und zum anderen eine f r andere Frameworks kaum erreichbare Performanz Gleiches gilt auch f r die speziell zugeschnittenen Codecs die auch in Verbindung mit weiteren 46 3 Multimedia Frameworks Applikationen amp Inhalt Windows Media Plattform Codecs Encoder Windows Betriebssystem Abbildung 3 5 berblick ber die Windows Media Plattform Merkmalen wie adaptiver Bitrate Frame Smoothing und variabler Wiedergabe Rate sehr effizientes und komfortables Streaming durch die skalierbare Server Komponente mittels HTTP RTSP und dem Media Transfer Protocol MTP 66 erlauben Die zum Streaming ben tigten Elemente k nnen ebenso kostenlos nachger stet werden wie der Encoder Dieser generiert optional eine auf optimiertes Streaming ausgelegt
76. PluginManager Verwaltet verf gbare Plugins 44 3 Multimedia Frameworks Java Applications Applets Beans JMF Presentation Processing API JMF Plugin API Demultiplexer Codec Renderer Effect Multiplexer Abbildung 3 3 High Level Architektur von JMF Die Plugin Architektur umfasst f nf verschiedene von der Player oder der Processor Klasse abgeleitete Typen e Demultiplexer Parsing und Zerlegung von Eingabestr men z B WAV Daten e Codec De Komprimierung und Konvertierung von Daten e Effect Spezialisierter Typ von Codec der sonstige Transformationen durchf hrt e Multiplexer Vereinigung von Datenstr men z B in ein MPEG Format e Renderer Auslieferung von Daten Plugins werden beim PluginManager unter Verwendung eines eindeutigen Bezeichners registriert der blicherweise einem umgekehrten Domain Namen des Autors folgt z B COM sun java MeinFffekt Hinzu kommen Angaben zu unterst tzten Datenformaten S mtliche Objekte z B Zeitstempel von Controller Objekten verwaltete Events Datenbl cke und Objekteigenschaften werden ebenso ber eine Hierarchie von Interfaces beschrieben und ausgelesen wie Medienrepr sentationen und handler Erweiterungen von JMF finden daher entweder per Plugin oder per direkter Implementation der Player Processor DataSource oder DataSink Interfaces statt 3 3 3 Linux Der Stand der Entwicklung von Multimedia Frameworks zeigt ein uneinheitli
77. PreProcessAudio aufgerufen und zeigt das n tige Ausfiltern durch Zur ckliefern von FALSE an virtual STDMETHODIMP Stop virtual STDMETHODIMP Pause virtual STDMETHODIMP Run REFERENC a EIER lek Siteclerarten eee Diese drei grundlegenden Funktionen rufen jeweils zun chst die entsprechende Methode der Basisklasse auf und behandeln anschlie end ein eventuell auftretendes Ende des Datenstromes HRESULT CheckMediaType PIN DIRECTION pinDir const CMediaType pmt HRESULT CheckTransform const CMediaType pmtIn const CMediaType pmtOut HRESULT SetMediaType PIN DIRECTION pindir const CMediaType pmt Unter Verwendung von Parametern zur Flussrichtung des betreffenden Pins und der zu untersuchenden Medienformatee bestimmen diese drei Methoden welche Datentypen direkt bzw nach Transformation akzeptiert werden k nnen und erhalten eine Benachrichtigung ber das vereinbarte verbindliche Format HRESULT GetOutputBuffer CMonitoringAudioOutputPin pOutputPin DXAudioBuffer pbufOut REFERENCE TIME prtStart BOOL bSyncPoint BOOL bDiscontinuity BOOL bPreroll HRESULT DeliverOutputBuffer CMonitoringAudioOutputPin pOutputPin DXAudioBuffer pbufOut HRESULT hrProcess BOOL bCleanup Diese beiden berschriebenen Methoden erzeugen unter Verwendung der Parameter einen neuen Audiopuffer und liefern diesen ber den Ausgangs Audiopin aus
78. Rahmen dieser Diplomarbeit unter Verwendung des Filter SDK entwickelt und getestet 5 3 1 MonitoringAudentifyFilter Dieses Generatorfilter verwendet den in der Arbeitsgruppe Multimedia Signalverarbeitung entwickelten Audentify Algorithmus 57 der in Abschnitt 2 5 5 beschrieben wurde Dieser ist als DLL eingebunden und ben tigt als Parameter die Angabe der verwendeten Index Datenbank Diese ist ebenso als Property ver ffentlicht wie weitere Algorithmus spezifisch Parameter Die DLL selbst ist statisch eingebunden und wird nach Parameter nderung informiert oder ggf neu initialisiert Nach Aufruf der zentralen Identifikationsroutine werden die gefundenen Treffer mit weiteren Informationen z B zum Typ des Audiostreams und einem Zeitstempel angereichert und als EventSample Objekt verpackt an nachfolgende Filter versandt 5 3 2 MonitoringEventNullRenderer Dieser Renderer enth lt keine eigene Logik sondern dient nur mittels der in CMonitoringBaseFilter implementierten Methoden dem korrekten Abschluss einer Signalkette Eingehende Events werden nicht weiterverarbeitet Das Filter erf llt jedoch sehr wohl einen Sinn da es als Renderer durch die implementierten DirectShow Schnittstellen Anfragen des Graphen z B zum Seeking entgegen nimmt und an vorgeschaltete Filter weiterleitet Erst dadurch wird ein vollst ndiges Funktionieren des Datenflussgraphen erm glicht Diese Aufgaben werden nat rlich auch von anderen Filtern wie z B dem in 5 3
79. Reduzierung der Anzahl n tiger Vergleiche erm glicht Um den teilweise riesigen Bestand an Daten zu durchforsten werden approximative Methoden eingesetzt die stark problemspezifisch sind Eine g ngige Heuristik ist es durch Nutzen von quivalenzklassen viele Trefferkandidaten schnell auszuschlie en und nur wenige vollst ndig zu durchsuchen 25 Das vorgeschaltete Verwenden eines simpleren Distanzma es kann so zur anf nglichen Reduktion m glicher bereinstimmender Datenbank Dokumente beitragen 24 2 Audiomonitoring Cano et al verwenden Stringvergleichs Methoden aus der Bioinformatik ahnlich denen zum DNA Vergleich 22 In 57 wird ein Index aus Codew rtern verwendet die aus den Bin rsequenzen extrahiert wurden welche die Merkmalsfolgen repr sentieren Da zum einen viele Datenbest nde prinzipiell dezentral vorliegen und zum anderen die Hardwareleistungen weiter steigen stellt sich die Frage der Machbarkeit und Effizienz eines verteilten Audioidentifikationssystems In Abh ngigkeit des Fingerabdruckmodells und der gegebenen Hardware Infrastruktur ist es m glich parallel in mehreren verteilten Datenbanken zu suchen Kurth et al 57 beschreiben dazu ein auf Partitionierung der gesamten Datenbank Dokumentenmenge beruhendes System dessen einzelne Partitionen unabh ngig voneinander durchsucht werden k nnen Beruhend auf verschiedenen Faktoren einzelner Dokumente und dem Umfang der zu erwartenden Treffermengen lassen sich
80. ULT SetParam int iParamID double dValue virtual void SetFilterName char sNewName Diese Methoden sind die Implementation des IMonitoringSlave Interfaces welches im Anhang D 3 2 erl utert ist CUnknown WINAPI CreateInstance LPUNKNOWN punk HRESULT phr Factory Methode zum Erzeugen des Filters void SendNotify long EventCode Versenden von DirectShow Ereignissen mit bergebenem Code HRESULT SendEvent EventSample pes Senden eines bergebenen Datensatzes vom Typ Event an alle nachgeschalteten Filter Dazu wird der Event bin r serialisiert und als Block an alle verbundenen Ausgangs Eventpins versandt HRESULT PreProcessEvent IMediaSample pSample int iPinID Hier findet der zu SendEvent entgegengesetzte Prozess statt in dem aus einem bin ren IMediaSample Datenblock ein Event deserialisiert wird das an ProcessEvent weitergereicht wird Der Parameter 1 PinID definiert dabei den Pin der die Daten empfangen hat HRESULT ProcessEvent EventSample es int iPinID Von abgeleiteten Filterklassen zu implementierende Methode zur Behandlung eines bergebenen Events Der Parameter 1 PinID definiert dabei den Pin der die Daten empfangen hat STDMETHODIMP NonDelegatingQueryInterface REFIID riid void ppv Bekanntgabe implementierter Schnittstellen IMonitoringSlave ISpecifyPropertyPages IPersistStream und IMediaSeeking HRESULT GetPeerSeeking IM
81. a ied ee i a etre ed ean ahs vey 5310 Monkonnschssiner nie 5 3 11 Weitere filterbasierte Probleml sungen 6 Anwendungen Tests und Bewertungen 6 1 Test des Klassifikationsfilters kk eee ee eee 6 1 1 Daten uswahl u nn an einen 6 1 2 Audiomerkimale 4 2 2 2 220 aiai ena aai san 6 1 3 Einfluss der Anzahl von Trainings und Testdaten 6 1 4 Einfluss verschiedener Abtastraten 0200 6 1 5 Einfluss der Fensterweite euere 6 1 6 Vergleich verschiedener Nachbearbeitungsmechanismen 6 1 7 Einfluss der Parameter des k NN Verfahtens 6 1 8 Parallelklassifikation mit verschiedenen Abtastraten 6 1 9 Klassifikationsleistung anhand von Radiomitschnitten 77 77 77 78 79 80 80 80 81 81 82 84 6 2 Performanz des GenMAD Systems users dees rss 6 2 1 Performanz der entwickelten Filtet cc 6 2 2 Performanz von GenMAD in cece eee eee 6 3 Anwendungen 7 Zusammenfassung Diskussion und Ausblick vi 84 85 85 88 Anhang 91 Anhang A Hinweise zur Verwendung des Filter SDK Anhang B Hinweise zur Verwendung von GenMAD Anhang C Be utzerhandbu h ossei rra DE A E E EO EL E 93 Anhang D Technische Dokumentation von GenMAD Anhang E Technische Dokumentation des Filter SDK Anhang F Bedienung des Klassifikationsfilters we ee eee eee 124 Anhang G Inhalt der beiliegenden CD Literaturverzeichnis 126 vii Kapitel 1 Einleitung und Ubersicht Mit steigenden Anwenderzahlen und immer schnellere
82. aeza Yates and J L Marroquin Searching in metric spaces ACM Computing Surveys vol 33 no 3 pp 273 321 2001 Cycling 74 Max MSP a graphical environment for music audio and multimedia http www cycling74 com products maxmsp html M Davy and S G Godsill Audio information retrieval a bibliographical study Technical Report CUED F INFENG TR 429 Cambridge University Engineering Department 2002 L deCarmo A new architecture for multimedia PC Magazine 6 1998 D Dingeldein Modeling multimedia objects with MME Proceedings of the EUROGRAPHICS Workshop on Object Oriented Graphics EOOG 94 1994 DirectX Files http www directxfiles com 127 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Literaturverzeichnis C Djeraba H Saadane Automatic Discrimination in Audio Documents IRIN Nantes University o J P J O Doets and R L Lagendijk Theoretical Modeling Of A Robust Audio Fingerprinting System Fourth IEEE Benelux Signal Processing Symposium 2004 M Duarte and Y H Hu Vehicle classification in distributed sensor networks Journal of Parallel and Distributed Computing 2004 K El Maleh M Klein G Petrucci and P Kabal Speech music discrimination for multimedia applications In ICASSP vol IV pp 2445 2448 2000 G Engels S Sauer Object oriented modeling of
83. ahl Training und Parametertests wurden anhand von zwei Mengen aus Signaldaten durchgef hrt wobei jede Menge aus ca 15 Sekunden langen Audioelementen eines Datentyps besteht und insgesamt je 20 Minuten umfasst Zus tzlich wurde ein 90 Sekunden langes St ck aus verschiedenen sehr leisen Signalen verwendet um den Standardwert des im Filter enthaltenen separaten Stille Erkennungsmoduls zu ermitteln Wichtiges Ziel bei der Auswahl der Trainingsdaten war es ein m glichst weites Spektrum verschiedener Musikgenres und Stimmen miteinzubeziehen insbesondere weil der Klassifikator anhand von Radiomitschnitten getestet werden sollte Die Daten entstammen daher sowohl FM Radioaufnahmen CDs als auch MP3s in unterschiedlichsten Qualit tsstufen und enthalten neben popul rer Musik und Rock auch Klassik Jazz Ambient elektronische Dancemusic und Schlager hnlich sorgf ltig wurden m nnliche wie weibliche Stimmen in verschiedenen Stimmungen und Lautst rken verwendet wobei diese teilweise mit Hintergrundrauschen unterlegt sind oder einem telefonartigen Effekt unterliegen Neben deutschen Stimmdaten sind weiterhin auch englische franz sische niederl ndische und japanische Elemente enthalten Um die auch f r Menschen oft schwierige Unterteilung in Musik oder Sprache zu unterst tzen wurden auch rein vokale Versionen von Popst cken als Sprache beschriftet Die Trainingsdaten sind dabei mit einer Abtastrate von 44 1 kHz und in 16 Bit Qualit t abgespei
84. anden sind kann ein Vergleich mit anderen Audiofingerabdr cken mit geringem Aufwand durchgef hrt werden Demgegen ber sind folgende Nachteile des Fingerabdruck Prinzips zu nennen e Begrenzte semantische Ausdruckskraft Die automatisch extrahierten Merkmalswerte besitzen eine lediglich geringe Semantik Man spricht auch von der semantischen L cke engl semantic gap zur menschlichen Inhaltsbeschreibung e M gliche hnlichkeit Die Abstraktion kann dazu f hren dass aus verschiedenen Audiosignalen identische Merkmale erzeugt werden Dies kann zu falschen Identifikationen engl False Positives f hren Ein der Merkmalsextraktion verwandtes Konzept ist die Merkmalsselektion Diese arbeitet auf dem Raum der Merkmale und reduziert dessen Dimensionalitat durch Ausschluss von Merkmalsinformationen etwa durch Analyse der Merkmale bez glich der intrinsischen Dimensionalit t der Merkmale Dieser Ausdruck beschreibt die Eigenschaft dass bestimmte d dimensionale Datenmengen ad quat in einem m dimensionalen Subraum mit Dimensionalitat m lt d dargestellt werden k nnen 52 z B Datenvektoren im R die auf einer Linie liegen und somit im R dargestellt werden k nnen Da jedoch eine exakte Unterteilung eines Prozesses in Extraktion und Selektion oftmals nicht m glich ist werden nachfolgend beide Begriffe als Extraktion zusammengefasst 11 2 Audiomonitoring 2 4 Ein generisches Audioidentifikationssystem Ein
85. ann es aus einer je nach Standard verschieden gro en Menge existierender Algorithmen sch pfen um eine qualitative Verbesserung der enthaltenen Routinen z B im Bereich der Vorverarbeitung zu erreichen und dem Anwender mehr Handlungsspielraum zum experimentellen Verwenden neuartiger Ans tze zu geben Eine M glichkeit des generischen Audiomonitorings unter Verwendung solcher Plugins besteht in der Zweckentfremdung bestehender Applikationen aus dem professionellen Audio Bereich Dazu bieten sich vor allem sogenannte Digital Audio Workstations wie Steinbergs Cubase 123 oder das von Apple entwickelte Logic 6 an die neben einer Unterst tzung zeitbasierter Audiosignale auch nicht quidistante Event basierte Daten in Form des MIDI Formates 68 verarbeiten k nnen Sie verf gen ber eine gro e Flexibilit t bei der Verschaltung von signalverarbeitenden Modulen einen gro en Funktionsumfang f r das Arbeiten mit Audiodaten und Ans tze zur Visualisierung der beiden genannten Signaltypen Noch tiefere Ver nderungen erm glicht das von Native Instruments 78 entwickelte Reaktor welches ein vollst ndig modulares System zur Verarbeitung und Synthese von Audiodaten darstellt Die Anforderungen f r die Arbeit mit eventbasierten Identifikationsdaten berfordern jedoch die Flexibilit t derzeit bestehender Systeme Das von Tzanetakis et al entwickelte MARSYAS System 64 106 ist kein Audiomonitoring Framework sondern ein Framework f r Entwi
86. ansformationen wie z B die Hauptkomponentenanalyse engl principal component analysis PCA die jedoch oft sehr rechenintensiv sind Obwohl Fortschritte in Algorithmik und Hardware immer komplexere Berechnungen erlauben werden meist jedoch weniger komplexe Transformationen vor allem Spektraltransformationen Transformationen aus dem Zeit in den Frequenzraum verwendet Mit Hilfe dieser Transformationen wird zum einen Rauschen entfernt und zum anderen eine komprimierte Datenrepr sentation erreicht Weiterhin beruhen in den meisten F llen die nachfolgenden Verarbeitungsstufen auf bestimmten Eigenschaften der Transformation Auch in diesem Fall geht ein Gewinn an Dimensionsreduktion je nach G te der Transformation einher mit einem Verlust an Information 16 2 Audiomonitoring 8000 6000 4000 2000 Abbildung 2 7 Wellenform und Spektrogramm einer Sirene visualisiert mit Cooledit Pro Die gebr uchlichste Spektraltransformation ist die Fourierentwicklung Periodische Signale x r mit einer Periodendauer T lassen sich in eine Superposition von Sinus und Kosinusfunktionen mit Grundfrequenz f 1 T entwickeln o0 x r a a cos n wa r b sin n w r n l Dabei ist w A In dieser Fourierreihe sind a b als te Fourierkoeffizienten das 0 Ma fur die Anteile mit denen die einzelnen Sinus und Kosinusfunktionen zum Gesamtsignal x r beitragen Zur Berechnung der Fourierentwicklung wird f r diskrete endlic
87. atei zugreifen m ssen damit neu initialisiert werden Die abschlie end ausgef hrte CGraphController Recreate Methode fordert ausgehend von den Quellfiltern jedes Filter dazu auf zun chst all seine ausgehenden Pins erneut per DirectShow Methodenaufruf zu verbinden und anschlie end rekursiv auch nachgeschaltete downstream Filter dazu aufzufordern 5 1 5 Hinzuf gen von Mediendateien als Datenquelle Eine vom Benutzer ausgew hlte lokale oder per URL referenzierte Mediendatei wird durch die Methode CGraphController RenderData in den Graph eingef gt Falls der Graph leer ist wird der von DirectShow bereit gestellte Mechanismus zum automatischen Erzeugen eines kompletten auf der Mediendatei und ihrem Format beruhenden Quellfilters verwendet Anschlie end werden alle Filter analysiert und in einer CList aus CFilterContainer Objekten repr sentiert Falls sich bereits Filter im Graph befinden wird ein zweistufiger Prozess eingeleitet der zun chst einen tempor ren Graphen erstellt und diesen mittels des gerade genannten Verfahrens f llt Um auf alle in GenMAD implementierten Funktionen zur ckgreifen zu k nnen werden nun der urspr ngliche und der tempor re Graph vertauscht und der Vorgang hnlich dem eines leeren Graphen durchgef hrt Nach dem Wiederherstellen des Originalzustandes werden die neuen Filter sukzessiv in den Graphen eingef gt und entsprechend verbunden Analog zum Ladevorgang m ssen auch hier besondere Ma na
88. ateien transparent gestreamt werden k nnen Weitere M glichkeiten betreffen sowohl die Konfiguration und die Automation von Plugin Parametern als auch erweiterte Kontrollmechanismen wie etwa ein durch Interpolation der Quelldaten m gliches Echtzeit Skalieren der Abspielgeschwindigkeit 4 2 Das GenMAD System Das hier entwickelte GenMAD System Generisches Monitoringsystem f r Akustische Datenstr me besteht wie in Abbildung 4 1 dargestellt aus zwei fundamentalen Komponenten die ber zwei Schnittstellen miteinander kommunizieren Zum einen aus der Host Applikation zum anderen aus Filtern die in einem Datenflussgraphen miteinander verbunden sind Diese beiden Komponenten kommunizieren ber Schnittstellen miteinander Die GenMAD Applikation implementiert das MonitoringMaster Filter das IMonitoringSlave Interface Wie in der Abbildung gezeigt kann der Graph auch Filter enthalten die von Dritten entwickelt wurden und nur dem Signalfluss dienen Diejenigen Filter die das IMonitoringSlave Interface implementieren und somit Monitoring Funktionen unterst tzen sind wie auch in der sp ter erl uterten visuellen Oberfl che von GenMAD durch wei e Schrift auf dunklem Hintergrund markiert hier mit B und C GenMAD kommuniziert dar ber hinaus ber separate Schnittstellen mit dem Datenflussgraphen und somit allen darin enthaltenen Filtern Im Folgenden wird die Applikation kurz als GenMAD bezeichnet das Gesamtsystem als GenMAD System 4 2
89. ation als Ausgabe zur Verf gung stehen Falls die zu verwendenden Rohdaten wie etwa im Falle vieler Audiodateiformate ber eingebettete Strukturdaten verf gen muss vor dem Extraktionsprozess noch eine Trennung von Audio und Strukturdaten durchgef hrt werden hnliches gilt f r komplexe Multimedia Objekte die vor der Verarbeitung in einfachere Objekte zerlegt werden m ssen Handelt es sich um besonders lange Signale kann auch eine Vorsegmentierung n tig sein Je nach Verfahren kann dieser gesamte Vorgang als Teil der Vorverarbeitungsstufe im Front End implementiert oder separat vorgeschaltet sein Nach dem Einf gen werden ggf vorhandene Optimierungsverfahren wie Dokumenten Indexierung oder der Distanzmessung zuarbeitende Vorberechnungen wie z B Einteilung in eine quivalenzklasse angewandt so dass die Datenbank nach Abschluss des Einf geprozesses wieder auf dem aktuellen Stand ist Je nach Anforderung muss auch das L schen und Aktualisieren vorhandener Dokumente m glich sein Das Konvertieren bestehender Datenbanken ist nur in Ausnahmef llen m glich da das Format von Datenbankdokumenten meist so stark anwendungspezifisch ist dass ein Umwandeln des Dokumentenbestandes nicht m glich ist 25 2 Audiomonitoring 2 5 Aktuelle Audioidentifikationssysteme Im Folgenden sollen f nf Systeme zur Audioidentifikation erl utert werden die sich neben guten Erkennungsraten und hoher Robustheit vor allem auch durch Effizienz auszeichn
90. atz ben tigt wird Dazu werden die Daten auf jeder Ebene anhand der Informationen nur einer Dimension in zwei disjunkte Teilmengen aufgeteilt Die erwartete ben tigte Zeit f r die Suche im Baum betr gt lediglich O g n und erm glicht daher das effiziente Ablegen sehr gro er Vektorenmengen wie in Kapitel 6 aufgezeigt Zu jedem zu klassifizierenden Merkmalsvektor werden die im Baum befindlichen k n chsten Vektoren gefunden und in blicher Weise anhand eines Votings zu einer Entscheidung 75 5 Implementation herangezogen Inspiriert von dem von El Maleh et al 34 vorgeschlagenen Verfahren werden anschlie end vorige Klassifikationen zu einer Mehrheitsentscheidung verwendet um das Auftreten von Ausrei ern zu minimieren Im Gegensatz zu dem von El Maleh vorgeschlagenen Verfahren das nur drei Klassifikationen in das Voting mit einbezieht arbeitet die hier verwendete Methode auf den Ergebnissen der letzten 250ms Ein positiver Nebeneffekt ist die dadurch deutlich reduzierte Anzahl versendeter Klassifikationsevents Die Konfigurations Parameter und verschiedenen Modi des Filters f r das Trainieren und Erkennen von Signalen sind in Anhang F beschrieben 5 3 11 Weitere filterbasierte Probleml sungen Zwei weitere zu Beginn des 4 Kapitels genannte Ziele lassen sich ber bereits bestehende Filter l sen e Zum einen erlauben Capturing Quellfilter die blicherweise als Teil der Treiberarchitektur eines Soundchips installiert werden und
91. auch bei laufendem Graphen erfolgen Das Hinzuf gen neuer Filter zur Laufzeit wird allerdings nicht empfohlen dazu sollte sich der Graph in gestopptem Zustand befinden 96 Anhang D Technische Dokumentation von GenMAD Diese Dokumentation soll vor allem dazu dienen eine effektive Weiterentwicklung des GenMAD Systems zu erm glichen und das Verst ndnis f r die Funktionsweise von GenMAD zu vertiefen vor allem in Verbindung mit dem Quellcode Der Fokus liegt daher auf denjenigen Schnittstellen und Klassenelementen die wesentliche Teile des Systems darstellen oder M glichkeiten zur Erweiterung bieten Triviale Klassen und Methoden mit eingeschr nkter Funktionalit t werden daher nicht bis ins letzte Detail sondern nur rudiment r erl utert F r eine umfassende Dokumentation auch dieser Elemente sei daher auf die im Quellcode enthaltene Dokumentation verwiesen Erg nzende Hinweise zum Zusammenspiel der jeweiligen Klassen finden sich in den Kapiteln 4 und 5 zusammen mit mehreren Abbildungen Es sei darauf hingewiesen dass ein R ckgabewert vom Typ HRESULT einen Integerwert liefert der den Erfolg der Operation bewertet Dabei kennzeichnet generell ein Wert ungleich S_OK einen Fehler Dieses Vorgehen ist in DirectShow blich und in GenMAD soweit m glich und sinnvoll ebenfalls implementiert Dieser Teil des Anhangs ist in vier Bereiche gegliedert Zun chst folgt in D 1 ein berblick ber das Zusammenspiel der einzelnen Komponent
92. auf Audiofingerabdr cken arbeitendes Identifikationssystem besitzt im Allgemeinen zwei wesentliche Komponenten Den Merkmalsextraktor und den Vergleichsmechanismus mit einer Audiodatenbank F r den Entwurf eines Merkmalsextraktor ergeben sich bestimmte Herausforderungen Einfache Berechenbarkeit der Merkmalsfolgen Um eine effektive Verarbeitung zu erm glichen sollte das Erzeugen der Merkmalsfolgen in Echtzeit m glich sein Reduktion der m glicherweise hohen Dimensionalit t des Vektorraums der erzeugten Merkmalsfolge Je nach Wahl des Merkmalsextraktors kann die Dimensionalit t durch nachfolgende Transformationen weiter reduziert werden um eine st rkere Kompaktheit des Fingerabdrucks zu erreichen Hier findet ein Trade Off zwischen einer Reduktion der Dimensionalitat und dem damit verbundenen Informationsverlust statt N tige Varianz eines Fingerabdrucks zu anderen Fingerabdr cken Perzeptuell hnliche Audiosignale m ssen gut genug unterscheidbar sein verschiedene Repr sentationen des selben Signals m ssen jedoch bereinstimmen Dies muss insbesondere auch dann m glich sein wenn mit gro en Mengen von Audiofingerabdr cken gearbeitet wird Robustheit Der Merkmalsextraktor muss gegen ber den oben genannten Signalst rungen in m glichst hohem Ma e robust sein Ebenso sollten Signalparameter wie Lautheit oder Abspielgeschwindigkeit keinen Einfluss auf die erzeugte Merkmalsfolge besitzen Dichtheit der erzeugten Merkmalsfolg
93. aufrufenden engl calling auf der einen und Use As Is bzw aufgerufenen engl called Frameworks auf der anderen Seite gesprochen Reale Frameworks sind in der Praxis normalerweise zwischen den Extremen angesiedelt und werden daher als grau bezeichnet 3 2 Multimedia Frameworks Multimedia Frameworks stellen Infrastruktur und Dienste f r Multimedia Anwendungen zur Verf gung Dies umfasst 113 e Performante und ressourcenschonende Wiedergabe von Multimediadaten verschiedener Typen In jedem Multimedia Bereich und in Abh ngigkeit der betrachteten Plattform gibt es verschiedene Dateiformate die mehr oder weniger etabliert sind Neben der Unterscheidung zeitbasierter kontinuierliche Medien z B Video und Audio und nicht zeitbasierter diskrete Medien z B Grafik Text Formate l sst sich weiterhin eine Einteilung in atomare z B Bitmaps und zusammengesetzte bzw integrative z B 40 3 Multimedia Frameworks HTML PDF Datentypen vornehmen Ein wichtiges G tekriterium f r Multimedia Frameworks sind die Menge und Art der unterst tzten Dateiformate und die M glichkeiten zur Konvertierung dieser Formate Die Effizienz des Frameworks spielt eine ebenso wichtige Rolle Diese h ngt von vielen Faktoren ab darunter dem Grad der Abstraktion bzw der Anzahl von Schichten zwischen Ausf hrungsebene und Hardware und der verwendeten Transportarchitektur Diese beruht blicherweise auf einer hierarchischen Kombina
94. aus resultierenden Kompilierung FilterDefs h i GlobalMacros h SDK h GlobalDefs h NewFilter h MonitoringBaseFilter h PropertyPage h _____ gt IMonitor h PropertyType h AudioBuffer h EventSample h Abbildung E 1 Vernetzung der Headerdateien des Filter SDK 114 Anhang E Technische Dokumentation des Filter SDK E 2 Wichtige Klassen Strukturen und Dateien E 2 1 FilterDefs h Diese Datei enthalt die zentralen Angaben zum Filter Anzahl der verschiedenen Pintypen define PINS AUDIO_IO 0 define PINS EVENT IN 1 define PINS EVENT OUT 1 WE DER GUID hier die Filter CLSID Const GUID TLD Moniroringivenclaciluder 0x4c03cfaa 0xb667 Ox43ee 0x96 Oxaa Oxal Oxea 0x66 Oxfa Ox6e Oxed Ud zentrale Definitionen des Filters f r globale Makros JHCLEID Cas Iii leers define FILTER CLSID IID MonitoringEventIncluder Filter Klasse muss von CMonitoringBaseFilter erben cerie PTLIUR CLASS CmonitoringEventIncluder Filtername ASCII define FILTER NAME MonitoringEventIncluder Filtername Unicode define FILTER NAME WIDE L MonitoringEventIncluder Filter Konfigurationsdialog CLSID ale ae ETER EROR Cis 0D CLSID MonitoringBaseFilter PropertyPage und Klasse define FILTERPROP CLASS CMonitoringBaseFilterPropertyPage E 2 2 FilterUtils namespa
95. b iv Inhaltsverzeichnis 1 Einleitung und bersicht 1 1 Gliederung der Diplomarbeit aaa 1 2 Hinweise zur Notation 2 BEG a En Rainer 2 Audiomonitoring 2 1 DerMontonngsbesttt ausser ea essen 2 2 Inhaltsbasierte Audioidentifikation ahnen 2 Der A diofingerabdr ck asia Ein 2 4 Ein generisches Audioidentifikationssystem we ee ee ee eee eee 24I PionePnd o o saeco sai weinen 2 4 2 Fingerabdrucks Modellierer asien ses aa 24 3 Distanzmetik Lea te eRe es as 2 14 A4 Suchmerh den sd tele htt Mtl cay nee et 24 5 1ypothesen Te u een aa a 246 Datenbarik Pflege 7 eu TA 2 5 Aktuelle Audioidentifikationssysteme use na rs ee uae we 23 Ad Dee ER el 292 Shazam Ent O Wang Nee 25 JAndioDNA ri RE S heh eda 29 4 A dio ashing iiano aaie tats a a AE E AREER abet ZS Auden o um a aa a E EE A ee 2 6 Andioklassitikatlon ee ER EB Dein 2 7 Audiomonitoringsysteme gt sea a HR Rein 3 Multimedia Frameworks 3 1 Frameworks ine ee Die eier leere hen 3 2 Multimedia Frameworks u a soaked a are Da 3 3 Aktuelle Multimedia Frameworks 6 0 0 tenet en eee 3a F ie oa 90m nr ce me re eee 3 3 2 Java Media Framework atesiudasnuttVen ep ieteean ul ako e ues iSO ax Phd oes Mi Ph ets eh aie A ieee a a Bog tec a peed Bus 3 3 4 Helix RealMedia nennen 3 3 5 Windows Medid 3 25408 8er ae een ba ebines tener es aah 3 3 0 DireetX Lot dows ee ee aes ee A Se Fas IY dh C A TR ee 4 Entwurf des GenMAD Systems 4 1 Verwandte Ans
96. baren Mediendatei Dabei wird automatisch eine zur Ausgabe des jeweiligen Dateityps ben tigte Filterkette erzeugt Der dritte Button dessen Funktion auch durch Rechtsklick in den Manipulationsbereich erreicht werden kann ffnet einen Dialog der das manuelle Hinzuf gen neuer Filter erlaubt Dabei lassen sich mehrere Filter hintereinander hinzuf gen ohne dass der Dialog neu ge ffnet werden muss Dieser Button ffnet die das Visualisierungsfenster Diese Funktion kann auch durch Doppelklicken eines Filters mit der linken Maustaste erreicht werden In letzterem Fall wird dem Filter falls m glich der Audiofokus zugewiesen Mittels dieses Buttons l sst sich die Synchronisation des Graphen zur Referenzuhr an und abschalten Standardm ig ist sie aktiviert Diese drei Buttons kontrollieren in gewohnter Weise den Datentransport Tabelle C 2 Buttons der Toolbar Dar ber hinaus befinden sich in der Toolbar drei weitere Steuerelemente Uhr welche die aktuelle Medienzeit anzeigt Schieberegler zum Vor und R cklauf falls vom Graphen unterst tzt Kontrollfeld zur Eingabe eines Skalierungsfaktors Standardwert ist 1 0 Visualisierungsfenster In der Too bar lassen sich drei Dinge konfigurieren An und Abschalten der Echtzeit Darstellung Standard ist an Zuweisung des Audiofokus an ein Filter Einstellen des Zoomfaktors von Audiosignal und Event Anzeige mit zugeh rigem Feld zur Anzeige d
97. bestimmt zu jeder Zeit maximal ein Filter welches zum einen das IMonitoringSlave Interface implementieren und zum anderen mindestens einen eingehenden Audio Pin besitzen muss Die Audiodaten des Filters mit dem Audiofokus werden im oberen rechten Fensterbereich in Echtzeit angezeigt Die Auswahl kann au er der Wahl durch Doppelklick auf ein entsprechendes Filter im Manipulationsbereich auch durch die in der Toolbar enthaltene Auswahlbox erfolgen Des weiteren enth lt die Toolbar einen Button zum Umschalten der Echtzeit Anzeigen auf Standby und einen beschrifteten Schieberegler zum Zoomen Im Standby Modus kann die Eventdarstellung per Schieberegler am unteren Fensterrand zeitlich durchlaufen werden und erlaubt so einen R ckblick 60 5 Implementation HUET lie Erzeugung Erzeugun ua F okus Erzeugung GUI DirectShow Events Events Tasten Maus Kontrolle GUI Events Zeichnen C er Erzeugung Erzeugung Kontrolle Darstellung Darstellung Filter Informationen Audiofokus Graph Informationen Kommunikation Verbindbarkeit Abspielkontrolle mit Filter vent Audiodaten Erzeugung Erzeugung Signal Daten CAudioView CPinInfo CEventListView CEventView Abbildung 5 3 Schematischer berblick ber die wichtigsten Klassen von GenMAD Die Farbgebung folgt dem in Abb 4 3 eingef hrten Schichtenmodell Mit einem Stern versehene Klassen werden nicht als Singletons verwendet Im A
98. bliotheken liegen also gewisserma en bereits halbfertige generische Applikationen eines Anwendungsbereiches vor die lediglich um eigene Applikationslogik erweitert werden m ssen Nach Fayad und Schmidt 36 weisen objektorientierte Frameworks vier prim re Vorz ge auf e Modularit t Durch die Verkapselung der Implementierung hinter ffentlichen Interfaces erh ht sich die Software Qualit t da sich Verst ndnis und Wartung vereinfachen e Wiederverwendbarkeit Die durch stabile Interfaces bereitgestellten generischen Komponenten beinhalten bereits komplette L sungen typischer Probleme des jeweiligen Anwendungsbereiches in Form von Expertenwissen Durch Verwenden dieser L sungen erh hen sich neben der Entwickler Produktivitat auch Qualit t Performanz Verl sslichkeit und Interoperabilit t e Erweiterbarkeit Durch Erweiterung der Interfaces und durch Hook Methoden sind Frameworks erweiterbar e Invertierung der Kontrolle Der Applikationscode wird vom Framework aufgerufen Dies wird auch als Ho lywood Prinzip bezeichnet Don t call me PI call you Weitere Vorteile bei Verwendung von Industriestandard Frameworks e Ergonomie Die Homogenit t von Applikationen gleicher Frameworks erleichtert den Einstieg und Umgang mit solchen Applikationen 38 3 Multimedia Frameworks e Zuverl ssigkeit Durch den hohen Verbreitungsgrad sind solche Frameworks vielfach und dauerhaft getestetet e Performanz blicherweise
99. ce FilterUtils Hierbei handelt es sich nicht um eine Klasse sondern um einen Namespace der nur zwei Funktionen enthalt bool FileExists char sPath berpr ft ob am angegebenen Pfad eine Datei existiert Falls ja wird TRUE zur ckgeliefert bool BrowseFileName char sFile HWND hWnd bool bFileMustExist ffnet einen Dialog zur Dateiauswahl Wird eine Datei ausgew hlt liefert die Funktion TRUE zur ck und enth lt den gew hlten Pfad in sFile Der Parameter hWnd wird f r das Erzeugen des Dialogs ben tigt und stellt ein Fensterhandle dar Das Flag bFileMustExist schlie lich bestimmt ob die zu w hlende Datei existieren muss um ausw hlbar zu sein E 2 3 GlobalMacros h In dieser SDK internen Datei werden Medientypen definiert und die zur Registrierung ben tigten globalen Variablen deklariert und anhand der Angaben in FilterDefs h gef llt Benutzer sollten diese Datei nur in Ausnahmef llen editieren 115 Anhang E Technische Dokumentation des Filter SDK E 2 4 IMonitor h In dieser Datei sind sowohl grundlegende Medientypen wie MEDIATYPE_Event als auch die elementaren IMonitoringMaster und Slave Schnittstellen und deren GUIDs definiert Diese werden in Anhang D 3 erl utert IMonitoringSlave wird von CMonitoringBaseFilter implementiert E 2 5 CMonitoringBaseFilterPropertyPage class CMonitoringBaseFilterPropertyPage public CBasePropertyPage Diese Klasse stellt die im SDK standardm ig verwende
100. chert Wurden f r einen Test Signale in niedrigerer Qualit t ben tigt so wurden diese mittels der Software CoolEdit heruntergerechnet 77 6 Anwendungen Tests und Bewertungen 6 1 2 Audiomerkmale Vier der f nf verwendeten Audiomerkmale Zero Crossing Rate Spectral Flux Spectral Centroid und Spectral Rolloff arbeiten nicht auf den eigentlich berechneten Werten sondern den daraus abgeleiteten Varianzwerten und auch das Low Einergy Percentage Merkmal greift auf laufende RMS Mittelwerte zur ck Da zur Berechnung von Mittelwerten und Varianzen die Werte der vergangenen Sekunde herangezogen werden haben alle Merkmale eine Lateng genannte Verz gerung gegen ber den Audiodaten von einer Sekunde Aus Gr nden der Performanz wurden die zur Spektraltransformation n tigen Berechnungen nur einmal je Frame durchgef hrt Da die Berechnung von STFT und Varianzen den Hauptteil der Rechenzeit ausmacht ist der Einfluss der verschiedenen Merkmale auf die Gesamtrechenzeit bei allen ann hernd gleich gering Um die Diskrimierungsf higkeit der einzelnen Merkmale zu untersuchen wurden in Excel Histogramme zu den bei der Verarbeitung eine Menge von mehreren Tausend Frames entstehenden Merkmalsdaten von Musik und Sprachdaten erstellt Diese sind in Abbildung 6 1 dargestellt Spectral Centroid Spectral Flux 3500 3000 2500 2000 H ufigkeit 1500 1000 200 100 i 500 0 en AY N N vn 2 44E 04 1 02E 06 2 02E 06 3 02E 06 4 02E 06 5 0
101. ches Bild Linux als Multiusersystem und nicht als Hochleistungssystem f r Einzelrechner hat historisch einigen R ckstand zu den professionellen Multimedia Frameworks anderer Betriebssystem und besitzt noch keinen Distributions bergreifenden Standard Deutlich wird dies anhand der Bestplatzierten in der Rubrik Best Multimedia Framework des Linux New Media Award 2004 60 Die Wertungen der drei Gewinner JACK GStreamer und SDL unterscheiden sich um nicht einmal 5 JACK 51 ist ein auf dem popul ren ALSA Audio Treiber Format 4 aufsetzender Audio Server mit geringer Latenz der Streaming Callbacks und Inter Applikations Kommunikation unterst tzt Das aus dem Umfeld des Gnome Projekts heraus entstandene GStreamer 44 ist eine in Anlehnung an Microsofts nachfolgend erl utertes DirectShow Framework entwickelte Streaming Media Architektur die f r In Prozess Konstruktion von Media Pipelines konzipiert wurde und ein eigenes Modell zur Verwaltung von Plugins hier GstE ements genannt beinhaltet 45 3 Multimedia Frameworks Abbildung 3 4 GStreamer Pipeline zum Abspielen einer MP3 Datei Diese werden wie in Abbildung 3 4 dargestellt in Pipelines also einer seriellen Verschaltung von Modulen organisiert indem die f r den Austausch von Datenbl cken zust ndigen Ein bzw Ausgabeinterfaces Pads genannt miteinander verbunden werden GStreamer wurde als Open Source Projekt auch auf andere Plattformen portiert Die
102. cklung und Test von Algorithmen zur Audioanalyse und Synthese bietet jedoch durch die verwendete Client Server Struktur und den 51 4 Entwurf des GenMAD Systems freien Zugang die M glichkeit zur Erweiterung auf Monitoringmechanismen Enthalten sind neben frameworkartigen M glichkeiten zu Verschaltung und Manipulation von Datenstr men auch Hilfsmittel z B zur Klassifikation von Musikst cken Zusammen mit anderen Ver ffentlichungen des Autors vor allem zur Echtzeit Visualisierung von Klassifikationsergebnissen 105 verspricht dieses System einen interessanten Ansatz MARSYAS befindet sich allerdings noch in einem fr hen Entwicklungszustand und verf gt nicht ber Mittel um Monitoring oder andere Visualisierungen performant zu gew hrleisten Die vorliegende Arbeit erhebt zwar nicht den Anspruch einen Standard schaffen zu wollen sie m chte aber die Vorteile eines solchen noch zu schaffenden Standards aufzeigen In diesem Sinne wird nachfolgend das im Rahmen der vorliegenden Diplomarbeit entwickelte GenMAD Konzept vorgestellt das eine flexible Verschaltung von Multimediadaten verarbeitenden Modulen verschiedenster Herkunft mit Mechanismen zur Handhabung und Visualisierung von Eventdaten anbietet Im Gegensatz zu bisherigen Arbeiten auf diesem Gebiet erlaubt GenMAD die einfache Verwendung beliebiger akustischer Monitoring Algorithmen ber ein klar definiertes Software Development Kit SDIS und stellt daher ein generisches Monitorings
103. ct t f n l n l Musik weist h here Energieanteile in hohen Frequenzen auf und besitzt daher eine h here Rolloff Frequenz als Sprache 4 Hz Modulationsenergie Sprache besitzt eine charakteristische Energiemodulationsspitze im Bereich der 4 Hz Silbenrate Um dies zu quantisieren wird das Signal zur Analyse unter Verwendung des MFCC Algorithmus in perzeptuelle Frequenzkan le konvertiert mittels eines auf 4Hz zentrierten Filters zweiter Ordnung Bandpass gefiltert und anschlie end zur Erhebung der Lautheit verwendet Der Ma wert ergibt sich aus der Summe aller normalisierten Kan le 93 Zeitbasierte Merkmale Nulldurchgangsrate engl zero crossing rate Dieses Audiomerkmal berechnet die Rate der Vorzeichenwechsel der diskreten Abtastwerte eines Frames N l ZCR t S sign x n 1 sign x n Dabei ist x der Wert des ten Samples Angenommen wird au erdem dass x annahernd mittelwertfrei ist Hohe ZCR Werte deuten auf hohe Frequenzen hin 22 2 Audiomonitoring e Anteil an Low Energy Frames Dieses Merkmal beruht auf dem RMS Wert engl root mean square des Signals einem in der Audiosignalverarbeitung blichen Ma der Amplitude berechnet durch die Wurzel des quadrierten Signal Mittelwertes RMS t gt n Zur Berechnung des Merkmalswertes wird zun chst der Mittelwert aller Frames der letzten Sekunde berechnet Danach wird f r jeden dieser Frames berpr ft ob sein RMS W
104. d oder inkonsistent ber mehrj hrige Betrachtung z B Genre e Sie sind meist komplexer zu berechnen als nicht semantische Merkmale e Sie sind nicht universell anwendbar Bei bestimmten Musikrichtungen l sst sich beispielsweise die BPM Zahl nicht bestimmen Nachfolgend wird daher nur auf nicht semantische Merkmale eingegangen Obwohl sich die verschiedenen Fingerabdrucksverfahren in ihrem Hintergrund und der verbundenen Zielsetzung unterscheiden beruhen viele auf den selben Merkmalsextraktoren oft basierend auf dem Spektrogramm des Eingangssignals Dabei ist es durchaus blich eine Reihe von Merkmalen zu kombinieren um die Robustheit gegen ber st renden Einfl ssen zu erh hen H ufig wird Vorwissen aus der Psychoakustik zu Eigenarten des menschliches Geh rs verwendet um eine Datenreduktion zu erreichen Oft wird das in den Frequenzraum transformierte Signal in B nder aufgeteilt um z B den Eigenheiten des nichtlinearen menschlichen Geh rs Rechnung zu tragen und bestimmte Frequenzanteile st rker im Extraktionsprozess zu gewichten Neben linearen und logarithmischen Bandanordnungen seien hier vor allem die Bark und die Mel Skalierung genannt Die Bark Skala besitzt blicherweise 24 B nder entsprechend den ersten 24 kritischen B ndern in welche die f r menschliches H ren zust ndige Basilarmembran im Innenohr eingeteilt werden kann 95 Die Mel Skala ist linear bis 1 kHz und nachfolgend logarithmisch Daher stellt ausge
105. der Fensterweite oder der Uberlappung auf die Klassifikationsleistung festgestellt werden 6 1 6 Vergleich verschiedener Nachbearbeitungsmechanismen In der Publikation von El Maleh et al 34 wird ein Verfahren beschrieben das darauf abzielt das schnelle Wechseln von Klassenzuordnungen mittels eines laufenden 3 Frame Votings in der Nachverarbeitung zu unterbinden In einem Test wurde dieses Verfahren sowohl einem modifizierten Ansatz als auch der Klassifikation ohne entsprechende Nachbearbeitung gegenuberstellt Das modifizierte Verfahren f hrt ein Voting auf der Menge von Merkmalsvektoren durch die in den vorigen 250ms erzeugt wurden Bei einer Fensterweite von 512 und einer berlappung von 384 Samples sind dies bei 44 1 kHz ungef hr 28 Vektoren Die Ergebnisse der drei Verfahren variierten allerdings nur um wenige Zehntel Prozentpunkte Im Fall des modifizierten Verfahrens wird jedoch eine bis zu 28 fache Verringerung der Anzahl zu versendender Eventausgaben des Filters erreicht was der Performanz zu Gute kommen d rfte Daher verwenden nachfolgende Tests dieses modifizierte Verfahren zur Nachverarbeitung von Klassifikationsereignissen 80 6 Anwendungen Tests und Bewertungen Klassifikation von Musikdaten Klassifikation von Sprachdaten 100 ket k 5 E Sonstiges 0 o Sonstiges 0 05 0 36 Sprache 70 24 75 48 E Sprache 23 02 28 58 Musik 29 71 24 47 EI Musik 76 98 71 42
106. die Auswahlbox des Audiofokus berpr ft void OnHScroll UINT nSBCode UINT nPos CScrollBar pScrollBar Diese Methode zur Ereignisbehandlung korrespondiert mit dem Zoom Schieberegler und bergibt den Zoomwert den entsprechenden Teilbereichen FilterDesc GetFilterDesc CString sName int GetFilterCount void UpdateFilterDesc FilterDesc fd Diese drei Methoden befassen sich mit der Bereitstellung von Filterinformationen an die Teilbereiche und liefern zu einem bergebenen Filternamen ein FilterDesc Objekt geben die Anzahl vorhandener Eintr ge zur ck und aktualisieren vorhandene Eintr ge D 2 21 DShowUtils Abschlie end sei auf folgenden Namespace hingewiesen der eine Reihe von DirectShow nahen Funktionen enth lt die von verschiedenen GenMAD Klassen aufgerufen werden Diese Funktionen entstammen teilweise dem DirectX SDK oder sind Erweiterungen davon andere wurden vom Autor dieser Diplomarbeit implementiert In der folgenden Auflistung wichtiger enthaltener Funktionen sind durch gekennzeichnet die Parameter absichtlich weggelassen um die Lesbarkeit zu erh hen Diese sind jedoch wie gewohnt im Quelltext dokumentiert CString GetDirectXErrorMessage HRESULT hr Liefert zu einem Fehlercode die zugeh rige Fehler Meldung char GetMediaType GUID mediatype Liefert zum GUID eines DirectShow Medienformates den zugeh rigen Bezeichner HRESULT CreateFilterByCLSID Durch CLSID definiertes Filter erze
107. die jedoch durch die jeweils entgegengesetzte Klassifikationsaufgabe wieder etwas entwertet wurde Wie aus dem Gesamt berblick erkennbar ist die Leistung des 8 kHz Klassifikators sogar etwas h her als die der Pipeline Kombination Bemerkenswert ist dar ber hinaus dass das Kombinatorfilter zu einer h heren Gesamtleistung f hrt als der Mittelwert der beiden Pipelines so dass durch geeignetes Abstimmen der Merger Parameter sowie durch optimierteren Einsatz der Equalizer und weiterer Vorverarbeitungsschritte eine h here Leistung zu erwarten sein sollte Der Vorteil der GenMAD Plattform ist hier die M glichkeit mit wenig Aufwand neue Signalverarbeitungs kaskaden zu testen Auch wenn sich in diesem Test noch keine Verbesserung der Leistung ergab wurde das Prinzip doch im nachfolgenden Abschlusstest eingesetzt 6 1 9 Klassifikationsleistung anhand von Radiomitschnitten In diesem abschlie enden Test sollte die Gesamtklassifikationsleistung anhand von zwei Radiomitschnitten ausf hrlich eruiert werden Zun chst wurde ein 45 Minuten langer Mitschnitt eines per Internet mit 48 kbps gestreamten Radiosenders mit Schwerpunkt Rockmusik S arFM 87 9 Berlin untersucht wobei der Projektaufbau dem in 6 1 8 gleicht Anders als in den vorigen Funktionstest handelt es bei den Testdaten also nicht um Daten von jeweils nur einem Typ vielmehr wechseln sich Musik und Sprache wie in vom Radio gewohnter Weise ab Daher wurden der Parameter des Kombinatorfilter
108. e Regelm ige innerhalb eines zu definierenden Toleranzbereiches nah beieinander liegende Merkmalsvektoren sind ber die gesamte Signaldauer zu garantieren um eine m glichst gleich gute Verwendbarkeit des Fingerabdrucks zu jedem Zeitpunkt zu gew hrleisten Auch der Vergleichsmechanismus unterliegt verschiedenen Anforderungen Effektive Berechnung der Distanz zweier Merkmale Das f r den Vergleich von Audiofingerabdr cken im Raum der Merkmale eingesetzte Distanzma muss ebenso schnell und korrekt arbeiten d h keine Treffer auslassen und eine geringe False Rejection Rare FRR besitzen wie speichereffizient und leicht pflegbar sein 11 Effizientes Suchen Dies kann z B durch Verwenden von Indizes erreicht werden die eine Reduktion der Dimension der Merkmale erm glichen Dadurch kann dem Curse Of Dimensionality 16 dem mit steigender Dimensionalit t exponentiell steigenden Rechenaufwand entgegengewirkt werden Eine entscheidende Rolle in Anbetracht stetig steigender Datenbest nde spielt die Skalierbarkeit des zugrunde liegenden Datenbanksystems Kompakte Identifikation Die Erkennung eines Audiost ckes sollte anhand eines nur wenige Sekunden langen Signalst ckes m glich sein 12 2 Audiomonitoring Fingerabdrucks Extraktion Vergleichsmodul Fingerabdrucks Modellierung Distanzmessung Audiosignal Front End Hypothesentest Audio Metadaten Datenbank Fingerabdruecke amp Metadaten Abbildung
109. e ASF Datei Advanced Streaming Format die den enkodierten Datenstrom in mehreren Qualit tsstufen enth lt und auch HDTV Anspr chen moderner externer Multimedia Ger te mit entsprechend angepasstem Windows Betriebssystem gen gt Der Player bietet eine durch verschiedene Skins anpassbare Oberfl che und gibt sowohl gestreamte als auch andere Multimediadaten wieder sogar in Surround Audio bis 7 1 Kan len Fehlende Codecs werden wenn m glich automatisch nachgeladen Die System Architektur besitzt dar ber hinaus ein Plugin Modell f r Player Server und Encoder das ber ein SDK f r eigene im Vergleich zu anderen Frameworks allerdings eingeschr nkte Anforderungen z B zur Synchronisation mit portablen Abspielger ten oder f r das digitale Rechtemanagement verwendet werden kann Letzteres liegt allen Komponenten zugrunde kann serverseitig in Echtzeit angepasst werden und erlaubt ber ein eigenes Lizenzmodell fortschrittliche DRM Operationen wie quantitativ beschrankte Abspielwiederholungen engl counted play zeitliche Gultigkeitsbereiche und Restriktion bez glich der weiteren Verwendung von Inhalten z B beztiglich des Brennens auf CD oder den Transport auf portable Medien Dar ber hinaus bieten im Player integrierte QoS Funktionen z B Feedback uber Bandbreite Mediennutzung und Paketverluste 3 3 6 DirectX Microsoft DirectX 67 ist eine 1995 eingef hrte performante Multimedia Erweiterung des Windows Betriebssyste
110. e Audiodaten verarbeitenden Filtern erwartet dass sie in Echtzeit und nach dem FIFO Prinzip F rst In F rst Ou arbeiten d h dass die Zeit zum Verarbeiten eines Puffers p durch das Filter F kleiner als die im Puffer enthaltene Zeitdauer ist und dass eingehende Daten vollst ndig verarbeitet werden bevor neue Daten angenommen werden Zum anderen haben alle Filter Zugriff auf eine Referenzuhr RefClock Z um so Zeitstempel von Datenstr men mit der Referenzzeit vergleichen zu k nnen Da die Ein und Ausgangsverbindungskardinalit t f r Audiodaten h chtens eins ist betrifft das Problem der Datensynchronisierung von Transformatorfiltern nur Filter mit einer Event Eingangsverbindungskardinalit t von zwei Die Synchronisierung kann in diesem Fall ber die Zeitstempel der Eventdatenelemente gew hrleistet werden Aus der Definition der drei Grundfiltertypen ergibt sich die M glichkeit die miteinander verbundenen Filter des Datenflussgraphen als gerichteten Graphen darzustellen Dabei wird jedes Filter durch einen Knoten repr sentiert Quellfilter stellen die Wurzelknoten dar Transformatorfilter die inneren Knoten und Rendererfilter die Bl tter Falls zwei Filter F F miteinander verbunden sind wird dies durch eine gerichtete Kante zwischen den Filtern dargestellt und an jedem der beiden Kantenenden wird der entsprechende Typ T DT und ggf der Index vermerkt der f r den Filter die Verbindung markiert Ein solcher Beispielgraph ist
111. e Bewertung kann durch den Benutzer mittels mehrerer Parameters gesteuert werden Zum einen gewichtet das Filter Ereignisse auf den beiden Eing ngen separat mit je einem Faktor Der Parameter Diffusion steuert in Abh ngigkeit der Zeitstempel vergangener Ereignisse den Werteverfall jedes Ereignistyps und erlaubt so eine zeitbasierte dynamische Bewertung Schlie lich wird nur dann ein Ereignis weitergeleitet wenn innerhalb eines parametrisierbaren Zeitintervalls in der unmittelbaren Vergangenheit nur dieser Ereignistyp versendet wurde Das Filter erlaubt auf diese Weise das Verhindern von Ausrei ern oder anderen widerspr chlichen Events und somit eine Segmentierung des Ereignisstroms Da dieses Filter eine wichtige Rolle im Kapitel 6 spielt soll dieser Mechanismus etwas erl utert werden Zur Kombination von Eventstr men h lt das Filter in einem Feld events fixer Gr e die Beschreibungen der letzten eingegangenen Events unterschieden nach Event Beschreibung Trifft ein darin nicht enthaltener Event es ein so wird dieser zum Feld an Stelle iEvent hinzugef gt wobei im Fall der Maximalauslastung des Feldes der am l ngsten vergangene Event berschrieben wird Nun wird die Bewertung unter Verwendung einer Winner Takes All Strategie mit Gewinner Feldindex iCurrentWinner durchgef hrt berechne vergangenen wert REFERENCE TIME rtDiff es rtTimestamp events iEvent rtLastOccurance bisheriger Wert des Events m
112. e Teilgebiet der Informatik befasst sich mit verschiedenen Ans tzen um multimediale Daten inhaltsbasiert analytisch zu verarbeiten und ist somit ein wichtiger Puzzlestein des Semantic Computing Ein wichtiger Teilbereich der in dieser Diplomarbeit behandelt wird ist das Audio 1 Einleitung und bersicht Information Retrieval welches der Gewinnung von semantischen Beschreibungen aus beliebigen Audiodaten dient Hier entwickelte Technologien werden z B von Mobilfunkanbietern wie Vodafone oder O2 dazu verwendet in Query By Mobile genannten Verfahren Musik zu identifizieren bei dem ein Benutzer sein Mobiltelefon z B vor ein Radio h lt in dem ein ihm unbekanntes Lied l uft Da in solchen Verfahren eingehende Audiosignale blicherweise mit Hilfe einer Menge von Musikst cken verglichen werden die in einer Datenbank repr sentiert sind spielt deren Umfang der darin gespeicherten Titel eine entscheidende Rolle Philips beispielsweise hat sich daher f r ihren AndiolD Service die Dienste von Gracenote vormals CDDB gesichert in deren Datenbank Metadaten f r vier Millionen Titel abgelegt sind 85 Andere Firmen wie MusicMatch 75 integrieren eine solche allgemein Audio Fingerprinting genannte Identifikationstechnologie in Software zur automatischen Benennung von Musikst cken oder bieten neuartige Dienste an die ein Musikst ck lassifizieren und ent sprechende Vorschl ge zu hnlichen St cken machen Ein dazu eng verwandtes Geb
113. e auf vorklassifizierten Trainingsdaten arbeiten selbstst ndig semantische Klassen generieren Dies kann durch eine regelbasierte Heuristik geschehen wie von Djeraba et al 31 beschrieben wird Die Autoren skizzieren ein System zur Klassifikation von Audiosignalen in Stille Rauschen Sprache und Musik wobei die Klassifikation nach Anwenden einer Fensterfunktion wie folgt durchgef hrt wird Zun chst wird versucht das Signal als Stille ber einen Se bst Normalisierung genannten adaptiven Ansatz zu erkennen der nach der Erkennung die eigenen Parameter aktualisiert Die Autoren weisen darauf hin dass eine Erkennung mittels der Lautheit des Signals wegen in der Praxis zu erwartender Hintergrundger usche nicht ausreiche Mittels einer Autokorrelationsfunktion wird nachfolgend die Periodizit t gemessen Falls keine Periodizit t vorliegt wird die Anfrage als Rauschen klassifiziert Falls kein Rauschen vorliegt wird die Nulldurchgangsrate des Signals untersucht Ist diese h her als ein Grenzwert wird die Anfrage als Sprache im anderen Fall als Musik klassifiziert Panagiotakis et al verwenden serielle Tests aus Kombinationen einfacher Merkmale zur Diskriminierung von Sprache und Musik und setzen eine vorgeschaltete Erkennung der Signalpr senz anhand eines Ma es der Signalamplitude zur Klassifikation von Stille ein Der Vorteil solcher Verfahren liegt in ihrer Effizienz 82 Liegt ein solches Regelsystem nicht vor kann ein Clustering Algorith
114. e das GraphBuilder Objekt das in DirectShow den Datenflussgraphen kontrolliert Zentrale Eigenschaften CVisualizerFrame pVisualizerFrame Visualisierungsfenster zentrale DirectShow Handles IGraphBuilder pGraph GraphBuilder IMediaControl pControl Abspielkontrolle IMediaEventEx pEvent Ereignisbehandlung IMediaSeeking pSeek Seeking LONGLONG 1TotalPlayLength Gesamtspielzeit d aktuellen Mediums CTypedPtrList lt CPtrList CFilterContainer gt pFilters die Filter CWnd pWnd Applikationsrahmen CWnd pClientArea Manipulationsbereich IReferenceClock pRefClock Referenz Uhr 103 Anhang D Technische Dokumentation von GenMAD Nachfolgend sind die wichtigen Methoden der Klasse aufgef hrt void ResetGraph Zur cksetzen des Graphen Entfernen aller Filter void InitializeGraph Erzeugen des Graphen Initialisieren der zentralen DirectShow Objekte und deren Parameter void RenderData CString sSource Eine Mediendatei an bergebenem Pfad renderbereit zum Graphen hinzuf gen wie in 5 1 5 beschrieben void HandleGraphEvents DirectShow Ereignisse behandeln wie in 5 1 2 erl utert void NotifyFilters Alle Filter zum berpr fen von nderungen auffordern vorc Releasalmterracsg Freigabe aller Interfaces und DirectShow Objekte ESULT CallMaster int iCodeID void pParam void ppReturnValue ESULT BroadcastParam int iParamID double dValue
115. e das der Zugriffsserialisierung 101 Anhang D Technische Dokumentation von GenMAD void DrawEvents REFERENCE TIME rtNow bool bStillMode Wie in 5 1 9 erlautert werden hier Events separat nach visualisierenden Filtern und in Sub Bahnen gleicher Eventbeschreibungen angezeigt Die Parameter geben Auskunft ber die aktuelle Zeit und den Status ob die Anzeige in Echtzeit verwendet wird oder ber den in der Klasse enthaltenen Schieberegler ver ndert wurde CSlicderCeril m ocb lidert Beim Anzeigen bedient sich die Funktion mehrerer Methoden der CVisualizerFrame Klasse die Informationen zu den verschiedenen Filtern verwaltet und aktualisiert z B zu Eventblocks und dem vorigen Event void AddEvent EventSample es Die bergebenen Events werden im Gegensatz zu CEventListView in pEvents sortiert eingef gt wobei ein Zeiger auf das n chste zu zeichnende Event ggf aktualisiert wird D 2 9 CFilterCategory class CFilterCategory public CObject Hilfsklasse zu CAvailFilterList die das Speichern vordefinierter Filterkategorien in einer CObList erm glicht Die einzigen Elemente sind zwei Variablen und ein diese parametrisierender Konsttuktor char szNam Kategorie Name CESID Cis De Kategorie CLSID D 2 10 CFilterContainer class CFilterContainer public CObject Repr sentantenklasse eines Filters die ber Methoden zur Host Filter Kommunikation zur bergabe von Informationen und zur
116. e variiert je nach Netztyp und umfasst auch r ckgekoppelte Netze und selbstorganisierende bzw topologiebewahrende Karten 121 Die Anzahl der 30 2 Audiomonitoring Neurone je Schicht korrespondiert dabei mit der jeweiligen Dimension der verarbeiteten Daten So l sst sich beispielsweise in einem Multilayer Perzeptron mittels zwischen Ein und Ausgabeschicht befindlichen versteckten Schichten eine je nach Typ lineare oder nichtlineare Repr sentation der Hauptkomponenten der Daten erreichen 52 berwachte statistische Klassifikationsverfahren arbeiten in zwei Modi Im Trainingsmodus wird der Klassifikator trainiert den Merkmalsraum mittels einer Menge von Trainingsmustern zu partitionieren Anhand von Feedback Mechanismen k nnen dabei Vorverarbeitungsparameter als auch die Merkmalsextraktion optimiert werden Im Klassifikationsmodus wird ein durch einen d dimensionalen Merkmalsvektor repr sentiertes Muster anhand einer Entscheidungsregel einer Klasse zugeordnet Da die Verteilungswahrscheinlichkeiten der Klassen in der Praxis blicherweise unbekannt sind und im Trainingsmodus abgesch tzt werden finden aus der Mustererkennung bekannte optimale Verfahren wie die Bayes Regel meist keine direkte Anwendung Falls die Form der Verteilung bekannt ist z B Gau sch mehrere Parameter jedoch unbekannt spricht man von einem parametrischen Entscheidungsproblem Eine in diesem Fall bliche Herangehensweise stellt das Ersetzen der unbekannt
117. e werden anhand der Audiodaten Extrema des vorigen Zeitstempels und der bergebenen aktuellen Zeit die Puffer um einige Pixel verschoben und der entsprechende freie Bereich neu beschrieben Der Aufruf erfolgt dabei Timer gesteuert aus CVisualizerFrame heraus HRESULT ShowAudio AudioBuffer ab Dieser Funktion werden anzuzeigende Audiodaten bergeben aus denen anhand der aktuellen Zoomeinstellung Extremwerte extrahiert und diese im Datenpuffer abgelegt werden short GetSampleValue AudioBuffer ab PBYTE pSample Hilfsfunktion liefert unter Verwendung von Informationen zum aktuellen Audiodatentyp ein Sample an bergebener Speicherstelle p sample void Reset Setzt Variablen und Audiodatenpuffer zur ck und zerst rt die Zeichenpuffer HANDLE mutex boo ock bool UnLock Mittels des Handles und der beiden Funktionen wird der Zugriff innerhalb der Klasse serialisiert vor allem bez glich des Zugriffs auf den Datenpuffer durch mehrere asynchrone Threads Das Handle selbst wird im Klassenkonstruktor erzeugt und im Destruktor zerst rt 99 Anhang D Technische Dokumentation von GenMAD D 2 4 CAvailFilterList class CAvailFilterList public CDialog Dieser Dialog beinhaltet ein Baum Steuerelement das bei Initialisierung mit den kategorisierten DirectX Filtern gef llt wird die im System registriert sind Durch Klicken auf einen Button wird in void OnOK ein Filter des ausgew hlten Typs instanziiert und dem
118. ediaSeeking ppMS Hilfsfunktion f r Seeking Funktionalitat Diese Methode versucht ein stromaufw rts implementiertes IMediaSeeking Interface zur ck zu liefern HRESULT GetSeekingLongLong HRESULT _ stdcall IMediaSeeking pMethod LONGLONG LONGLONG pl11l Eine zweite Hilfsfunktion f r das Seeking Diese liefert zu einem gegebenen IMediaSecking die Adresse einer Funktionsimplementation der Schnittstelle und somit eine Sprungadtesse f r den Funktionsaufruf virtual GetCapabilities DWORD pCapabilities virtual CheckCapabilities DWORD pCapabilities virtual SetTimeFormat const GUID pFormat virtual GetTimeFormat GUID pFormat virtual IsUsingTimeFormat const GUID pFormat virtual IsFormatSupported const GUID pFormat virtual QueryPreferredFormat GUID pFormat virtual ConvertTimeFormat LONGLONG pTarget const GUID pTargetFormat 121 Anhang E Technische Dokumentation des Filter SDK LONGLONG Source const GUID pSourceFormat virtual SetPositions LONGLONG pCurrent DWORD CurrentFlags ONGLONG pStop DWORD StopFlags virtual GetPositions LONGLONG pCurrent LONGLONG pStop virtual GetCurrentPosition LONGLONG pCurrent virtual GetStopPosition LONGLONG pStop virtual SetRate double dRate virtual GetRate double pdRate virtual GetDuration LONGLONG pDuration virtual GetAvailable LONGLONG pEarli
119. egmentation for Audio Browsers Proc Interface Conference Sydney Australia July 1996 F Kurth Beitr ge zum effizienten Multimediaretrieval Habilitationsschrift Universitat Bonn 2004 F Kurth R Scherzer Robust Real Time Identification of PCM Audio Sources In Proc 114th AES Convention Amsterdam NL 2003 A T K Leong A Music Identification System Based on Audio Content Similarity work for the degree for Bachelor of Engineering Univ of Queensland Oct 2003 Linux New Media Award 2004 http www linuxnewmedia de Award 2004 award2004 Linux Simple DirectMedia Layer Projekt Homepage http www libsdl org Z Liu Q Huang Classification of Audio Events for Broadcast News IEEE Workshop on Multimedia Signal Processing Los Angeles 1998 B Logan Mel Frequency Cepstral Coefficients for music modeling International Symposium on Music Information Retrieval ISMIR 2000 MARSYAS a software framework for computer audition http opihi cs uvic ca marsyas 129 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 Literaturverzeichnis M F McKinney and J Breebaart Features for Audio and Music Classification in 4th International Conference on Music Information 2003 Media Transfer Protocol Specification MTP http msdn microsoft com library default asp url library en us dnwmt html mtp_spec asp
120. eiben in 114 die Erkennungsleistung des Systems von Audiost cken verschiedener L nge Dabei f llt auf dass die prozentualen Erkennungsraten von GSM kodierten Global Standard for Mobile Communications Mobilfunk Protokoll Daten denen von unkodierten PCM Daten mit nur 6dB schlechterem Signal zu Rausch Abstand stark hneln Neben seiner als effizient beschriebenen Eigenschaft kann dem Algorithmus daher wohl eine gute Robustheit im Umgang mit im Mobilfunksegment typischen Signalen attestiert werden 2 5 3 AudioDNA Das von Cano et al entwickelte AudioDNA System 22 verwendet zum einen Methoden aus der Bioinformatik zum anderen die in der Spracherkennung erfolgreich eingesetzten Hidden Markov Models HMM Diese stellen im vorliegenden Kontext abstrakte Generatoren in Form endlicher Automaten dar die zustandsbasiert eine reproduzierbare Folge von Symbolen eines Alphabets ausgeben Die Umwandlung des Signals in eine solche Symbolfolge findet in mehreren Schritten statt Zun chst werden MFCCs aus dem Signalspektrum erzeugt die zur Komprimierung der niederwertigeren Koeffizienten und deren Dekorrelation nachfolgend einer Diskreten Kosinustransformation DCT unterzogen werden Um die als Voraussetzung nachfolgender Schritte n tige Unabh ngigkeit der Merkmalsvektoren zu ihren Nachbarn n herungsweise zu garantieren werden auch die ersten beiden Ableitungen hinzugezogen Unter Verwendung akustischer Modelle wird nun zu der gegebenen Vektorsequen
121. eit dass eine Frequenz in einem Frame vorkommt Zwar ist die Frequenz keine Zufallsvariable jedoch erlaubt die Einf hrung dieser Interpretation in nachfolgenden Verarbeitungsstufen die Anwendung von Konzepten aus der Wahrscheinlichkeitstheorie Die Hauptkomponentenanalyse PCA 83 auch als Karhunen Loeve Transformation KL bekannt ist wie oben erwahnt relativ aufwendig zu berechnen Es existieren allerdings praxistaugliche Approximationen und Varianten PCA ist eine lineare Projektionstechnik und erm glicht durch eine lineare Transformation M Ri R die Repr sentation von d dimensionalen Daten durch eine niedriger dimensionierte Datenmenge mit Dimensionalit t lt d Erreicht wird dies durch sukzessive Bestimmung von Koordinatenachsen in der Richtung der gr ten Varianz der Datenmenge Richtungen verschwindender Varianz werden vernachl ssigt wodurch eine kompaktere Darstellung der Datenvektoren in reduzierter Dimension erreicht wird Die PCA ist optimal im Sinne des mittleren quadratischen Fehlers Gegeben eine ie l N minimiert die PCA M den entstehenden Menge von Vektoren x eR gt quadratischen Fehler N e YQ M Mx x M Mx i l Die PCA weist noch weitere interessante Eigenschaften auf auf die hier aber nicht weiter eingegangen werden soll Interessierte Leser seien an Bishop et al 17 verwiesen Durch die PCA l sst sich somit die Dimensionalit t ohne gr
122. eitstempel besitzt Das Sch tzverfahren versucht anhand bekannter Zeitstempel bekannter Events auf die Position in der Datei zu sch tzen und schiebt dabei zwei eingrenzende Positionierungs Zeiger sukzessiv auf einander zu wie im nachfolgend etwas vereinfachten Algorithmus dargestellt HRESULT CWorker SeekPos REFERENCE TIME rtNewPos FILE pFile long ctNewPos angeforderter Zeitstempel lEstSeekPos aktuell gesch tzte Dateiposition gesch tzte Position in Datei mit L nge 1XMLSize lEstSeekPos min lEstSeekPos 1XMLSize 64 suche den dort befindlichen Event per Hilfs Funktion if FindEventAtPos lEstSeekPos pFile xml rerum Id MAUER check den gefundenen Event exakt bereinstimmend if curEvent rtTimestamp rtNewPos uzReackos lusiceseekbos weicuien S_OK if curEvent rtTimestamp lt rtNewPos zu fr h Variablen setzen gt Ziel eingrenzen 1PosBefore 1EstSeekPos indexBefore curEvent index rtBefore curEvent rtTimestamp else zu sp t gt das Gleiche f r die After Variablen lEstSeekPos XmlStream xml falls before und after Index aufeinanderfolgen gt gefunden if indexBeforetl indexAfter indexAfter 0 UCUIRSClPOS ILPosmMiriceiep meeicwiem SOC else ggf rekursiv vor oder r ckw rts weitersuchen dazu neue Sch tzung
123. els einer perzeptuellen _Vergleichsoperation d P M x P M R unter Verwendung einer Transformation F M M aus D ergibt T 9 ie l N d F Q F D lt et Dabei ist P M die Potenzmenge von M Es sei angemerkt dass je nachdem ob es sich bei der Vergleichsoperation d um ein Fehler oder um ein Distanzma handelt statt der notierten hnlichkeitsbedingung lt auch ein Un hnlichkeitskriterium gt verwendet werden kann Neben der Suche nach einer Treffermenge ergibt sich im Bereich des Monitorings zus tzlich die Anforderung zu einem festen Q alle Stellen aller Dokumente D zu finden die entsprechend oben genanntem Schema mit der Anfrage bereinstimmen etwa zum Auffinden von Werbejingles in einem Radiostream Die Grenzen zwischen Suche und Monitoring k nnen aber je nach Einsatzgebiet und Zweck auch weniger klar sein Je nach Wahl der Vergleichsoperation handelt es sich bei der Suche um eine Identifikation eine Klassifikation oder um eine hnlichkeitsbewertung Im Fall der Identifikation wird das u U mehrfache Vorhandensein der Anfrage in der Datenbank berpr ft w hrend die Klassifikation 2 Audiomonitoring die Anfrage anhand eines hnlichkeitsma es in eine bestimmte Klasse einstuft Dies kann auch ohne Verwendung einer Datenbank geschehen M glich ist auch die Verwendung einer hnlichkeitsbewertung wie z B eines Rankingverfahrens In diesem Fall werden den Trefferkandidaten quantitative Bewertung
124. en Die durchg ngig guten Erkennungsraten der einzelnen Systeme werden dabei bewusst nicht zitiert da zum einen ein objektiver Vergleich aufgrund der Unterschiedlichkeit der verwendeten Audiodaten schwierig ist und zum anderen der Fokus auf den jeweils zugrunde liegenden Prinzipien der einzelnen Systeme liegt 2 5 1 AudioID Dieses am Fraunhofer Institut entwickelte System 2 unterscheidet sich insofern grundlegend von den anderen hier vorgestellten Systemen als es einem klassischen Mustererkennungs Paradigma folgend klassifikationsbasiert und in zwei Modi arbeitet Im Trainingsmodus wird eine Menge von Trainingsaudiosignalen sukzessiv in quidistanten Abst nden anhand von Frequenzb ndern im Spektrum von 300 6000Hz in eine Folge von Merkmalsvektoren im R ungewandelt wobei Allamanche et al 2 mit 4 16 arbeiteten Verwendet wurden verschiedene Audiomerkmale Zum einen g ngige Merkmale wie Bandenergie zum anderen das Spectral Flatness Measure SFM und der eng verwandte Spectral Crest Factor SCF zur Beschreibung spektraler Glattheit Aus diesem Audiofingerabdruck wird mittels eines einfachen k means Clustering Algorithmus der noch in Abschnitt 2 6 erkl rt wird eine kompakte nicht temporale Repr sentation des Audiost ckes in Form einer kleinen Menge von Code Vektoren im IR generiert das sogenannte Codebuch Die Anzahl dieser Vektoren ist abh ngig von einem zu definierenden maximalen RMSE
125. en In den nachfolgenden Kapiteln D 2 bis D 4 folgen Erl uterungen der in GenMAD enthalten Klassen globalen Schnittstellen und Strukturen D 1 berblick In Abbildung D 1 sind alle GenMAD Klassen in einem UML Diagramm dargestellt D 2 Klassen Nachfolgend werden alle Klassen von GenMAD dargestellt D 2 1 CAboutDlg class CNoouiEDIke puolre CDralog MFC Standarddialog mit Copyright Informationen der bei Aufruf des einzigen Mentipunkts Info ber GenMAD im Hilfemen angezeigt wird 97 Anhang D Technische Dokumentation von GenMAD CFilterCategory CAvailFilterList CAvailPinsDialog public char szNam CLSID clsID public CFilterCategory class CGUID2String public ConvertGuidToString CComBSTR GUIDFromString HRESULT protected WideToAnsi int GetDigit int protected CGraphController pGraphCtri int cFavFilters FavoriteFilters pFavFiltersi HTREEITEM hSubRootFavs CObList categories public CAvailFilterList DoDataExchange protected LoadFilters LoadFilterCategory HRESULT LoadFilterFavonites HRESULT CreateFilter IBaseFilter CreateFavorite IBaseFilter On0K OnCancel OnCreate int CAudioComboBox protected CTypedPtrList pFoundPins CGraphController pGraphCirt public CAvailPinsDialog DestroyWindow BOOL protected On0K OninitDialog BOOL DoDataExchange
126. en Werte durch Sch tzungen dar Falls keinerlei Informationen ber die Wahrscheinlichkeitsverteilung der Klassen vorliegen spricht man dagegen von einem nicht parametrischen Entscheidungsproblem in dem auf den Trainingsdaten basierte Entscheidungs grenzen konstruiert werden m ssen z B ber die nearest neighbour Regel oder die Verwendung eines Multilayer Perzeptrons Ein in der Praxis entscheidender Faktor betrifft die Auswahl der Trainingsdaten Durch unzureichendes Wissen ber zu klassifizierende Audiosignale und der daraus meist resultierenden Abh ngigkeit von Sch tzungen m ssen die im Trainingsmodus verwendeten Trainingsdaten besonderen Anspr chen gen gen Zum einen muss ihre Anzahl angemessen sein zum anderen sollten ihre Werte typisch f r nachfolgende zu klassifizierende Werte sein Bei Verwendung zu weniger Trainingsmuster kann der Klassifikator den Merkmalsraum nicht gut modellieren zu viele Daten k nnen hingegen zum Effekt des bertrainierens f hren bei dem sich der Klassifikator zu sehr den Parametern der Trainingsdaten angepasst hat Strategien zur Vermeidung solcher Probleme weisen auf rotierende Trainingsmengen hin die unabh ngig zu Optimierung und Evaluation eingesetzt werden 52 So verwenden Scheirer und Slaney 93 f r ihren Klassifikator zur Diskriminierung von Musik und Sprache je 20 Minuten an Audiodaten die sie aus Radioaufnahmen gewinnen Dabei legen sie Wert auf eine repr sentative Auswahl verschiede
127. en zugeordnet die sich aus ihrer hnlichkeit mit dem gespeicherten Dokumentenbestand ergeben Aufgrund der vielf ltigen m glichen Darstellungen der Signale gibt es eine Vielzahl von hnlichkeitsma en die sich meist der Wahrscheinlichkeitstheorie und der Statistik bedienen um ein Entscheidungsschema bereitzustellen 27 Die G te eines Monitoringsystems ergibt sich aus zweierlei Qualit tskriterien f r Information Retrieval Verfahren 37 Zum einen durch die technisch gut messbare Effizienz d h den m glichst sparsamen Umgang mit Ressourcen wie Rechenzeit und Speicherplatz zum anderen durch die Effektivit t d h die F higkeit des Systems den Nutzenden die ben tigte Information bei m glichst geringen Kosten an Zeit und Anstrengung anzubieten 37 Genauer untersucht man die Relevanz zwischen Anfrage und Datenbestand gegeben durch die Gr en Precision Anteil der relevanten Dokumente unter den gefundenen Dokumenten und Reca Anteil der relevanten Dokumente die gefunden wurden Nat rlich muss f r eine solche Analyse der zur ckgelieferten Treffer die tats chlich m gliche Treffermenge bekannt sein Optimal ist eine Treffermenge wenn beide Gr en einen Wert von 1 haben wenn n mlich genau alle relevanten Dokumente gefunden wurden Um das im Allgemeinen bestehende Problem des Abw gens zwischen Precision p und Recall r zu l sen entwickelte Van Rijsbergen 111 ein Einheitsma e mit Gewichtung 2 B D p r pE
128. enbank Generator Name des Filters das den Event erzeugt hat e Audiostrom Informationen z B Abtastrate und Kanalanzahl e Index fortlaufende Nummerierung e Visualisierer Name des Filters das den Event zur Visualisierung bergeben hat Nachfolgend werden wichtige Mechanismen von GenMAD erl utert 62 5 Implementation 5 1 2 DirectShow Events Events in DirectShow k nnen sowohl von Filtern als auch durch den Datenflussgraphen versendet werden z B zur Benachrichtigung ber das Ende des Datenstroms oder bei abnormaler Beendung durch den Benutzer Der verwendete Mechanismus folgt insofern dem in Windows g ngigen Schema zum Versand von Nachrichten engl messages als zum einen Events bis zu ihrer Verwendung in einer abfragbaren Warteschlange engl queue aufbewahrt werden und zum anderen ein Event einen numerischen Eventcode und zwei Parameter umfasst die als 32 Bit Integers entsprechend auch als Zeiger verwendet werden k nnen Der Zugriff erfolgt ber verschiedene Schnittstellen Filter verwenden das IMediaFventSink Interface zum Versand Applikationen die IMediaEvent und IMediaEventEx Schnittstellen zum Empfang Um einen Event empfangen zu k nnen muss eine Applikation ber das Vorhandensein eines Events in der Warteschlange informiert werden GenMAD verwendet dazu ein Window notification genanntes Verfahren Zun chst wird ein privater Eventcode definiert define WM GRAPHNOTIFY WM APP 1 WM_APP ist der per Definitio
129. enfalls in den Kombinator eingespeist der das Ergebnis 86 6 Anwendungen Tests und Bewertungen Monitoring Abb 6 11 Klassifikation von Frequenzb ndern der Kombination als dritten Visualisierungstrom an GenMAD bergibt Auf diese Weise k nnen im Visualisierungsfenster von GenMAD die drei Visualisierungssignale in Echtzeit verglichen werden Auch die Nachbearbeitung profitiert von den genannten M glichkeiten Ebenso wie Eventdaten k nnen auch Audiodatenstr me archiviert werden um sie sp ter wiederzuverwenden oder in anderen Applikationen einzusetzen Durch die bereits angesprochenen EventEx und Includerfilter k nnen Ereignisse manipuliert durch EventSplitter und Merger zerteilt und zusammengef hrt werden Wie in Abbildung 6 12 gezeigt bietet der punktuelle Einsatz von EventVisualizerfiltern die M glichkeit das Monitoring gezielt auf bestimmte Ereignisse einzugrenzen Nur gew nschte Ereignisdatenstrome und auf Wunsch nur bestimmte darin enthaltene Ereignisse werden angezeigt ber dieses Verfahren kann z B nach dem Auftreten eines bestimmten Werbejingles in einem Onlineradiostream gehorcht werden ohne durch andere Identifikationsmeldungen den berblick zu verlieren Hier setzt ein weiterer Vorteil an der im nachfolgenden Kapitel 7 weiter diskutiert wird Die modulare Erweiterbarkeit von GenMAD durch eigene mittels des SDK erstellte Filter Im genannten Beispielszenario lie e sich durch ein eventbas
130. enheiten gezielt charakterisiert werden Sprachsignale z B weisen in mehreren Bereichen des Spektrums deutliche charakteristische Eigenschaften auf BE Bandenergieanteil engl band energy ratio Anteil der Signalenergie eines Frequenzbandes an der Gesamtenergie in einem Frame BE t BER il Loi i Vol t Mittelfrequenz engl median frequency oder centroid frequency Amplitudengewichteter Mittelwert des Spektrums in einem Frame MedF t fs Spect t f df u f Spect t f df i Dies kann auch als erstes statistisches Moment der WDE in einem Frame interpretiert werden was genau den Mittelwert definiert 20 2 Audiomonitoring Bandbreite Die Varianz zweites statistisches Moment des als WDF interpretierten Spektrums eines Frames 7 ist ein Ma f r die im Signal enthaltene Frequenzstreuung Je gr er diese ist desto h her ist die Bandbreite Baden TEO Spect Pdf t me Spect t Pdf Cepstrum Cepstral Koffizienten Fouriertransformierte des gefensterten Frequenzspektrums eines Frames 4 also gewisserma en das Spektrum einer Zeitspalte des STFI Spektrums Die Bezeichnung Cepstrum selbst ist eine Permutation des Wortes Spectrum Zur folgenden Berechnung der Cepstral Koeffizienten Cep t r wird angenommen dass das Spektrum eines Frames wieder periodisch ist 115 Coplt r flog Spect t Near 2 Die Variable r steht dabei f r die Frequenz in der sich Frequenzen im Spektr
131. enkbare Einsatzgebiete finden sich im Umgang mit Audiobibliotheken die durch automatische Klassifikation von Audiosignaldaten gegen ber menschlichen Einordnungen sowohl von einer objektiveren Indexierung als auch von einer Geschwindigkeitssteigerung profitierten Die zur Klassifikation verwendeten Methoden entstammen meist der Mustererkennung und lassen sich grunds tzlich in berwachte und un berwachte Verfahren unterteilen 52 berwachte Klassifikation beschreibt die Zuordnung eines Objektes zu einer von mehreren vordefinierten Klassen w hrend die zu Beginn leeren Klassen im un berwachten Fall selbstst ndig erlernt werden Durch ihre Verwandtschaft teilen Audioklassifikationsverfahren viele Eigenschaften mit Methoden aus anderen wissenschaftlichen Gebieten wie z B der Biometrik Data Mining und der Bildanalyse Audiosignale werden blicherweise als Muster durch m glichst robuste d dimensionale Merkmale repr sentiert und erlauben so das Verwenden der auch in der Audioidentifikation eingesetzten und in Abschnitt 2 3 und 2 4 erl uterten Verfahren Die enge Verwandtschaft zu diesen Verfahren zeigt sich auch im grunds tzlich hnlichen Aufbau der aus Vorverarbeitung Merkmalsextraktion und Entscheidungsmodul besteht Entscheidend f r die Effektivit t des dabei verwendeten Merkmalsraumes ist wie gut Muster verschiedener Klassen voneinander separiert werden k nnen und somit die Qualit t der die Klassen abgrenzenden Entscheidungsgrenzen
132. entralen vierten Kapitel das entwickelte generische Monitoringsystem f r akustische Datenstr me konzeptionell vorgestellt werden 49 Kapitel 4 Entwurf des GenMAD Systems Vorgegebenes Ziel der vorliegenden Diplomarbeit ist die Konzeption Realisierung und erste Evaluation eines generischen Monitoringsystems f r akustische Datenstr me Das System soll in der Lage sein unter Verwendung einer oder mehrerer Eingangsaudiodatenstr me eine frei konfigurierbare Signalfluss Verschaltung zu erm glichen wobei Verarbeitungsergebnisse geeignet visualisiert und als formatierte Datei ausgegeben werden k nnen sollen Dies beinhaltet die folgenden Aspekte e Verarbeitung von On und Offline Eingangsdatenstr men d h sowohl in Echtzeit eingehende als auch in Dateien gespeicherte Audiodaten e Erstellung eines geeigneten Plugin Konzeptes mit m glichst universeller f r Nachfolgearbeiten gut zug nglicher Schnittstelle um Signalverarbeitungsmodule in das System einbinden zu k nnen Unterst tzt werden sollen zwei Signaltypen Zum einen herk mmliche zeitbasierte Daten x Z gt X quidistanter Abtastung mit impliziter Zeitachse zum anderen durch Ereignismengen x c Zx X modellierte nicht quidistant abgetastete Signale deren Tupel die Angabe eines expliziten Zeitpunktes t Z enthalten Letztere sind z B als Ausgabe von Identifikations oder Klassifikationsmodulen zu verstehen und werden nachfolgend als Events bezeichnet e Die Plugins
133. ersichtliche Weise Praprozessor Definitionen mit grundlegenden Angaben enth lt welche ein Entwickler anpassen muss Im Fall des MonitoringEventIncluder Filters sieht dies folgenderma en aus WE Anzahl d versch Pintypen define PINS AUDIO_IO 0 define PINS EVENT_IN 1 define PINS EVENT OUT 1 67 5 Implementation LH DER GUID Const GUID IID Monitcoringaiventineluder OxtcOScrda O6 Oxdsee 08x95 Once Ira Osea 0896 siira Ida Oxeacl IE DE Definition d Filter Parameter f r globale Makros Cerine PILIER CLSID IID MonitoringEventIncluder define FILTER CLASS CMonitoringEventIncluder define FILTER NAME MonitoringEventIncluder define FILTER NAME WIDE L MonitoringEventIncluder define FILTERPROP CLSID CLSID MonitoringBaseFilter PropertyPage define FILTERPROP CLASS CMonitoringBaseFilterPropertyPage In einer zweiten zentralen Datei des SDK namens GlobalMacros h wird unter Zuhilfenahme dieser Definitionen das globale CFactoryTemplate Feld automatisch durch Pr prozessorangaben generiert und erm glicht so eine korrekte Kompilierung des Filters In der neuen von CMonitoringBaseFilter ableitenden Filterklasse werden diese Angaben durch das Einbinden per Include der dritten wichtigen Datei SDK h in Variablenwerte z B Pin Felder geschrieben Dar ber hinaus werden so wichtige Funktionen parametrisiert Zus
134. ert weniger als 50 des RMS Durchschnitts betr gt Zur ckgeliefert wird der prozentuale Anteil dieser Low Energy Frames an der Gesamtzahl der Frames Durch sprachbedingte leise Frames besitzen Sprachdaten einen blicherweise h heren Wert dieses Merkmals Eine Auflistung weiterer Merkmale findet sich im Anhang der AES 04 Ver ffentlichung von Cano et al 23 Es sei darauf hingewiesen dass aufgrund der Ahnlichkeit mancher Audiomerkmale Redundanzen entstehen k nnen Weiterhin spielen die Form der Fensterfunktion und die L nge der Frames eine wesentliche Rolle bez glich der Aussagest rke einzelner Audiomerkmale e Nachbearbeitung Hierunter fallen verschiedene Anpassungen der Merkmalsfolge 21 e Ableitung der ermittelten Merkmale 2 bzw Erzeugung von Bitfolgen aus aufeinanderfolgenden Merkmalsvektoren 57 e Bildung von Varianz oder Mittelwert der Merkmalsfolge 93 e Algorithmen zur Verbesserung der Kompaktheit der Merkmale e Algorithmen zur Verst rkung der Robustheit e Algorithmen zur Normalisierung e Vorbereitung auf Hardware Anforderungen und andere nachfolgende Teilsysteme e systemspezifische Anpassungen Die hier vorgestellten Mechanismen des Front Ends erm glichen dem im Konzept von Cano et al 21 nachgeschalteten Fingerabdrucks Modellierer das Arbeiten auf einer kompakt aufbereiteten Repr sentation der Signaldaten wie im folgenden Abschnitt beschrieben wird 23 2 Audiomonitoring 2 4 2 Fingerabdruc
135. es Zeitraster erzeugt Der Prozess der Merkmalsextraktion ist in Abbildung 2 3 skizziert 10 2 Audiomonitoring Der so erzeugt Axdiofingerabdruck 21 engl audio fingerprint ist eine Folge solcher Merkmalsvektoren und stellt somit eine kompakte Repr sentation relevanter Teile des urspr nglichen Audiosignals dar 32 Der Audiofingerabdruck kann f r einen schnellen und ressourcenschonenden Vergleich mit in einer Datenbank gespeicherten Audiofingerabdr cken unter Einbeziehung eines Distanzma es verwendet werden Der Merkmalsextraktor F sollte dabei robust gegen ber Transformationen sein die das Signal in einem gewissen Rahmen ver ndern ohne es vollkommen zu verfremden Idealerweise sollte Fin der Lage sein zu dem selben Audiosignal auch nach verschiedenen moderaten Signaltransformationen einen m glichst identischen Fingerabdruck zu generieren Das Audiofingerabdruck Prinzips besitzt einige Vorteile e Formatunabh ngigkeit Der Audiofingerabdruck ist rein inhaltsbasiert und daher unabh ngig von Dateiformaten e Keine Daten au er dem Audiosignal zur Erzeugung n tig Der Audiofingerabdruck wird durch Verwendung impliziter Semantik im Audiosignal generiert e Kompakte Speicherung Im Vergleich zum Audiosignal ist der Platzbedarf geringer e Zentrale Metadaten Diese k nnen dadurch effektiver gepflegt und nach Identifikation eines St ckes mit diesem verlinkt werden e Effektiver Vergleich Da nur relevante Informationen vorh
136. es gew hlten Faktors Der Wert definiert die Anzahl Millisekunden je Pixel Eine nderung des Zoomwerts wird durch einen blauen vertikalen Strick in den beiden horizontalen Anzeigen visualisiert 94 Anhang C Benutzerhandbuch Die Andiosignal Anzeige stellt die Wellenform desjenigen Filters dar dem der Audiofokus zugewiesen wurde Diese Anzeige funktioniert nur in Echtzeit und wird ausgeblendet falls sich die Echtzeit Darstellung deaktiviert ist oder keinem Filter der Audiofokus zugewiesen ist Die rot dargestellte Skala zeigt die Zeitachse an In der Eventhsten Anzeige werden eingehende Events in Echtzeit aufgelistet Neue Event werden dabei oben angef gt Die Farbe eines Events entspricht dabei der Farbe desjenigen Filters im Manipulationsbereich das den Event visualisiert hat blicherweise als ein Filter vom Typ MonitoringEventVisualizer Die Liste enth lt alle zum jeweiligen Event verf gbaren Informationen in separaten in der Gr e ver nderbaren Spalten Auf entsprechende Weise und Farbigkeit werden in der Event Anzeige Events in einer Art Piano Roll angezeigt Die H he eines als vertikaler Strich dargestellten Events h ngt von seinem Score Ranking ab Zusammengeh rige Events eines Filters werden nach einem in Abschnitt 5 1 9 beschriebenen Verfahren ermittelt und durch einen dar ber liegenden horizontalen Balken dargestellt Diese Anzeige l sst sich im abgeschalteten Echtzeit Modus durch den darunter befindlichen Schieberegler
137. est LONGLONG pLatest virtual GetPreroll LONGLONG pllPreroll Diese Methoden stellen die Implementierung des IMediaSeeking Interfaces dar Allerdings leiten s mtliche Methoden die eingehenden Anfragen per GetPeerSeeking oder GetSeekingLongLong an stromaufw rts verbundene Filter weiter falls m glich Ansonsten wird ein Fehlercode zur ck geliefert HRESULT PreProcessAudio IMediaSample pSample In dieser Methode findet die gesamte Vorverarbeitung eines bergebenen Audiodatenblocks statt Dazu werden zun chst Block Eigenschaften wie Gr e Zeitstempel und Adresse der eigentlichen Daten ermittelt Falls das aktuelle Filter den Audiofokus zugewiesen hat wird eine AudioBuffer Objekt mit den Daten bef llt und an GenMAD bergeben Im Anschluss findet falls vorgegeben die Anpassung auf eine benutzerdefinierte Puffergr e statt dazu werden die Daten sukzessiv in einen anderen Puffer namens pSpecificBuffer kopiert und an ProcessAudio bergeben Falls am Ende der Routine Samples nicht verarbeitet wurden bleiben diese in pspecificBuffer bis zum n chsten Aufruf erhalten HRESULT ProcessAudio PBYTE pb int cb LONGLONG timestamp Von abgeleiteten Filterklassen zu implementierende Methode zur Behandlung eines bergebenen Audioblocks pb der L nge cb Der Parameter timestamp definiert dabei den Zeitstempel des Blocks HRESULT STDMETHODCALLTYPE GetPages CAUUID pPages Die Schnittstelle IS
138. eworks umfassen die gesamte Anwendung d h Expertenwissen zur Systemarchitektur z B GUI Frameworks e Bereichsspezifische Frameworks engl domain frameworks beinhalten Expertenwissen zu einem speziellen Anwendungsbereich Darunter fallen auch Multimedia Frameworks e Infrastruktur Frameworks engl support frameworks stellen Systemdienste bereit z B f r den Dateizugriff Klassifikation nach Architektur e architekturgetriebene Frameworks engl architecture driven werden angepasst durch Vererbung und berdefinieren Sie beinhalten komplexe Klassenhierarchien so dass zum einen ein hoher Einarbeitungsaufwand entsteht und zum anderen relativ viel Code zu schreiben ist Daf r bieten sie einen hohen Grad an Flexibilit t e datengetriebene Frameworks engl data driven dagegen werden anhand von Objektkonfigurationen und anderen Parametereinstellungen angepasst und sind daher leicht zu adaptieren Allerdings ist das Systemverhalten dadurch stark eingeschr nkt und unflexibel Gut entworfene Frameworks bieten blicherweise eine zweischichtige Architektur aus einer architekturgetriebenen Basis mit einer darauf aufsetzenden datengetriebenen Schicht Die weitverbreitete Einteilung von R Johnson 54 hnelt dieser Klassifikation sehr Nach diesem Ansatz entsprechen architekturgetriebene Frameworks in etwa sogenannten White Box datengetriebene dagegen Black Box Frameworks In diesem Zusammenhang wird auch von Anpassungs bzw
139. ezifischer Echtzeit Informationen realisieren wie etwa in einem Histogramm das Zeitverschiebungen Shift Werte des Audentify Algorithmus anzeigt Auch das Arbeiten mit Filtern und deren Verschaltung kann gerade im Hinblick auf Filterpipelines dadurch vereinfacht werden dass Filtermodule in Multifilter Containern zusammengefasst und wie Presets separat abgespeichert und geladen werden k nnen Ein weiterer interessanter Punkt ergibt sich aus der Automation von Abl ufen So bietet DirectX eine solche Automation an mittels der sich Parameterwerte dynamisch ndern lassen Diese nderungen lassen sich ebenfalls laden und speichern und bieten so eine M glichkeit f r die Einf hrung von Sessions bei denen ein bestehendes statisches Projekt aus Filtern mit zeitbasierten Dynamikinformationen angereichert wird Damit verwandt ist das Konzept der Stapelverarbeitung etwa zur sequentiellen Verarbeitung einer ausgew hlten Reihe von Eingabedateien gesteuert durch ein vom Benutzer erstelltes Skript Auch Filter bieten M glichkeiten f r Weiterentwicklungen So l t sich durch Bereitstellen entsprechender Funktionen die vollst ndige Pflege der Audentify Parameter ber das in GenMAD enthaltene dialogbasierte Konfigurationssystem abwickeln wodurch Tests vereinfacht werden Die zur Zeit implementierten Filter Konfigurationselemente k nnen zu diesem Zweck um Listen Auswahlboxen und spezifische Buttons erweitert werden Um die Flexibili
140. fo LONGLONG ITotalPlayTime SetParam HRESULT CString sName GetPininfo CPinInfo SetShowAudioData HRESULT CString sFilter AddPininfo public PIN_DIRECTION dir ResetPininfos CSlideToolBar peu een GetPin HRESULT a ing sConnectedPin i ee CMediaTypeDialog Core GePrincount int SetPositions Fe Sa ee ae GetPinCount int SetEnabled ol Updated GefPininfoNames int en AM _MEDIA_TYPE types NotifyFilter StopTimer AM_MEDIA_TYPE pConnectedMT public Disconnect HRESULT StartTimer int cTypes CPinInfo DisconnectPin HRESULT SetPos 3 UpdateFilterName Reconnect SetGraphCtri public N Update ShowPropertyPage HRESULT SetTotalPlayTime CMediaTypeDialog Clone CPininfo IsMonitoringSlave bool AddMediaType GetPin HRESULT GetColor int protected SetConnectedMediaType ShowMediaTypes SetColor OnCreate int iota Serialize GetSlave IMonitoringSlave OnHSeroll En DoDataExchange protected protected PreTranslateMessage BOOL OnlnitDialog BOOL Init CheckMonitoringSlave Onsize OnCreate int OnHScrollf DrawEvents Lock bool UnLock bool CEventListView protected bool bResetListView CVisualizerFrame pVFrame CList pEvents CListCtri ListCtr HANDLE mutex public CEventListView CEventListView OninitialUpdate SetParent AddEvent Action Reset PreCreateWindow BOOL protected Lock bool UnL
141. genannten Worker Threads der z B im Quellfilter Monitoring ML Reader eingesetzt wird 5 2 3 Konfiguration Um Filter Entwicklern eine einheitliche und einfache M glichkeit zur dialoggest tzten Konfiguration zu geben verf gt CMonitoringBaseFilter ber einen Mechanismus der die automatische Erzeugung eines Dialoges mit bis zu acht Property genannten Variablen erm glicht Diese Properties k nnen ber AddProperty unter Angabe von anzuzeigendem Namen Variablentyp und der Speicheradresse registriert werden Der Filtername wird automatisch als erste Property registriert Nach einer nderung durch den Benutzer ist es m glich auf nderungen bestimmter Properties zu reagieren in dem die Methode SetProperty berschrieben wird Intern werden diese Properties in einem Feld verwaltet auf das von einer f r den Dialog zust ndigen Klasse CMonitoringBase FilterPropertyPage zugegriffen wird Diese f llt die in acht Zeilen angeordneten Benutzerelemente des in Abbildung 5 5 abgebildeten generischen Dialogs Nicht verwendete Zeilen werden ausgeblendet Die Eventhandler basierte Verwaltung der Eingaben durch den Benutzer berschreibt anhand der Variablen Zeiger deren vorhandene mit neuen Werten Eigenschaften von MonitoringAudentifyFilter x Eigenschaften Filtername Monitoring4udentifyF ilter Index Dateiname JE data code diplom w3 A Anzahl Indexobjekte fi 0 Mismatches 3 Diffusity 1 Abbrechen bernehmen Abbildu
142. gs zu Leistungsspitzen von bis zu ca 18 CPU Last Ab einer Zahl von drei Instanzen st rzt die DLL jedoch reproduzierbar ab wodurch weitere Tests verhindert werden 84 6 Anwendungen Tests und Bewertungen 6 10a Klassifikator Prozessorlast 6 10b Prozessorlast in Abh der Abtastrate Projekt mit 12 70 Klassifikatorfiltern 70 60 60 ER 50 50 3 40 H 40 3 30 3 30 20 20 10 10 0 0 0 10 20 30 40 50 e A i 2 iz Abtastrate kHz Anzahl Instanzen Abb 6 10a b Die Prozessorlast von Filter Pipelines berechnet sich durch die modulare Filterstruktur von GenMAD direkt aus der den oben untersuchten Eigenschaften des Datenstromtyps und der Last der enthaltenen einzelnen Filter Die entwickelten Filter besitzen also insgesamt gute Skalierungseigenschaften Durch etwa den Einsatz von Pipelinekombinationen wie in Kapitel 6 1 dargestellt lassen sich dabei die Vorteile der unterschiedlichen Klassifikationsleistungen und der skalierbaren Prozessorlast vereinen Die im Vergleich zu Audiodaten sehr geringe Datengr e von Ereignisdaten erlaubt dar ber hinaus den zahlreichen flexiblen Einsatz ereignisbasierter Filter mittels denen ein Verarbeitungsnetzwerk zur Unterst tzung von Klassifikation oder Identifikation umgesetzt werden kann Die ungenutzte Prozessorleistung kann dann effektiv in Form hochwertiger Vorverarbeitungsfilter eingesetzt werden wie in Kapitel 6 3 gezeigt 6
143. haften w re mit keinem anderen Multimedia Framework m glich gewesen 89 7 Zusammenfassung Diskussion und Ausblick Ausblick Die gesamte GenMAD Architektur wurde bewusst auf Erweiterbarkeit hin ausgelegt Entsprechend vielf ltig sind die M glichkeiten das System durch weitere Entwicklungen zu erg nzen Die in der GenMAD Applikation bereits vorhanden M glichkeiten zur Visualisierung von Audio und Eventdaten lie en sich durch ein konfigurierbares System ausbauen so dass sich der Benutzer die Bestandteile des Visualisierungsfensters flexibel aus einer Menge von Visualisierungselementen zusammenstellen kann Solche Elemente k nnen z B eine Echtzeit Visualisierung von Audiomerkmalen wie RMS oder ZCR erm glichen oder per STFT das Frequenzbild eines Audiofilters darstellen Die dazu verwendeten Algorithmen k nnen entweder direkt implementiert oder in Form von DLLs mit den entsprechenden Filtern geteilt werden Eine dritte M glichkeit besteht darin Filter die Merkmalsvektorfolge direkt an GenMAD versenden zu lassen wodurch eine Mehrfachberechnung umgangen werden kann Solche Merkmalsdaten lassen sich z B wie in Abbildung 6 1 als Histogramm anzeigen evtl sogar mit einem chronologischen Verlauf Dieser kann durch einen Farbverlauf verdeutlicht werden bei dem aktuelle Daten mit hoher Farbintensit t ltere Daten dagegen zunehmend blasser dargestellt werden Noch etwas weiter gedacht l t sich auch die Darstellung beliebiger filtersp
144. he Signale der L nge m blicherweise die sogenannte schnelle Foutiertransformation engl Fast Fourier Transform FFT verwendet die in Rechenzeit O mlogm berechnet werden kann Da das fouriertransformierte Signal keine zeitliche Informationen enth lt wurde die gefensterte diskrete schnelle Fouriertransformation engl Short Time Fourier Transformation SIFT manchmal auch Windowed Fourier Transformation WFT entwickelt die f r Fensterfunktionen mit Tr ger berechnet werden kann Die STFT transformiert ein gefenstertes Signal x r der Fensterlange N in Rechenzeit O N log N und erm glicht auf diese Weise die zeitliche Zuordnung spektraler Informationen Das Betragsquadrat der STFT wird als diskretes Spektrogramm von x bezeichnet N 1 2m Spec t f STET t f PAY xn wane N Das Spektrogramm beschreibt also die Faltung von x und der Impulsantwort w eines Filters zur angegebenen Frequenz f Somit stellt es eine Zusammenf hrung der Frequenzmessungen einer Reihe einzelner Filter dar deren Frequenzb nder um ein Vielfaches amp der Grundfrequenz f zentriert sind f k f wobei amp die Centerfrequenz des amp ten Frequenzbandes ist Eine beispielhaftes Spektrogramms ist in Abbildung 2 7 dargestellt 17 2 Audiomonitoring Die positiv definierte Funktion Spect t f kann auch probalistisch als unnormalisierte Wahrscheinlichkeitsdichtefunktion WDF ber die Frequenz f interpretiert werden n mlich als Wahrscheinlichk
145. hend von 1 kHz denen ein Wert von 1000 Mel zugeordnet ist jeder Wert m der Mel Skala diejenigen Frequenz fdar die g m m e mal so hoch wahrgenommen wird 63 Durch beide Skalen werden Frequenzen in h heren Frequenzbereichen st rker zusammengefasst Die folgende keineswegs ersch pfende Auflistung liefert einen berblick ber wichtige klassische Audiomerkmale 21 27 115 Diese entstammen urspr nglich verschiedenen technischen Anwendungsszenarien vor allem statistischer und akustischer 19 2 Audiomonitoring Art wie der Signalverarbeitung von Sprachsignalen bzw der Diskriminierung von Sprache und Musik Die Berechnung der einzelnen Merkmale erfolgt im Allgemeinen framebasiett Spektrale Merkmale Lautheit engl volume loudness short time energy Beschreibung der Signalamplitude Energie zu einem Zeitpunkt 7 unter Verwendung einer Fensterfunktion r aquivalent berechenbar sowohl im Spektral als auch im Zeitbereich f Spect t f df fi x r w r t dr Vol t en f w r dr w r dr f r woar 0 Bandenergie Energiebetrag in einem Frequenzband f A zu einem Zeitpunkt 7 unter Verwendung einer Fensterfunktion w r fi Spect t f df i TAGE Jo Ta Haitsma et al 45 verwendeten in 33 Frequenzb ndern die Vorzeichen der Differenz jeweils zweier benachbarter B nder um einen 32 Bit langen Hashwert zu generieren Verschiedene Signaltypen k nnen aufgrund ihrer spektralen Eig
146. hmen im Fall von Quelldateifiltern ergriffen werden Gleiches gilt f r den Fall dass ein Filtername bereits im Graphen vorhanden ist denn manche Methoden des DirectShow Graphen arbeiten auf den internen Filternamen und nicht auf den entsprechenden GUIDs In einem solchen Fall wird versucht vor dem Einf gen automatisch einen neuen internen Namen zu erzeugen Diese internen Namen k nnen allerdings nach der Instanziierung nicht mehr ge ndert werden Die tats chlich im Manipulationsbereich von GenMAD angezeigten Filternamen von GenMAD Filtern sind davon allerdings unabh ngig und somit unbetroffen und k nnen ber die Konfiguration des Filters editiert werden 64 5 Implementation 5 1 6 Filter Konfiguration Falls ein DirectShow Filter die SpecifyPropertyPages Schnittstelle implementiert kann seine Konfiguration ber einen ein oder mehrere Seiten umfassenden modalen Dialog editiert werden Die einzelnen Seiten k nnen auch eine Grafik und entsprechende Ereignisbehandlungsmethoden beinhalten um z B das Drehen an virtuellen Kn pfen zu erm glichen Der in CFilterContainer ShowPropertyPage implementierte Aufruf des Dialogs verwendet die Funktion OleCreatePropertyFrame die ein eigenst ndiges OLE Objekt mit den genannten Eigenschaften erzeugt 5 1 7 Zeit und Uhren Jede Zeitangabe basiert in GenMAD auf einer kleinsten Zeiteinheit die 100 Nanosekunden umfasst Weiterhin werden Zeitangaben z B Zeitstempel von Datenbl cken bl
147. hnittstellen oder Funktionsnamen sind wie folgt durch einen besonderen Schrifttyp gekennzeichnet IMonitoringMaster In dieser Arbeit verwendete Quellcode Passagen sind ebenfalls mit dieser Schrift versehen sind jedoch zus tzlich grau unterlegt um sie vom restlichen Textfluss abzuheben for int i 0 i lt n i Wenn es n tig war sich in einem Satz einer Personifizierung zu bedienen so wurde stets die maskuline Form gew hlt z B der Benntzer Dies geschah keineswegs um weibliche Leser zu irritieren sondern vielmehr um ein Textbild zu bewahren dass dem gewohnten Lesefluss m glichst dienlich sein sollte Kapitel 2 Audiomonitoring In diesem Kapitel werden der Begriff des Audiomonitorings verwandte Bereiche und darauf basierende Anwendungen erl utert Dazu wird zun chst im Abschnitt 2 1 der Begriff des Multimedia Monitorings definiert und der Zusammenhang der einzelnen Teilkomponenten im allgemeinen Fall besprochen In den beiden darauf folgenden Unterkapiteln wird dies konkretisiert indem eine zentrale Komponente des Audiomonitorings die inhaltsbasierte Audioidentifikation und der damit verbundene Audiofingerabdruck erl utert werden bevor im Abschnitt 2 4 ein generisches Audioidentifikationssystem beschrieben wird Beispiele existierender Systeme und der ihnen jeweils zugrunde liegenden Theorien sind im Kapitel 2 5 aufgef hrt Der Abschnitt 2 6 befasst sich mit dem eng verwandten Thema der Audioklassifikation und zeigt sowohl Tech
148. icherweise relativ als Streamtime in Relation zu einer Startzeit des entsprechenden Streams angegeben DirectShow verwendet in Form des GraphBuilder Objektes eine sogenannte Referenzuhr um alle Filter des Graphen zu synchronisieren Diese wird z B durch einen Baustein auf der Soundkarte betrieben und ber den entsprechenden Treiber bereitgestellt Falls statt exakter Synchronit t eine maximale Performanz erforderlich ist kann die Referenzuhr ber die Toolbar auf NULL gesetzt werden und erm glicht dem Graphen so ein zeitungebundenes Arbeiten In diesem Fall sollte jedoch falls enthalten der Audio Renderer ein sogenannter Null Renderer sein der eingehende Audiodaten nicht an die Soundkarte weiterreicht da sonst keine kontinuierliche Wiedergabe garantiert werden kann 5 1 8 Datenfluss Abspielkontrolle amp Seeking GenMAD bietet ber das DirectShow Interface MediaContro die drei blichen Operationen zum Abspielen an Start Pause und Stop Die m glichen berg nge der entsprechenden drei Graph und auch Filterzust nde sind dabei nur zwischen benachbarten Zust nden m glich also Start gt Pause gt Stop gt Pause gt Start Dabei senden Quellfilter im g ngigen Push Modus auch im Pause Zustand Daten die sie so ber ihre Ausgangs Pins lange an Eingangs Pins nachgeschalteter Filter weiterschieben bis diese blockieren Genau das tun Renderer nach Erhalt eines Datenblockes im Pausemodus Dies entspricht dem aus der Videotechni
149. icht um eine native Quicktime Videodatei handelt wird unter Verwendung der zum Dateiformat passenden Movie Importer Komponente ein Movie Objekt aus der Datei erzeugt Dieses Objekt wird an die Applikation zur ckgeliefert 3 3 2 Java Media Framework Das Java Media Framework JMF 53 stellt als optional installierbarer Teil der Java Media API umfangreiche Funktionalit t im Umgang mit zeitbasierten Daten bereit Dies umfasst in der aktuellen Version 2 unter anderem Capturing Datenverarbeitung Streaming via RTP RTCP und ein flexibles Plugin Modell Gro er Vorteil der JMF Architektur ist die zugrunde liegende Plattformunabh ngigkeit mit gleichzeitiger Unterst tzung der g ngigen Dateiformate Aus Performanzgr nden steht sowohl eine plattform bergreifende Pure Java Variante als auch Performance Packs mit nativem Code f r verschiedene Plattformen bereit JMF verwendet ein fundamentales Datenverarbeitungsmodell aus Eingabe Verarbeitungs und Ausgabeschicht mit den Schl sselelementen Capturing Device Data Source Player Processor und Data Sink das ber die Implementation von Interfaces mit Hilfe von sogenannten Managern erweitert werden kann JMF kennt vier verschiedene Typen von Managern die ihre Daten mittels einer Registrierungsdatenbank verwalten e Manager Handhabt die Erzeugung von JMF Klassen e PackageManager Verwaltet verf gbare JMF Klassen e CaptureDeviceManager Verwaltet die verf gbaren Capturing Ger te e
150. id e Varianz des Spectal Roll Off Diese Merkmale wurden nach in verschiedenen Ver ffentlichungen 108 93 34 publizierten Angaben zu G te und Geschwindigkeit ausgew hlt Die Werte werden aus Hamming Frames mit einer Fensterl nge von 512 Samples und einer berlappung von 384 Samples gewonnen Varianzen beruhen auf den in einem Ringpuffer gehaltenen Framewerten der letzten Sekunde Die Diskriminierung in die genannten drei Klassen erfolgt durch ein zweistufiges Verfahren Zun chst wird das Signal anhand eines Energiema es auf Stille untersucht Zwar wurden auch andere Verfahren wie unter anderem das von Panagiotakis amp Tziritas 82 beschriebene Verfahren untersucht die Klassifikationsleistung war jedoch bei dem Energiema am h chsten Dieses vergleicht den berechneten Wert mit einem konfigurierbaren Schwellwert Dessen Standardwert wurde empirisch ermittelt in dem eine Auswahl von als Stille deklarierten Audiosignalen untersucht wurde Falls keine Stille klassifiziert wurde wird ein auf Trainingsdaten arbeitendes k NN Verfahren zur Klassifikation in Sprache und Musik eingesetzt welches sich aus Gr nden der Performanz eines k d Baumes bedient um darin die trainierten Merkmale zu halten k d B ume sind Verwandte klassischer bin rer B ume die wie in der grundlegenden Arbeit von Friedman Bentley und Finkel 39 beschrieben d dimensionale Daten in Zeit O n og n in achsenparallelen Hyperebenen ablegen k nnen wobei O n Pl
151. ie der MP3 Kodierung oder durch Watermarking Mechanismen entstehen Weitere Ursachen sind physikalisch begr ndet wie das Zusammenspiel von Lautsprecher bertragungseigenschaften des akustischen Kanals der Luft und Mikrofon engl loudspeaker microphone transmission Ls Mzc Auch unter solchen Einfl ssen muss das Verfahren einen hohen Grad an Stabilit t aufweisen d h eine m glichst hohe Deformationstoleranz besitzen Da die genannten Signalver nderungen bei digitalen Signalen zu Bit nderungen auf Ebene einzelner Samples f hren macht ein samplegenauer Brure Force Vergleichsmechanismus von Anfrage und Datenbankdokument keinen Sinn Hinzu kommt die Gr e von Audiodokumenten die in erster Linie durch die auf menschliches H rempfinden hin gew hlten hohen Abtastraten entstehen Bei CD Qualit t beispielsweise betr gt die aus der Multiplikation von Abtastrate Werte Aufl sung in Bit und Kanalanzahl entstehende Gr e ca 172 kb s d h ein einziges Musikdokument mit einer L nge von drei Minuten hat eine Audiodatengr e von rund 30MB Vergleiche in solchen Dimensionen sprengen aktuelle Rechenleistungsgrenzen bei Weitem vor allem im Hinblick auf die Kapazit t von Audio Datenbanken die aktuell bis zu 10 Dokumente enthalten 2 Audiomonitoring berlappende Fensterung Merkmalsextraktion je Fenster fy fo eo Folge von Merkmalsvektoren Abbildung 2 3 Prinzip der Merkmalsextraktion 2 3 Der Audiofingerabd
152. iehe z B 30 f r eine Auswahl von DirectX Filtern e DirectX besitzt eine durch seine zehnj hrige Entwicklungsgeschichte die enge Verzahnung mit dem Windows Betriebssystem und den immensen Verbreitungsgrad begr ndeten Entwicklungsvorsprung hohe Performanz die einhergeht mit in zahlreichen komplexen Projekten eingehend getesteter Stabilit t e Das Aufsetzen auf den DirectX Standard statt auf eine propriet re L sung f hrt zu weiteren Vorteilen So wird obwohl dies keineswegs Voraussetzung ist die Einarbeitung bei vorhandenem Wissen um DirectX erleichtert das stabile COM Grundger st reduziert die Menge potentiell enthaltener Fehler um eine entscheidende Schicht und das kostenlos bereitgestellte SDK erlaubt auch durch seine gute Dokumentation eine leichte und tiefgehende Erweiterung 52 4 Entwurf des GenMAD Systems e Uber das Cedega Projekt 24 lie e sich in Zukunft auch eine Portierung des Systems nach Linux gestalten wobei der Funktionsumfang dies derzeit noch nicht erlaubt e Die unter anderem durch das WDM Treibermodell in DirectX enthaltene Abstraktion von der Hardware Ebene erlaubt den Zugriff auf spezielle Hardware F higkeiten wie z B extern konfigurierbare Capturing Treiber mit erweitertem Funktionsumfang die ber Plugins verf gbar gemacht wurden e Der durch DirectShow bereitgestellte gro e Funktionsumfang umfasst auch den Zugriff auf via Internet verf gbare Dateien die durch die Angabe ihrer URL wie lokale D
153. iertes Filter z B ein Emailversand beim Eintreffen des gesuchten Jingles realisieren MonitoringAudentifyFilter MonitoringEventincluder Monitoring ger MonitoringEventVisualizer 1 MonitoringEventNullRenderen MonitoringXMLReader MonitoringEventVisualizer 2 Abb 6 12 Vergleich von archivierten und Echtzeit Eventdaten 87 Kapitel 7 Zusammenfassung Diskussion und Ausblick In dieser Arbeit wurde ein generisches Monitoringsystem f r akustische Datenstr me konzipiert und realisiert Dieses GenMAD genannte System erm glicht die flexible freie Verschaltung grafische Konfiguration und Echtzeitvisualisierung von Signalverarbeitungsmodulen die auf dem DirectShow Plugin Standard beruhen und die optional eine eigens entwickelte erweiterbare Schnittstelle f r zus tzliche Funktionalit t implementieren k nnen Unterst tzt werden dabei explizit die Verarbeitung von sowohl Audio als auch Ereignisdaten die etwa von Klassifikatoren generiert werden k nnen sowie M glichkeiten zur Einbindung von Live und Offlinedaten wobei letztere lokal und im Internet angesprochen werden k nnen Dar ber hinaus bietet das System die M glichkeit Datenstr me beider Typen geeignet formatiert in Dateien abzuspeichern Neben der zentralen Host Applikation wurden eine Reihe von Plugins des genannten Typs realisiert die Datenstr me vereinen verteilen ver ndern erzeugen oder zerst ren k nnen Insbesondere wurde ein Modul z
154. iet das sich aus der Notwendigkeit von Kontrollmechanismen ergibt ist das sogenannte Audiomonitoring Dieses befasst sich mit der Echtzeit berwachung von Audiostr men und verwendet Algorithmen aus der Audioidentifikation und klassifikation Anwendung ergibt sich hierbei z B aus Musik Tauschb rsen bei denen Musikst cke illegal ausgetauscht werden Da deren Benutzer wie im Fall von Napster 77 einfache namensbasierte Filtermechanismen umgehen konnten hat die Musikindustrie ein starkes Interesse an inhaltsbasierten Kontrollmechanismen 90 Ebenso k nnten Benutzer solche Identifikationsfunktionalit ten nutzen um Inhalte zu verifizieren 109 Verwandte Szenarien ergeben sich aus der Protokollierung von Radio und Fernsehsendungen um Lizenzgeb hren abzurechnen oder das Senden von Werbebl cken zu berpr fen Die in diesem Zusammenhang oft genannten Verfahren zur Verwendung von sogenannten Andiowasserzeichen also mittels Methoden der Psychoakustik eingebetteten Metadaten zur Markierung eines St ckes die nur minimale Ver nderung des Klanges hervorrufen sind ebenfalls nur in bestimmten F llen anwendbar und k nnen im Allgemeinen ein inhaltsbasiertes Erkennen nicht ersetzen Die Szenarien in denen Audiomonitoring angewandt werden kann sind jedoch keineswegs auf Musik beschr nkt obwohl es sich z Zt wahrscheinlich um das wirtschaftlich umfangreichste Anwendungsszenario handelt Vielmehr werden potentiell alle Arbeitsfelder umfasst in denen
155. ilterContainer SetMode OnDateiSwitchReferenceClock CallMaster HRESULT CFillerContainer OnButtonAddURL BroadcastParam HRESULT ini Protected OnButtonAddFile ShowAudio HRESULT Release WindowProc LRESULT OnButtonVisualizer ShowEvent HRESULT ee OnCreate int OnButtonSetsync NotifyDiscontinuity HRESULT Races OnButtonNeu NotifyFilterChange HRESULT Serialize 2 SARA GetFilter IBaseFilter NonDelegatingQueryinterface HRESULT SetFilter GetName CString CSlideToolBar a ee EEAO GetFilterName CString GetlD int public ChangeSourceFile ne CSliderCtrl m_wndSlider lt lt interface gt gt AddFilter HRESULT SetFilterName CToolbarEdit m_wndEdit IMonitoringSlave Init GetCLSID CLSID CSpinButtonCtrl m_wndSpin NotifyFilters UpdateConnectedFilterName CToolbarEdit m_wndEdit_Rate public SetDirtyFlag UpdateName CSpinButtonCtrl m_wndSpin_Rate SetIMonitoringMaster HRESULT UpdateNameExt CFontm_font CallSlave HRESULT Draw int iPos SetBufferSize SSS ContainsPos bool int Rate GetBufferSize int lt SetPos FreeResources GetX int protected Ready int Y t GetY int CGraphController pGraphCtri SetFilterName F GetWidth int lt lt static gt gt BOOL bStartOfScroll GetAllProperties int CPinInfo GetHeight int UINT nTimerlD GetProperty HRESULT GetRect RECT CWnd pParent SetProperty HRESULT public GetPininfo CPinIn
156. im nachfolgenden Kapitel 3 erl utert und in Form existierender Frameworks konkretisiert deren Eigenschaften und Funktionsweisen verdeutlicht wurden Das grundlegende Konzept des Monitoringsystems wurde in Kapitel 4 formal beschrieben Weiterhin wurden Unterschiede und Gemeinsamkeiten mit bestehenden Systemen aufgef hrt sowie m gliche konzeptionelle Alternativen diskutiert Auch zentrale Mechansimen des Systems 88 7 Zusammenfassung Diskussion und Ausblick und das Zusammenspiel von Host Applikation und Verarbeitungsmodulen wurden in diesem Kapitel vorgestellt Ein berblick ber die konkrete Realisierung des Systementwurfs und die dabei umgesetzten L sungen zentraler Probleme bestimmen den Inhalt von Kapitel 5 Verschiedene Leistungsaspekte und die Laufzeiteigenschaften aller entwickelten Elemente dieses Monitoringsystems wurden anschlie end in Kapitel 6 beschrieben Abschlie end wurden verschiedene Anwendungen des entwickelten generischen Monitoringsystems aufgef hrt und m gliche weitere Einsatzgebiete und konkrete L sungen realer Probleme diskutiert Der Anhang umfasst sowohl Hinweise zur Weiterentwicklung des Systems und der Module als auch das Benutzerhandbuch und die technische Dokumentation des entwickelten generischen Monitoringsystems Wie in den Kapiteln 2 7 und 4 1 dargestellt wird existiert nach Wissen des Autors zur Zeit kein Monitoringsystem das die gerade genannten Eigenschaften besitzt Insbesondere die M glichkeit
157. inken Seite ist die Klassifikation von Musikdaten auf der rechten die von Sprachdaten abgebildet Zu sehen sind korrekte und falsche Zuordnungen in Abh ngigkeit der Verteilung der Grunddaten auf Trainings und Testdaten Die Zeitangaben entsprechenden dem Anteil der zum Training verwendeten Daten der jeweiligen Klasse Klassifikationsparameter 44 1kHz Abtastrate k 5 3 Frame Nachbearbeitung siehe Abschnitt 6 1 6 In der Abbildung zeigt sich dass jedes Merkmal mehr oder weniger gut getrennte Wertebereiche bez glich der beiden Klassen besitzt 6 1 3 Einfluss der Anzahl von Trainings und Testdaten In diesem Test wurde untersucht in welchem Ma die Anzahl der Trainings und Testdaten die Klassifikationsleistung beeinflusst Dazu wurden die 20 Minuten Daten jeder Klasse nacheinander in zwei verschiedene disjunkte Mengen von Trainings und Testdaten unterteilt und die resultierende Klassifikationsleistung f r die beiden Klassen separat gemessen Alle Varianten wurden mehrfach kreuzvalidiert um den Einfluss einzelner Audiofragmente zu minimieren Die Klasse Sonstiges enth lt die unklassifizierten Merkmalsvektoren Dieses Verfahren wurde auch in den nachfolgenden Parametertests verwendet Das Ergebnis ist in Abbildung 6 2 dargestellt Zu erkennen ist dass Sprachdaten zwar mit steigender Menge an Trainingsdaten besser erkannt werden dass Musik jedoch immer weniger korrekt eingeteilt wird Dabei nimmt die Qualit t der Zuordnungen f r Musik sch
158. ion bestimmter Interfaces jedes im Graphen enthaltenen Filters voraus DirectX bietet dar ber hinaus weitere meist in COM Objekte Schnittstellen verpackte Funktionalit t wie erweiterte Synchronisations und Debuggingmechanismen die auch in Verbindung mit DirectShow verwendet werden k nnen Ein Nachteil von DirectX ist das Fehlen weitergehender QoS Funktionen Zwat ist DirectX bisher nur f r Windows verf gbar das mittlerweile in Cedega umbenannte WineX Projekt 24 stellt eine Portierung von DirectX f r Linux zur Verf gung die z B von Spieleentwicklern zahlreich genutzt wird um popul re Titel auch unter Linux verf gbar zu machen 48 3 Multimedia Frameworks Abschlie end soll auf ein weiteres Multimedia Framework eingegangen werden dessen Umsetzung allerdings erst noch bevorsteht aufgrund der enthaltenen Konzepte jedoch in die hier vorgelegte Aufz hlung geh rt 3 3 7 MPEG 21 Ziel des MPEG 21 Standards 71 ist die Schaffung einer vereinheitlichten Infrastruktur f r Multimedia Kommunikation und Dienstleistungen die allen Produzenten Distributoren und Benutzern gleichberechtigt Homogenit t Transparenz und Kompatibilit t bieten soll MPEG 21 beruht auf zwei Konzepten n mlich dem fundamentalen Digital Item einem strukturierten digitalen Objekt mit einer Standardrepr sentation und Metadaten sowie der darauf aufbauenden Menge von Benutzerinteraktionen die Erzeugung Austausch Transport Verarbeitung Konsumierung
159. ird eine grundlegende Behandlung durch das umgebende DirectShow Framework erm glicht die z B die Erzeugung einer Instanz anhand eines identifizierenden COM Bezeichners erm glicht Durch Ableiten weiterer DirectShow Klassen und berladen von Methoden sind entsprechende Anpassungen z B des lokalen Datentransports von Filter zu Filter m glich Durch optional implementierte DirectShow Schnittstellen ist es m glich Methoden zu definieren deren Funktionsumfang ber die vom DirectShow System bereitgestellten minimalen F higkeiten hinausgeht Dazu z hlen z B Funktionen zur Neu Positionierung von Zeigern eines Quellstroms um bei der Wiedergabe einer Datei vor oder zur ckzuspulen oder die Unterst tzung von Speicher bzw Ladefunktionalit t Um eigene Funktionen bereitzustellen k nnen daher eigene COM Interfaces unter Angabe einer GUID definiert und implementiert werden Der GraphBuilder von DirectShow liefert unter Angabe dieser Interface GUID einen Zeiger auf die so definierte Schnittstelle Das entsprechend Abbildung 4 1 von GenMAD Filtern unterst tzte IMonitoringSlave Interface soll die von DirectShow bereitgestellte vor dem gegebenen Anwendungshintergrund um zus tzliche Funktionen erweitern und erm glicht so die in Kapitel 5 erl uterte Implementation der zu Beginn dieses Kapitels vorgegebenen Zielfunktionalit t Das IMonitoringSlave Interface umfasst vor allem folgende Funktionsbereiche e Registrierung beim GenMAD Host e Methoden z
160. irectShow Filter public IspecifyPropertyPages Property Pages public CPersistStream Speichern interner Variablen public IMonitoringSlave unser Interface public IMediaSeeking Position setzen Diese Klasse beinhaltet Filter spezifische Themen wie Datentransport Format Abgleich und andere Ein neues zu erstellendes Filter das von dieser Klasse ableitet kann dadurch auf einem festen Fundament aufbauen das s mtliche Low Level Arbeit abdeckt und dem Entwickler die notwendige Verantwortung abnimmt Dadurch kann dieser sich auf die wesentlich Bestandteile des neuen Filters konzentrieren und somit die Produktivit t nachhaltig steigern Alle im Rahmen dieser Diplomarbeit vorgestellten Filter leiten direkt von CMonitoringBaseFilter ab CMonitoringBaseFilter ist eine Klasse die zwischen DirectShow Funktionalit t und GenMAD Kommunikation vermittelt Dazu bedient sie sich einer Reihe wichtiger Eigenschaften char sFiltername 255 GraphController Name des Filters PBYTE pShowAudioBuf Datenpuffer f r zu anzuzeigende Audiodaten IMemAllocator m pAllocator Allokator zur bergabe der Daten LONGLONG m 11SamplePosition aktuelle Stream Position Ceres Sem m Lock Took Aurii yall geral eiert die Pins maximal je zwei Eventpins CMonitoringAudioInputPin pAudiolInputPin CMonitoringAudioOutputPin pAudioOutputPin CMonitoringEventInputPin pEventInputPin 2 CMonitoringEventOutputPin pEventOutputPin 2
161. it aus dass die Ausgabe eines Filter direkt oder indirekt Teil der eigenen Eingabe ist Filter gibt es dar ber hinaus in verschiedenen Typen Die grunds tzlichste Unterteilung in drei Filterklassen leitet sich direkt aus den jeweiligen Ein und Ausgangsverbindungs Kardinalit ten ab Ouellfilter sind Filter mit Ein F 0 Rendererfilter diejenigen f r die gilt Aus F 0 Als Transformatorfilter werden dagegen alle Filter F bezeichnet f r die Ein F 21 und Aus F 21 gelten Ein Filter mit Ein F Aus F 0 ist nicht m glich Da Rendererfilter keine Ausgabe und Quellfilter keine Eingabe besitzen ergibt sich ein Datenfluss von den im Graph vorhandenen Quell ber die Transformator zu den Rendererfiltern Ein Graph ist dar ber hinaus erst dann vollst ndig und somit funktionsf hig wenn sich mindestens ein Quell und ein Rendererfilter darin befindet Aufgrund ihrer Besonderheit sind es auch diese beiden Filtertypen die den Datenfluss im Graphen grunds tzlich kontrollieren Quellfilter initiieren den Fluss w hrend Rendererfilter ihn blockieren k nnen Daher setzt die durch den Benutzer beeinflussbare Datenflusskontrolle letztlich an genau diesen beiden Enden des Datenflussgraphen an Eng damit verwandt ist die Datensynchronit t Es muss gew hrleistet sein dass zu jedem Zeitpunkt t Z alle Datenelemente d mit Zei d 2Zt an die Rendererfilter bergeben wurden Dazu werden zwei Mechanismen kombiniert Zum einen wird von insbesonder
162. it zeitlichem Verfall double dValue ValueFunction events iEvent dLastValue rtDiff berechne daraus den aktuellen Wert dValue double es 1lScore bisheriges Maximum berschritten bool bNewWinner iCurrentWinner 1 if iCurrentWinner gt 0 selber Gewinner wie zuletzt if iCurrentWinner iEvent 71 5 Implementation bNewWinner true rtCurrentSegmentLength rtDiff Segment geht weiter else Berechne Wert des bisherigen Gewinners double dWinnerValue ValueFunction events iCurrentWinner dLastValue es rtTimestamp events iCurrentWinner rtLastOccurance bisherige halber abstand zu vorigem gewinner event if rtCurrentSegmentLength es rtTimestamp events iCurrentWinner rtLastOccurance 2 gt iMinimumSegmentLength 1000 10 neue Segmentl nge ist halber Abstand zu vorherigem gewinner event rtCurrentSegmentLength es rtTimestamp events iCurrentWinner rtLastOccurance 2 bNewWinner true else aktuelles segment fortsetzen rtCurrentSegmentLength rtDiff Falls ein Gewinner gefunden wurde wird dies vermerkt und der Event gesendet Die Funktion ValueFunction berechnet dabei den durch die Diffusions Property parametrisierten linearen zeitlichen Verfall der Bewertung Entsprechend findet bei einem Diffusionswert von 0 keine Filterung sondern ein reines Durchleiten statt
163. iterbaren Zahl von Plugins hier Fi er genannt Diese werden mit Hilfe der wichtigsten Komponente des Fi tergraphen entweder automatisch oder gezielt miteinander verbunden und bilden so einen Datenflussgraphen Der Filtergraph kontrolliert dar ber hinaus s mtliche den Graphen betreffenden Belange z B Synchronisationsfunktionen oder Anfragen der Applikationen bez glich einer Kontroll Komponente f r bestimmte Wiedergabe Merkmale Filter sind ebenfalls COM Komponenten die das CBaseFilter Interface implementieren und anhand ihrer definierten GUID Global Unigne Identifier ein unter COM verwendeter kurzer Textstring zur Identifikation z B eines Filters Interfaces oder Datentyps im System identifiziert registriert und verwaltet werden Zur Verbindung mit anderen Filtern besitzt jedes Filter besondere Teilobjekte genannt Pins die sich in Ein und Ausgangspins unterteilen lassen und mittels in Interfaces ver ffentlichten Methoden zu Format und Typeigenschaften ihre Verbindbarkeit mit Pins anderer Filter abstimmen Pins sind auch f r den Datentransport verantwortlich indem sie gestreamte Datenbl cke von einem Ausgangspin an einen Eingangspin weiterreichen und somit von einem Filter zum n chsten bertragen Es gibt drei Grundtypen von Filtern die eine entsprechend ihrem Typ verschiedene Anzahl von Ein und Ausgangspins besitzen Ouellfilter Transformatoren und Renderer Quellfilter dienen der Eingabe von Datenstr men und haben daher nur eine
164. jektorientierter Multimedia Frameworks bew hrt die naht wie problemlos in System Architekturen eingef gt werden k nnen Ziel dieses Kapitels ist es Aufgaben und F higkeiten verschiedener Multimedia Frameworks herauszuarbeiten und gegen berzustellen Grund daf r ist die Tatsache dass das im Rahmen dieser Diplomarbeit entwickelte Audiomonitoringsystem ma geblich auf einem der vorgestellten Multimedia Frameworks aufsetzt Zu diesem Zweck wird in Abschnitt 3 1 zun chst das Konzept des Frameworks allgemein erl utert bevor in Abschnitt 3 2 elementare Aufgabenbereiche besprochen werden Den Abschluss dieses Kapitels bildet in Abschnitt 3 3 die Darstellung aktueller Multimedia Frameworks deren jeweilige Arbeitsweise zusammen mit dem entsprechenden Funktionsumfang erl utert wird 37 3 Multimedia Frameworks Framework Anwendungslogik Abbildung 3 1 Strukturunterschiede zwischen Framework und Bibliothek 3 1 Frameworks Ein Framework ist ein Verbund von Klassen die einen abstrakten L sungsentwurf f r eine Familie verwandter Probleme darstellen R Johnson 54 Objektorientierte Frameworks zu deutsch etwa Anwendungsger st bieten allgemein ein implementiertes Grundger st aus Architektur Code und Entwurfsprinzipien f r hnliche Applikationen eines Anwendungsbereiches das Entwickler blicherweise durch Vererbungsmechanismen und Instanziierung verwenden k nnen Im Unterschied zu konventionellen Klassenbi
165. k bekannten Standbild bei dem derselbe Frame ununterbrochen dargestellt wird Sobald der Graph gestartet wird hebt der Renderer die Blockade auf Bevor GenMAD durch die CGraphController Klasse den Zustand des Graphen ndert wird durch Aufruf der entsprechenden Methode jedes Filters zun chst berpr ft ob alle GenMAD Filter bereit sind Erst wenn dies f r alle Filter der Fall ist wird versucht in den Run Modus zu schalten Abschlie end wird das Signal an verschiedene Objekte weitergegeben darunter CVisualizerFrame Seeking also der wahlfreie Vor und R cklauf muss von allen im Graph enthaltenen Filtern in Form des IMediaSeeking Interfaces unterst tzt werden GenMAD verwendet genau dieses Interface um Neupositionierungen an den Graphen weiterzugeben Dieser leitet die Anfrage an alle vorhandenen Renderer weiter die falls sie nicht ber die entsprechende Funktionalit t verf gen rekursiv vorgeschaltete Filter anfragen bis entweder der Befehl ausgef hrt oder abgelehnt wird blicherweise wird diese Funktionalit t nur von Quellfiltern ausgef hrt 65 5 Implementation CAudioView Action CVisualizerFrame Timer D CGraphController Filter Abbildung 5 4 Visualisierung von Audiodaten Verschiedene Threads sind farbig dargestellt 5 1 9 Visualisierung Das auf der CVisualizerFrame Klasse beruhende Fenster zur Visualisierung wird dynamisch erzeugt und verf gt wie
166. ks Modellierer Der Modellierer erhalt eine Sequenz von framebasierten Audiomerkmalen und strukturiert diese anhand des zugrunde liegenden Merkmals Modells Dieses bildet blicherweise auch die Basis der nachfolgend verwendeten Module zur Distanz Metrik und den Indexierungs Algorithmus Meist u ert sich diese Strukturierung in der Umwandlung in eine auch aus Gr nden der Speicherplatzeffizienz kompakte Form beispielsweise als Vektor der multidimensionalen Merkmals Vektorsequenzen eines gesamten Songs 74 oder als Bin rsequenz der Audiomerkmale 45 Globale Redundanz wird in 2 durch Zusammenfasen engl C ustering hnlicher Merkmale ausgenutzt wodurch eine Approximation der Vektorsequenz ohne zeitliche Information ein Codebuch entsteht Weiterhin werden hier Statistiken ber kurze Zeitintervalle hinweg gesammelt was sich in sowohl h herer Erkennungsrate als auch schnellerem Abgleichen durch k rzere Sequenzen widerspiegelt Eine ausf hrliche Darstellung dieser Methode wird in Abschnitt 2 5 1 gegeben Cano et al 22 nutzen ein durch Spracherkennung inspiriertes redundanzverringerndes Modell in dem hnliche Teilst cke des Audiosignals wie etwa wiederkehrende perkussive Elemente als Elemente eines endlichen Alphabets eingestuft werden Die entstehende Sequenz von Indizes erh lt die Information des zeitlichen Audioverlaufes und kann mit geeigneten Mitteln effizient weiterverarbeitet werden Dieser Ansatz wird in Abschnitt 2 5 3 er
167. l utert 2 4 3 Distanzmetrik Ziel der Verwendung einer Distanzmetrik ist das quantitative Einordnen der hnlichkeit des Eingangssignals in Bezug auf die in einer Datenbank enthaltenen Audiodokumente Voraussetzung ist ein metrischer Raum Die Wahl des Distanzma es h ngt auf Grund der Vielzahl von M glichkeiten eng zusammen mit dem tats chlich verwendeten Audiofingerabdrucks Modell In Abh ngigkeit davon wird wie z B in 45 im Fall quantisierter Vektorsequenzen das Manhattan Ma oder im bin ren Fall die Hamming Distanz angewandt 57 Weit verbreitet ist auch das Verwenden einer Korrelation zur Messung des Abstandes zweier Signale Dar ber hinaus gibt es eine Reihe von anderen Metriken die sich jeweils an den speziellen Eigenschaften des gew hlten Merkmalsraums orientieren wie in Abschnitt 2 5 erl utert In den F llen in denen die zu identifizierenden Signale nicht als Fingerabdruck sondern als Codebuch 2 vorliegen wird die aktuelle Merkmals Sequenz sukzessiv transformiert und mit den einzelnen Codeb chern verglichen wobei die Fehler je Codebuch akkumuliert werden Diese gesamte Fehlersumme stellt die Distanz zum Eingabesignal dar 2 4 4 Suchmethoden Die Effizienz des Vergleiches eines unbekannten Audiofragmentes mit einer sehr gro en Anzahl an Fingerabdr cken wird ma geblich durch die verwendete Suchmethode bestimmt Diese wiederum h ngt von der Organisation der Fingerabdr cke durch einen Suchindex ab welcher eine
168. ldung 6 10a dargestellt Jede Instanz ben tigt etwa 5 Prozessorleistung Ver ndert man die Abtastrate der Eingabedatei so zeigt sich wiederum ein lineares Verh ltnis wie in Abbildung 6 10b dargestellt Die dort abgebildeten Werte entsprechen der Last in einem Projekt mit zw lf Klassifikatorfiltern Wird jedes Filter mit einer eigenen Audiodatei gespeist so sind die Zusammenh nge nahezu identisch mit den in 6 10b abgebildeten Daten Es scheint also einen schnellen Dateizugriff vorausgesetzt keinen Unterschied zu machen ob aus verschiedenen Datei gestreamt wird oder ob ein Audiosplitterfilter einen eingehenden Datenstrom in verschiedene Datenstr me aufteilt Auch der Einfluss der Bitzahl je Sample eines Datenstroms auf die Prozessorlast scheint einer linearen Funktion zu folgen Im Fall von vier Klassifikatorfiltern liegt die CPU Auslastung bei 16 Bit Aufl sung bei 19 w hrend es bei 8 Bit nur 11 sind Der Einfluss mehrerer Datenkan le ist zu vernachl ssigen da nur der linke Monokanal verwendet wird Um auch den Einfluss des Audentify Filters zu testen wurden in gleicher Weise wie im Falle des Klassifikatorfilters mehrere Instanzen in ein Projekt eingef gt Die Filter greifen dabei auf verschiedene Indexdateien gleichen Inhalts zu Aufgrund der gro en durch die DLL angeforderten Pufferl nge zeigt sich ein konstantes Bild von ca 2 Last zwischen den Bearbeitungsphasen der DLL Wird der Pufferinhalt bearbeitet kommt es allerdin
169. liderCtri m_wndSlider bool bScrollBarDrawn bool bFollowTrack bool bZoomChanged CVisualizerFrame pVFrame REFERENCE_TIME rtTimePerPixel REFERENCE_TIME rtPreviousTimestamp REFERENCE_TIME rtPreviousActionTimestamp double dPixels Clist pEvents POSITION posCurBufReadindex POSITION posPrevBufReadindex int iEventindex CDC bufDataDC CDC bufScalaDC bool bBufDCSet CBitmap bmpData CBitmap bmpScala CRect origScreen bool bResized HANDLE mutex public CEventView CEventView SetParent Action AddEvent Reset Reset SetFollowTrack GetMsTiming SetMsTiming PreCreateWindow BOOL WindowProc LRESULT protected OnPaint ConvertField OnlnitDialog BOOL CallMaster HRESULT CEdit m_wndEdit OnSelchangedTree1 BroadcastParam HRESULT CSpinButtonCtrl m_wndSpin OnDestroy gt ShowAudio HRESULT CFont m_font OnDbicikTree1 D ShowEvent HRESULT REFERENCE _TIME rtStart NotifyDiscontinuity HRESULT REFERENCE_TIME rtCurrent NotifyFilterChange HRESULT int iMilliSecTiming SetFilterName HRESULT CSplitterWnd wndSplitter CSplitterWnd wndSpliter2 CAudioView pWndAudioView ll CEventView pWndEventView CEventListView pWndEventListView CGraphController REFERENCE_TIME rtTimePerPixel EN bool bPauseFlag CVisualizerFrame pVisualizerFrame ve ee rare REFERENCE_TIME rtStreamOffset IMediaControl pCon
170. media 2003 K Pearson On lines and planes of closest fit to systems of points in space The London Edinburgh and Dublin Philosophical Magazine and Journal of Science 1901 V Peltonen Computational auditory scene recognition M Sc thesis Tampere University of Technology Finland 2001 Philips Gracenote Joint Venture http www research philips com initiatives contentid Real Networks http www real com Relatable http www relatable com RFC 1889 RTP real time transport protocol amp RTCP RTP control protocol RFC 2326 RTSP Real Time Streaming Protocol RIAA IFPI Request for information on audio fingerprinting technologies 2001 http www ifpi org site content press 20010615 html A Ribbrock F Kurth A Full Text Retrieval Approach to Content Based Audio Identification International Workshop on Multimedia Signal Processing St Thomas US Virgin Islands December 2002 E Scheirer Tempo and Beat Analysis of Acoustic Musical Signals in J Acoust Soc Am 103 1 pp 588 601 Jan 1998 E Scheirer and M Slaney Construction and evaluation of a robust multifeature speech music discriminator In ICASSP 1997 C E Shannon Communication in the presence of noise Proc Institute of Radio Engineers vol 37 no 1 pp 10 21 Jan 1949 J Smith and J S Abel The Bark and ERB bilinear transforms IEEE Trans Speech and Audio Processing vol 76 pp 697 708
171. mponenten miteingebunden werden m ssen Die Gr nde daf r finden sich auf mehreren Abstraktionsebenen etwa wegen der oben genannten Invertierung der Kontrolle im Zusammenspiel der jeweiligen Kontrollmechanismen e Wartbarkeit Aufgrund der Komplexit t von Frameworks sind nderungen der Anforderungen oft schwer umzusetzen oder resultieren in weitreichenden Folgen f r darauf aufbauende Applikationen e Validierung und Entfernen von Fehlern Durch die zunehmende Abstraktion und das Verwenden generischer Komponenten wird eine Validierung ebenso immer schwieriger wie die Lokalisierung eines Fehlers in Framework oder Applikation Auch die invertierte Kontrolle erschwert das Debuggen ma geblich e Effizienz Der Preis hoher Flexibilit t ist oft eine reduzierte Effizienz z B durch das bliche Verwenden von Dynamic Binding e Fehlende Standards unter Frameworks Dies betrifft sowohl Design und Implementierung wie Dokumentation und Adaption von Frameworks Bekannte Frameworks sind beispielsweise die Microsoft Foundation Classes MFC ein GUI Framework und CORBA ein Object Request Broker ORB Framework das Kommunikation 39 3 Multimedia Frameworks zwischen lokalen und entfernten Objekten erm glicht Andere ORB Frameworks sind DCOM und das Java RMI Frameworks lassen sich nach dem Taligent White Paper 103 anhand von zwei Kriterien klassifizieren zum einen nach Einsatzatt e Anwendungs Frameworks engl application fram
172. mposium on Musical Information Retrieval ISMIR 2002 Helix Player https helixcommunity org P Herrera Boyer G Peeters and S Dubnov Automatic classification of musical instrument sounds Mosart Deliverabel D22 Evaluation report of Timbre modeling 2002 128 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Literaturverzeichnis T Hoeren Einf hrung in das Multimedia Recht Symposium Internet zwischen Kunst und Kommerz Wiesbaden 1996 D Hubbard A simple STL based XML parser http www codeproject com cpp stlxmlparser asp O Izmirli Using a Spectral Flatness Based Feature for Audio Segmentation and Retrieval Proceedings of the International Symposium on Music Information Retrieval ISMIR2000 Plymouth Massachusetts USA October 2000 JACK Projekt Homepage http jackit sourceforge net A K Jain R P W Duin and J Mao Statistical pattern recognition a review IEEE Transactions on Pattern Analysis and Machine Intelligence vol 22 no 1 pp 4 37 2000 Java Media Framework http java sun com products java media jmf R E Johnson and B Foote Designing Reusable Classes Journal of Object Oriented Programming JOOP June July 1988 E R Kandel J H Schwartz T M Jessell Principles of Neural Science 4th Edition McGrawHill 2000 D Kimber and L Wilcox Acoustic S
173. ms bestehend aus Low Level APIs f r z B 2D und 3D Grafik Soundeffekte und Musik Eingabeger te und vernetzte Applikationen DirectX existiert aktuell in der Version 9 und bietet abstrakten Zugriff auf Hardware Merkmale Mit DirectShow ist eine Komponente zur Erstellung von Streaming Media Anwendungen enthalten die umfassende Multimedia Funktionalit t und flexible Erweiterbarkeit bietet Unterst tzt werden grunds tzlich ebenso Wiedergabe und Capturing von Datenstr men g ngiger Formate wie Konvertierungen und andere Transformationen Der Funktionsumfang z B vorhandene Netzwerk Protokolle h ngt von den im System registrierten Plugins ab Standardm ig werden jedoch alle g ngigen Anforderungen erf llt Da das im vierten Kapitel vorgestellte generische Monitoringsystem das im Rahmen dieser Diplomarbeit entwickelt wurde ma geblich auf DirectShow aufbaut sollen nachfolgend einige Teile des DirectX Frameworks besonders hervorgehoben werden DirectShow basiert ma geblich auf dem Component Object Model COM das fester Bestandteil von Windows ist Es besteht aus einer Menge von hierarchischen Interfaces sowie aus 47 3 Multimedia Frameworks Video Renderer DirectSound Device Abbildung 3 6 Filtergraph Struktur zum Abspielen einer AVI Datei Quell Transformatoren und Rendererfilter sind unterschiedlich gefarbt File Source AVI Splitter einigen zentralen COM Komponenten und einer erwe
174. mus zu Hilfe gezogen werden der unter Verwendung eines Cluster Kritertums Muster in selbstgenerierte Klassen Cluster einteilt Neben hierarchischen Methoden 52 auf die hier nicht weiter eingegangen werden soll gibt es Techniken die auf Partitionierungstrategien beruhen und sich blicherweise eines quadratischen Fehler Kriteriums bedienen Ziel ist dabei die Generierung einer Partition aus einer fixen Anzahl von disjunkten Clustern wobei ein quadratisches Kostenma minimiert werden soll Jedes Cluster wird durch seinen Mittelpunkt den Centroid repr sentiert der nach Einf gen neuer Muster aktualisiert wird Der quadratische Fehler jedes Clusters ist die Summe der Euklidischen Entfernungen jedes Musters zum Centroid Ziel ist die Minimierung der Summe aller Cluster Fehler Der auf diesem Ansatz basierende amp means Algorithmus ist effizient und liefert unter bestimmten Umst nden erstaunlich gute Ergebnisse 69 52 Leong setzt ihn beispielsweise im Rahmen eines Musikidentifzierungssystems ein um MFCC Merkmale zu clustern 59 33 2 Audiomonitoring 2 7 Audiomonitoringsysteme Der Begriff des Audiomonitorings beschreibt diejenige Spezialisierung des in Abschnitt 2 1 beschriebenen allgemeinen Multimediamonitorings die auf den erl uterten Komponenten Audioidentifikation und oder Klassifikation aufbaut Die in der Praxis verwendeten Systeme bedienen sich dabei der gesamten Spannweite der in den vorigen Abschnitten erl uterten Ans
175. n chsth heren Knoten aufrufen In der Identifikationsschicht wird die von Cano Batlle et al 22 entwickelte AudioDNA Technik in Form von C Bibliotheken eingesetzt Zwei in CORBA umgesetzte Schichten organisieren die Zuteilung der Identifikationsauftr ge an physikalisch dezentral gehaltene Knoten die zur Vereinheitlichung in eine Menge virtueller Knoten eingeteilt sind Die 35 2 Audiomonitoring Anbindung an Clients die verschiedene Betriebssysteme und Anforderungen haben k nnen wurde ber SOAP Web Services umgesetzt Durch die dezentrale L sung ist dieses System hervorragend skalierbar und kombiniert dazu die guten Performanz und Robustheitseigenschaften des AudioDNA Verfahrens Ein Prototyp dieses Systems wird in Spanien zur berwachung mehrerer Radio und Fernsehsender eingesetzt Neben diesen datenbankbasierten Systemen ergeben sich aus den st ndig fortschreitenden Technologien auch immer allt glichere Verwendungsm glichkeiten So sind erste Sicherheitssysteme zur robusten Klassifikation von akustischen Signalen in allt gliche und verdachtige Ger usche auf dem Markt die ber ein angeschlossenes Mikrofon einen Einbruch beispielsweise anhand des Ger usches von splitterndem Glas erkennen und Alarm schlagen k nnen Ein hnliches System ist auch als Notrufsystem im medizinischen Bereich oder f r Kleinkinder denkbar Nooralahiyan et al entwickelten ein kosteng nstiges System zur berwachung des Stra enverkehrs ber ein
176. n Ausgangspin Dazu geh ren z B Capturing Filter und Filter zum Lesen in Dateien Transformatoren ver ndern und verteilen Daten und verf gen daher ber mindestens je einen Ein und Ausgangspin Renderer schlie lich besitzen nur einen Eingangspin und handhaben die Ausgabe des Datenstroms z B durch Schreiben in eine Datei oder die Weitergabe an Audio oder Videotreiberinstanzen In Abbildung 3 6 ist ein Beispiel Filtergraph mit den enthaltenen Filtern dargestellt Durch ein von Microsoft bereit gestelltes SDK ist es sowohl m glich DirectShow um neue Filter zu erweitern als auch bestehende Filter in eigenen Applikationen zu verwenden Diese flexible Erweiterbarkeit kann dazu genutzt werden Quellfilter f r neue Dateiformate zu entwickeln andere Abspielmechanismen zu implementieren oder den Datenfluss vollst ndig zu ndern Auch die Erstellung grunds tzlich neuer Filtertypen ist m glich Grundlage der Filter Entwicklung sind bestimmte Identifikationsangaben die Implementierung von DirectShow Interfaces und die Kompilierung als Windows DLL Zur Verwendung muss der im Allgemeinen kleine Filter auf dem Ziel Betriebssystem registriert werden Aufgaben wie Abspielkontrolle und der Seeking genannte Vorgang zur wahlfreien Neupositionierung des in Quellfiltern enthaltenen Zeigers auf die aktuelle Position k nnen ber weitere zentrale COM Komponenten durchgef hrt werden Manche dieser Operationen setzen allerdings das Vorhandensein einer Implementat
177. n Internet Zug ngen gr eren Speicherkapazit ten und h her aufgel sten Daten stiegen Menge und Anteil von Multimedia Inhalten in den letzten Jahren rasant an Ob Internet PC Digitalkamera oder DVD Player f r viele Menschen ist der Umgang mit multimedialen Inhalten allt glich geworden Virtuelle Ladentheken im Online Musikgesch ft setzten im Jahr 2004 ca 270 Mio Dollar um und werden dies nach Sch tzungen des Marktforschungsunternehmens Jupiter Research bis zum Jahr 2009 auf 1 7 Milliarden Dollar ausweiten Dabei werden riesige Datenbanken verwaltet Apples iTunes 5 mit 70 Marktanteil Branchenprimus bietet Musik aus einem Bestand von ber 800 000 Titeln an Neueinsteiger Microsofts MSN Music 72 will dies mit einer Million Titeln noch bertrumpfen Gleichzeitig zeichnet sich auch schon die n chste Plattform zur Verbreitung multimedialer Inhalte ab n mlich in Form von Mobiltelefonen und anderen mobilen Techniken in die bereits bestehende Technologien integriert werden z B Videokonferenzen oder mobile Musikbiblio theken Doch mit der steigenden Datenflut ergeben sich sowohl f r Privatpersonen als auch f r Firmen neue Herausforderungen im Umgang mit Multimediadaten Wie sollen die Inhalte katalogisiert verwaltet und wiederverwendet werden Wie kann der berblick ber riesige Datenbest nde behalten oder wie k nnen neue Gesch ftsbereiche darauf aufgebaut werden Im Umgang mit textorientierten Daten scheint dies einfacher zu
178. n definiert h chtens eins ist Die ber alle Typen und Indizes kumulierte Ein bzw Ausgangs Verbindungskardinalit t eines Filters F wird mit Ein F bzw Ans F bezeichnet Entsprechend liefern Ein F bzw Ans F die kumulierte Eingangs bzw Ausgangs Verbindungskardinalit t des Typs Event Bezeichne F d4 dg 4 die Projektion auf die Audiodatentyp Komponente und Fy de Emmi die Projektion auf die te Eventdatentyp Komponente der Ausgabe eines Filter F mit den Eingaben d d Ist die entsprechende Verbindungskardinalitat Aus F 0 dann gilt mit T DT Fad dr Nun l sst sich die Ausgabe eines Filters F das ber einen Audiodatenstrom mit F und ber Eventdaten mit F verbunden ist folgenderma en darstellen wobei die Eingaben dem obigen Muster folgen F F d pudior d venti Audio gt F d guaio d event Event 54 4 Entwurf des GenMAD Systems Auf diese Weise lassen sich auch komplexe Filter Verschaltungen darstellen Ist die Ausgabe eines Filters F die Eingabe eines anderen Filters F wobei die Datentypen von Ein und Ausgabe bereinstimmen m ssen so nennt man die beiden Filter verbunden und spricht von einem Datenflnss oder Datentransport von F zu F Allerdings darf wegen der Kausalitat des Graphen f r jeden Index 7 jeden Typs Te DT die Ausgabe eines Filter nur Eingabe f r einen einzigen Filter im Graph sein Dies schlie t insbesondere da der Graph azyklisch ist die M glichke
179. n h chstwertige Eventcode der von Windows versandt wird ber das IMediaEventEx Interface wird dieser Code DirectShow als derjenige EventCode mitgeteilt der beim Eintreffen eines DirectShow Events als normale Windows Message an GenMAD versandt werden soll GenMAD pr ft beim Eintreffen dieses Codes die per IMediaEventEx Interface ansprechbare DirectShow Warteschleife Der Vorteil dieses Verfahrens besteht darin dass GenMAD ohnehin normale Windows Messages behandelt und daher kein zus tzlicher Handler implementiert werden muss Die zur Behandlung von DirectShow Events n tige Mehrstufigkeit des Verfahrens ist allerdings der Grund warum GenMAD zur zeitkritischen Kommunikation mit Filtern ein COM Interface gest tztes Verfahren verwendet 5 1 3 Hinzuf gen neuer Filter Filter sind in DirectX nicht nur durch Angabe einer GUID auch CLSID genannt z B 0x481de083 0x4712 Ox4ab2 Oxab 0x16 0x8d 0x80 Oxia Oxlc Oxf9 Oxb5 eindeutig identifiziert sondern dar ber hinaus ebenfalls per GUID selbstst ndig einer Filter Kategorie zugeordnet Da nicht ale g ngigen Kategorien in Zusammenhang mit GenMAD sinnvoll erscheinen sind nur ausgew hlte Kategorien in dem modalen Dialog enthalten der dem Benutzer anhand einer Baumstruktur die im System registrierten Filter sortiert nach genannten Kategorien anbietet Die Ermittlung dieser Filter erfolgt ber ein System Device Enumerator genanntes COM Objekt das zun chst unter Angabe der entspreche
180. n neben der Generierung von Spiellisten und der Erstellung von Charts auch die Kontrolle staatlicher Vorgaben etwa in Form von Quoten wie sie beispielsweise in Frankreich vorgeschrieben sind und derzeit auch in Deutschland diskutiert werden 99 Anbieter solcher Audiomonitoring Dienstleistungen sind Nielsen Broadcast Data System 79 und MusicTrace 76 die das am Fraunhofer Institut entwickelte AudiolD Verfahren verwenden das in Abschnitt 2 5 1 beschrieben wurde Weitere Firmen in diesem Segement sind Music Reporter 73 deren Technologie auf dem in Abschnitt 2 5 3 beschriebenen AudioDNA Verfahren aufsetzt 22 und Audible Magic 9 Letztere kauften im Jahr 2000 Muscle Fish eine Firma die eines der ersten Audioklassifikationssysteme entwickelte 117 Weitere Anwendungen ergeben sich aus Filesharing Applikationen Siehe dazu beispielsweise die in Abschnitt 2 5 angef hrten Bemerkungen zu Relatable und Napster Auch auf Webseiten befindliche Inhalte k nnen mittels geeigneter Software analysiert und dokumentiert werden etwa die der Firma Bay TSP 15 e Monitoring beim Konsumenten Bei privaten wie gewerblichen Kunden eingesetzte Audiomonitoring Anwendungen k nnen vor allem dazu dienen digitales Rechte Management DRM durchzusetzen etwa durch einen Echtzeit Abgleich mit online befindlichen Datenbanken und einer bei entsprechender Verletzung von Rechten automatischen Abspielsperre von Ger ten und oder Software Hier spielen auch digitale u
181. n sich Filter per Drag n Drop verschieben Die meisten Filter verf gen ber einen Konfigurationsdialog der sich ber einen Rechtsklick auf das Filter aufrufen l sst Klickt man einen Pin mit der rechten Maustaste an so erscheint ein Kontextmen mit den Eintr gen Neue Verbindung oder Verbindung l sen je nachdem ob bereits eine Verbindung besteht und Medien Typen anzeigen Der Befehl Neue Verbindung ruft einen Dialog auf der in einer Baumstruktur alle Filter mit entsprechenden Pins enth lt mit denen der gew hlte Pin 93 Anhang C Benutzerhandbuch verbunden werden kann Durch Anwahl und OK wird versucht eine Verbindung herzustellen Verbindung l sen zerst rt die Verbindung des gew hlten Pins Durch Aufruf von Medien Typen anzeigen wird eine dialogbasierte Liste aller unterst tzter Dateiformate erfragt werden Die Vielfalt der Informationen h ngt dabei bei manchen Filtern von der Tatsache ab ob der Pin verbunden ist oder nicht Toolbar Die Toolbar umfasst eine Reihe von Buttons die nachfolgend einzeln vorgestellt werden OD ce W Diese drei Buttons dient der Projektarbeit und erlauben das Erzeugen eines neuen Projekt das ffnen eines bestehenden Projektes und das Speichern des aktuellen Projektes Ef Mittels dieser Kn pfe k nnen neue Filter zum Graphen hinzugef gt werden Die ersten beiden Buttons erlauben das Hinzuf gen einer lokalen bzw einer per URL verf g
182. n soll ist unbedingt darauf zu achten dass die folgenden Include Befehle in der nachfolgend abgebildeten Reihenfolge zu oberst in der entsprechenden Header Datei des neue Filters deklariert werden include BaseFilter MonitoringPlugin h include BaseFilter PropertyPage h include FilterDefs h include BaseFilter SDK h 91 Anhang B Hinweise zur Verwendung von GenMAD GenMAD wurde in Visual C 6 0 unter Windows XP entwickelt und auch unter Windows 2000 getestet Der Code setzt dabei auf MFC und dem DirectX 9 0 SDK Update vom Sommer 2003 auf Da die Anderungen des Updates die DirectShow Komponente nicht betreffen diirfte auch das Haupt SDK zu DirectX 9 0 zu einer problemlosen Kompilierung f hren GenMAD setzt zur Laufzeit eine korrekte Installation von DirectX 9 voraus Das SDK wird nicht ben tigt Eine Installation von GenMAD ist nicht n tig GenMad exe ist ein direkt ausf hrbares Programm Wie alle DirectX Filter m ssen auch die GenMAD Filter vor der Verwendung in GenMAD oder einem anderen auf DirectX aufsetzenden Programm einzeln im Zielsystem registriert werden Dies kann durch direktes Verwenden der blicherweise im System32 Unterverzeichnis von Windows befindlichen regsvr32 exe oder darauf aufsetzenden Hilfsprogrammen geschehen und erfordert im einfachsten Fall den folgenden Befehl regsvr32 MeinFilter ax Siehe dazu auch die Hinweise in Anhang A Abschnitt 7 Die bei der Kompilierung gelegentlich auft
183. n speziellen Zweck hin entwickelt wurden Dabei kann es sich um so verschiedene Ans tze wie das Verkehrs berwachungssystem von Nooralahiyan et al 80 das von Kurth und Scherzer entwickelte Sentinel System 58 oder ein kommerziell zur berwachung von Radiostationen eingesetztes System handeln Jedes dieser Systeme setzt auf einer bestimmten Monitoringtechnik auf und verwendet eine eigens f r diesen Fall entworfene Anwendungsschicht etwa zur Bereitstellung von Visualisierungs und Interaktionsfunktionalit t Diese Spezialisierung ist um so erstaunlicher als die meisten Audioidentifikations und Klassifikationsverfahren aufgrund ihrer verschiedenartigen Herkunft bestimmte Anwendungsszenarien und Umgebungsparameter besitzen in denen sie sich durch besondere G te auszeichnen sei es bez glich Robustheit Performanz oder Effektivit t In anderen Szenarien dagegen k nnen viele weniger berzeugen da sie nicht universell einsetzbar sind Die Verschiedenheit der Systeme erschwert dar ber hinaus die Einarbeitung und schr nkt dadurch einen effektiven Wissensaustausch ein was die Entwicklung von L sungen f r den Markt verlangsamt Sicherlich spielen dabei in einigen F llen kommerzielle Strategien eine Rolle Hinzu kommt das in anderen Ans tzen auff llige Fehlen von eingebundenen Standards wie popul ren Plugin Schnittstellen Ein mit diesen Schnittstellen ausgestattetes System profitiert zum einen von einer solchen Erweiterbarkeit zum anderen k
184. n und an CGraphController weiterzureichen D 2 7 CEventListView class CEventListView public CListView CListView Klasse des Visualisierungsfensters das eingehende Events in einer CList speichert und mittels eines CListCtrl Steuerelements anzeigt CList lt EventSample EventSample amp gt pEvents Dabei wird ebenfalls ein in D 2 3 besprochenes Mutex Handle zur Serialisierung verwendet void AddEvent EventSample es F gt neue Events am Ende von pEvents an void Action REFERENCE TIME rtNow Einf gen aller in pEvents vorhandenen Events in das ListCtrl Objekt unter Verwendung der bergebenen aktuellen Zeit Abschlie end wird pEvents geleert void OnCustomDraw NMHDR pNMHDR LRESULT pResult Jede Zeile wird entsprechend der Farbe des visualisierenden Filters mittels eines zweistufigen Prozesses koloriert D 2 8 CEventView class CEventView public CWnd In hnlicher Weise wie CEventListView werden auch in dieser Klasse eingehende Events durch AddEvent in einer CList gespeichert und separat angezeigt hier in Form eines horizontalen Piano Roll Allerdings wird bei der Speicherung jedem Events noch ein Flag hinzugef gt das Auskunft dar ber gibt ob ein Event bereits angezeigt wurde CList lt EventSampleWrapper EventSampleWrapper amp gt pEvents Das in D 2 3 erl uterte Konzept versteckter Zeichenpuffer wird hier ebenso identisch angewandt wi
185. naltypen gibt es Obert ne und Spitzenwerte engl peaks d h nat rliche Vielfache k f einer Grundfrequenz f die mittels verschiedener Verfahren ermittelt werden k nnen 27 Falls vorhanden kann ggf die Grundfrequenz als Verteilungsmaximum des als WDF betrachteten Spektrogrammes definiert werden 21 2 Audiomonitoring Spektrale Glattheit engl spectal flatness measure SFM Dieses Ma stellt eine Charakterisierung zur Unterscheidung von tonalen und rauschartigen Signalen dar Tonal bezieht sich hier nicht auf den entsprechenden Begriff aus der Musiktheorie sondern auf das Vorhandensein dominanter sinusartiger Komponenten im Signalspektrum 50 SFM findet Verwendung im AudiolD System 2 und ist in Form des Low Level Deskriptors AndioSpectrumFlatness in den MPEG 7 Standard 70 eingeflossen Spectral Flux auch Delta Spectrum Magnitude Dieses Ma charakterisiert framebasierte spektrale Ver nderung Sprachdaten weisen beispielsweise auf Grund der schnellen Abfolge verschiedener Buchstaben sowohl gr ere als auch variablere Unterschiede auf als Musik Der Spectral Flux F eines gefensterten Signals der L nge N ist definiert als F Spect t f Spect t 1 f n 1 Spektrale Roll Off Frequenz Dieser Wert misst die Frequenz R unterhalb der sich im Spektrum 95 der Energie befindet und ist somit ein weiteres Ma f r spektrale Form Sie ist definiert durch R N gt Spect t f 0 95 gt gt Spe
186. nd oder akustische Wasserzeichen eine wichtige Rolle Dar ber hinaus k nnen sich auch hier aus Filesharing Netzwerken neue Anwendungen ergeben etwa zur Verifizierung der Echtheit und Vollst ndigkeit von Musikst cken 34 2 Audiomonitoring Eingabe Anfrage s Vorverarbeitung E optional str me 4 Frame Pr filter und Signalvergr berung l buffer Delay Differenzensignal Referenz ter isi simulation und Quantisierung str me i Audiosignale 1 1 Folgen Kandidatenmenge u Maxima Varianzdaten Ausgabe l 1 i Matching Trefferkandidat Berechnung des Berechnung der Roreldnonstolgen Trefferkandidaten Kandidatenmeng Berechnung Signal und Kandidatenmenge He statistiken basierend auf k Fenster Mittelung Abbildung 2 9 Struktur des Sentinel Systems Ein implementiertes Audiomonitoringsystem ist das von F Kurth und R Scherzer entwickelte Sentinel System 58 Aufsetzend auf dem in Abschnitt 2 5 5 beschriebenen Audentify System 57 erlaubt diese C Software den Echtzeit Vergleich einer Menge eingehender Audiostr me mit in einer Datenbank repr sentierten Referenz Audiost cken beispielsweise im Szenario der Suche nach im Radio gespielten Musikst cken die ber ein Mobiltelefon angefragt werden Nach einer optionalen Vorverarbeitung mittels eines linearen Bandpass Filters durch den eine Simulation eines rau
187. nd sollte durch entsprechende QoS Mafinahmen behandelt werden Neben einer Unterst tzung grundlegender Netzwerk Protokolle wie HTTP ist vor allem die Unterst tzung von Protokollen wie RTP Realtime Transport Protocol 88 oder RTSP Realtime Streaming Protocol 89 von Interesse die speziell f r den Echtzeit Einsatz in Multimedia Szenarien entworfen wurden Insbesondere die Verwendung m glichst effizienter und performanter Protokolle ist von Belang so ist in realen Applikationen meist statt des Paket quittierenden TCP das schnellere UDP Protokoll implementiert das keinerlei Garantien f r das Ankommen versendeter Pakete gibt Die daraus resultierende fehlende Fehlerkontrolle wird z B durch das aufsetzende RTP Protokoll in Form von Zeitstempeln und Sequenznummern gew hrleistet das durch RTCP RTP Control Protocol 88 um QoS Funktionen wie Statusinformationen der Clients Metadaten Transport und eindeutige Teilnehmeridentifikation erg nzt wird Neben punktweisen Unicast Verbindungen existieren mit Broad und Multicast Konzepten Ans tze die komplexere Verbindungsstrukturen erlauben In diesem Zusammenhang spielen vor allem Last balancierende Konzepte wie IP Multicast ein Rolle die verf gbare Bandbreite weniger stark belasten Auch der Einsatz von dynamischen Cachingtechnologien erlaubt eine Reduktion der Netzbeeintr chtigung 100 Synchronisation von Datenstr men Dies beschreibt das Herstellen eines Gleichlaufes zwischen mehreren
188. nden GUID vom System erzeugt werden muss In einer durch den Enumerator definierten Schleife werden von ihm sogenannte IMoniker Instanzen zur ckgeliefert die das Auslesen des Filternamens ber PropertyBags erm glichen Dieser wird unter verdecktem Speichern des aktuellen Schleifenindizes in der Baumstruktur ver ffentlicht Das Erzeugen eines durch den Benutzer bestimmten Filters verwendet einen beinahe identischen Algorithmus der bis zu demjenigen Schleifenindex iteriert der zum gew hlten Filter im Baum gespeichert ist Das IMoniker Objekt erlaubt anschlie end ber die BindToObjecr Methode das F llen eines zuvor leeren Filter Objektes Da die PropertyBag auch das Auslesen der Filter CLSID erm glicht w re ein simpleres Verfahren zur Erzeugung des Filters anhand der CLSID w nschenswert Diese Vorgehensweise schl gt jedoch leider im Fall von Capturing Filtern aufgrund eines Bugs in der DirectShow Implementation fehl Angewandt wird sie jedoch bei der Erzeugung der sogenannten Fi ter Favoriten die zum schnellen Zugriff hnlich einer k nstlichen Kategorie im Baum angezeigt werden und zum einen aus einigen vordefinierten h ufig verwendeten Filtern zum anderen aus s mtlichen GenMAD 63 5 Implementation Filter bestehen Letztere werden dynamisch anhand des Namens Prafix Monitoring eingelesen wodurch auch zuk nftig entworfene GenMAD Filter unterst tzt werden 5 1 4 Speichern amp Laden Das aktuelle GenMAD Projekt bestehend aus
189. ndern Durch den Einsatz von Hall und Verz gerungseffekten vielleicht sogar in Verbindung mit zus tzlichen Beispieldaten typischer Hintergrundger usche l t sich ein fertiges Projekt f r den Live Einsatz vorbereiten das den eventuellen Gegebenheiten Rechnung tr gt Ein gro es Potential bietet auch die Verwendung von Pipelines die durch Splitterfilter verteilte Datenstr me unabh ngig von anderen Signalwegen bearbeiten k nnen Dies kann z B zu Vorverarbeitungszwecken im Sprachmonitoring eingesetzt werden indem eine Pipeline durch ein Hochpassfilter nur die oberen Frequenzbereiche eines Signals manipuliert w hrend in einer zweiten Pipeline unter Verwendung einer Tiefpassfilters der Bassanteil bearbeitet wird Verwandt mit diesem Ansatz sind Projekte zur Analyse r umlicher Informationen Dazu k nnen Signale in den beiden Kan len eines Stereosignals separat analysiert werden um eine Signalquelle zu lokalisieren etwa ein Vogelruf in einer Monitoringaufnahme in der Natur Neben der Parallelverarbeitung reiner Audiodaten lassen sich auch Kombinationen aus Audio und Eventdaten nutzen um einen Mehrwert aus der Verwendung von Pipelines zu ziehen Ein wichtiges solches Beispiel ist der in Abbildung 6 6 dargestellte und in den Anschnitten 6 1 8 und 6 1 9 untersuchte Ansatz ein Audiosignal auf verschiedene Weisen vorzuverarbeiten separat zu klassifizieren und die Eventdaten mittels eines Kombinatorfilters wieder zusammenzuf hren Auf diese
190. nderwertige Wandlerelemente auszugleichen Wir betrachten im Folgenden nur digitale Signale Diese lassen sich allgemein durch den diskreten Lebesgue Raums 7 geeignet modellieren 57 F r J cZ sei Pirr Cl gt Y xP lt of iel Die Aufgabe der Audioidentifikation ist es zu einem m glichst kurzen in der Praxis wenige Sekunden langen Audiofragment etwa q 2 Z mit endlichem Tr ger festzustellen ob es Teil eines in einer Datenbank D vermerkten Audiodokumentes ist Diese Datenbank enth lt dabei Repr sentationen von Audiosignalen zusammen mit entsprechenden Metadaten wie Titel oder Copyright Informationen Da im nicht trivialen Fall zu dem zu identifizierenden Audiosignal keinerlei beschreibende Metadaten mitgeliefert werden besteht die Herausforderung darin von den implizit enthaltenen Informationen auf die Identit t des Audiofragmentes zu schlie en Daher spricht man auch von inhaltsbasierter Audioidentifikation engl content based identification CBID Falls die Identifikation erfolgreich ist k nnen aussagekr ftige Metadaten zur ckgeliefert werden 2 Audiomonitoring Ein in der Praxis auftretendes Problem sind Filter bzw Signalverzerrungen vielfaltiger Art denen Anfragesignale unterliegen e Rauschen Dieses resultiert z B aus analoger bertragung und nderungen des Signal zu Rauschen Verh ltnisses engl SINR signal to noise ratio e Spektrale Ver nderungen Oft werden beispielsweise im Radio und Fe
191. ne explizite Zeitangabe enthalten d c D Em Devens E wiederum ist ein 10 Tupel welches Informationen zu einem Ereignis enth lt Die Zeitangabe wird ebenfalls ber Zeiz Zx E gt Z zur ckgeliefert Eventdatenelemente sind im Gegensatz zu Audiodaten zeitlich unabh ngig voneinander Trotzdem werden aufeinander folgende Eventdaten ebenfalls als Datenstrom bezeichnet um eine einheitliche Beschreibung zu gew hrleisten Um Aussagen zu erm glichen die wahlweise einen der beiden Datentypen betreffen kann die folgende Menge verwendet werden DT Andio Event Es sei darauf hingewiesen dass in GenMAD verwendete Filter fremder Anbieter weitere Datentypen unterst tzen k nnen Dieses k nnen jedoch nicht von GenMAD Filtern verarbeitet werden sondern m ssen ggf in einen der beiden genannten Datentypen transformiert werden Das te GenMAD Filter im Datenflussgraphen kann wie folgt modelliert werden F D guaio x D ia gt Dia x Dial Event Dabei sind 0 1 und ken krez 0 1 2 die Ein bzw Ausgangs Audio respektive Event Verbindungskardinalitaten Die i te Eingangs bzw Ausgangs Verbindungskardinalitat vom Typ TeDT eines Filters F l sst sich wie folgt ermitteln Ein F bzw Aus F Die zweite Ausgangs Event Verbindungskardinalit t des Filters F beispielsweise ist Azs F Im Fall des Audiodatentyps kann der Index auch weggelassen werden da die entsprechende Verbindungskardinalit t wie ebe
192. nectedPin Name des verbundenen Pins Im Konstruktor werden alle Eigenschaften durch Abfrage des Pins ermittelt Wie auch in CGraphController und CFilterContainer wird hier das Laden und Speichern ber CArchive bzw Serialize unterst tzt Da vorausgesetzt ist CPinInfo daher von CObject abgeleitet und enth lt wie diese zwei notwendige Makros EREISUNNgC ST CeicejlaComuicolileie jiGicejolaCivwill IPM ORA Liefert ein IPin Objekt des repr sentierten Pins zur ck void ShowMediaTypes CGraphController pGraphCtrl Ermittelt und zeigt unterst tzte Mediaformate in einem CMediaTypeDialog an D 2 17 CSlideToolBar class ColicdeToolBbar 2 jolie Coola Diese Toolbar Klasse beinhaltet neben einigen Buttons auch einen Schieberegler mit zugeh riger Anzeige genannt Seekbar mittels der sich falls vom aktuellen Graphen unterst tzt ein Vor und R cklauf durchf hren l sst Dazu werden die folgenden drei Steuerelemente verwendet CSliderCtrl m wndSlider Schieberegler CToolbarEdit m wndEdit Anzeige CSpinButtonCtrl m wndSpin Editierung unsichtbar Diese werden ber einen Timer nTimerID in Millisekundenabst nden aktualisiert 106 Anhang D Technische Dokumentation von GenMAD Dar ber hinaus ist ein Element zur Kontrolle der Skalierung enthalten CToolbarEdit m wndEdit Rate Anzeigefeld CSpinButtonCtrl m wndSpin Rate Editierung sichtbar Bei Ver nderung der Steuerelemente werden die neuen Werte
193. neller ab als sie f r Sprache zunimmt vermutlich bedingt durch die Wahl der Trainingsdaten Auff llig ist weiterhin die hohe Fadschklassifikation von Sprache als Stille Dies ist insofern nicht verwunderlich als Sprache im Allgemeinen viele L cken im Sprachfluss beinhaltet die als Stille interpretiert werden k nnen Um den Einfluss der Erkennung von Stille zu eliminieren wurde eine vereinfachte zweite Testreihe durchgef hrt die mit der gerade vorgestellten bis auf das ausgeschaltete Stille Erkennungsmodul identisch ist Die in Abbildung 6 3 gezeigten Ergebnisse best tigen den Trend der ersten Messungen In den nachfolgenden Tests wird daher falls nicht anders angegeben eine Trainingsmenge von je einer Minute pro Klasse verwendet und die Klassifikationsleistung mittels 19 Minuten Testdaten eruiert Die Erkennung von Stille ist deaktiviert Klassifikation von Musikdaten ohne Stille Klassifikation von Sprachdaten ohne Stille 1Minute 10 Minuten 1 Minute 10 Minuten O Sonstiges 2 02 1 07 Sprache 15 95 38 26 Musik 82 03 60 67 O Sonstiges 4 21 0 06 O Sprache 52 04 60 43 Musik 43 75 39 51 Abb 6 3 Klassifikationsleistung ohne Stille Erkennung jeweils als Diagramm und als Matrix Alle Parameter sind identisch mit den in Abb 6 2 gezeigten Messungen 79 6 Anwendungen Tests und Bewertungen Klassikation von Sprachda
194. ner Genres mit und ohne Gesang sowie Stimmen beider Geschlechter mit verschiedenen Hintergrundger uschen und typischen Verzerrungseffekten Die Trainingsdaten geben dar ber hinaus Auskunft ber die Fehlerrate des Klassifikators d h den Prozentsatz falsch klassifizierter Daten Wenn die Menge der Trainingsdaten gro und aussagekr ftig genug ist und Trainings und Klassifikationsmuster unabh ngig sind gibt dieser Wert eine gute Sch tzung der tats chlichen Fehlerrate Diese ist dagegen selbst f r den Fall dass s mtliche System Parameter vorliegen u erst schwierig analytisch festzusetzen und ist in der Praxis in einem solchen Fall bestenfalls per Bayes schem Fehlerma abzusch tzen F r eine bersicht weiterer Fehlerma e siche Jain et al 52 Die Performanz eines Klassifikators h ngt dar ber hinaus auch vom Verh ltnis aus Datengr e Merkmalszahl und Klassifikator Komplexit t ab Bei Einteilung der Trainingsdaten in Klassen steigt die Zahl der Trainingspunkte im Merkmalsraum exponentiell mit der Gr e der Merkmalsdimension ein Fluch der Dimensionalit t getauftes Problem das auch in vielen anderen Wissenschaften die Arbeit mit gro en Datenmengen beschr nkt Jain et al 52 weisen in diesem Zusammenhang darauf hin dass durch ein Verh ltnis von mindestens zehn mal so vielen Trainingsmustern per Klasse wie der Anzahl verwendeter Merkmale eine Vermeidung des Problems erreicht werden kann 31 2 Audiomonitori
195. ng 00 Abbildung 2 8 Zustand eines GMM zu Beginn und nach einigen Iterationen Man beachte dass die als Kreise dargestellten Merkmalsvektoren eine sich im Laufe der Iterationen ver ndernde Wahrscheinlichkeit der Klassenzugeh rigkeit aufzeigen Klassifikatoren lassen sich je nach enthaltenem Entscheidungsverfahren in verschiedene Typen einteilen Der einfachste Ansatz verwendet sogenanntes Abnlichkeitsma um Muster Klassen zuzuordnen Dazu wird das Anfrage Muster mit Repr sentanten jeder Klasse verglichen und anhand des hnlichkeitsma es der naheliegendsten Klasse zugeordnet Die Berechnung der Repr sentanten kann per Mittelwert der Klasse nearest mean classifier oder auch durch komplexere Verfahren wie Vektor Quantisierung VQ erfolgen Ein typischer solcher Klassifikator ist der amp nearest neighbour Klassifikator k NN bei dem per Euklidischer oder Mahalanobis Distanz zu einem eingehenden Punkt im Merkmalsraum die amp n chstliegenden Punkte berechnet werden Die Zuordnung erfolgt dann zu derjenigen Klasse der die Mehrheit dieser amp Punkte zugeordnet ist Nachteil ist die n tige Speicherung einer gro en Zahl von Trainingsvektoren und die dadurch hohe Anzahl an Vergleichen Zur Effizienzsteigerung werden daher unter anderem r umliche Partitionierungsstrategien wie amp d Baume eingesetzt 93 die den Merkmalsraum per Manhattan Ma vorpartitionieren und so die Anzahl n tiger Vergleiche drastisch reduzieren
196. ng 5 5 Ein automatisch generierter Konfigurationsdialog 69 5 Implementation 5 2 4 Seeking Um in einem Graphen Seeking Fahigkeiten also den wahlfreien Vor und R cklauf verwenden zu k nnen muss jeder enthaltene Filter das MediaSeeking Interface implementieren Seeking Anfragen durch den GraphBuilder werden an die Renderer abgesetzt die diese stromaufw rts weiterleiten bis die Anfrage bearbeitet wird oder ein Filter die Schnittstelle nicht implementiert In CMonitoringBaseFilter werden s mtliche dieser Interface Methoden dadurch implementiert dass ankommende Anfragen direkt an ein vorgeschaltetes Filter weitergereicht werden bevorzugt ber solche die ber Audio Pins verbunden sind 5 2 5 Laden Speichern Die implementierten DirectShow Schnittstellen eines Filters gibt dieses unter Angabe eines zum jeweiligen Interface entsprechend definierten GUID ber die DirectShow Methode NonDelegatingQueryInterface bekannt Ist auch IPersistStream darunter werden beim Laden und Speichern des Graphen auch interne Eigenschaften des Filters auf von diesem zu implementierende Weise behandelt CMonitoringBaseFilter tut dies standardm ig f r alle registrierten Properties M chte ein GenMAD Filter weitere Eigenschaften speichern so muss es dies durch berschreiben von Write bzw ReadFromStream unter Verwendung eines IStream selbst implementieren 5 3 Implementierte GenMAD Filter Die nachfolgend erl uterten Filter wurden im
197. ng des Event zu der des vorigen Events identisch ist und ob die Zeitdifferenz zu diesem vorigen Event einen definierten Grenzwert unterschreitet In diesem Fall wird der aktuelle Eventblock verl ngert und entsprechend eingezeichnet 5 2 Das Filter SDK Um die Entwicklung neuer Filter zu vereinfachen wurde im Rahmen der Diplomarbeit ein Software Development Kit SDK entworfen Dieses beruht auf einer implementierten Basisklasse CMonitoringBaseFilter mit vier zus tzlichen Klassen f r die verschiedenen Pintypen und ben tigt nur wenige Angaben um ein laufendes Filter zu erzeugen Dadurch wird zum einen die Notwendigkeit zur Einarbeitung in DirectShow vollst ndig genommen zum anderen f hrt die Fokussierung auf Monitoring Aspekte zu einer erh hten Produktivit t bei der Entwicklung neuer Filter Die daf r n tigen technischen Schritte sind in Anhang A aufgef hrt Zur n tigen Registrierung eines Filters und dem sp teren Erzeugen ber eine Factory Funktion ben tigt Windows neben einer eindeutigen COM CLSID und Informationen zu Filter Namen und sonstigen Eigenschaften vor allem auch explizite Angaben ber Anzahl und Art der enthaltenen Pins Diese werden in Form eines globalen Feldes CFactoryTemplate g _Templates erwartet das auf andere Felder verweist die alle ben tigten Informationen enthalten Um dem Entwickler des SDK die Einarbeitung in diesen Mechanismus zu ersparen enth lt das SDK eine Datei namens FilterDefs h die auf b
198. nhang befinden sich Hinweise zur Verwendung und Installation von GenMAD sowie ein Benutzerhandbuch und die technische Dokumentation S mtliche im Rahmen dieser Diplomarbeit entwickelten Komponenten liegen als kompilierte Versionen und im Quelltext auf CD bei 5 1 1 Zentrale Klassen und Strukturen von GenMAD Die zentralen Klassen und die wichtigsten Beziehungen von GenMAD sind schematisch in Abbildung 5 3 dargestellt Eine UML Darstellung des gesamten Klassenbestandes ist in Anhang D 1 dargestellt Im Folgenden sollen die Aufgabenbereiche der einzelnen abgebildeten Klassen kurz erl utert werden e CMonitorApp Haupt Applikationsklasse die die Anwendung durch Erzeugen des Hauptfensters und der CGraphController Klasse initialisiert e CMainFrame Repr sentant des Hauptfensters der sowohl GUI Elemente zur Interaktion und zur Statusmeldung erzeugt und verwaltet als auch entsprechende Events und DirectShow Events nach Vorverarbeitung an das CGraphController Objekt weiterreicht e CChildView Repr sentant des Zeichenbereiches dient jedoch nur der Annahme von Benutzer Tastatur Maus und Zeichen Events die an CGraphController weitergeleitet werden 61 5 Implementation e CGraphController Ebenso wie der den Datenflussgraphen kontrollierende GraphBuilder die zentrale Komponente von DirectShow darstellt ist diese ihn in GenMAD modellierende Klasse wichtigstes Element der Applikation Sie enth lt analog zum Graphen und damit verbundenen
199. nnels long index char sVisualizer 1024 char sFutureUse 512 EventSample Zeitstempel Eventbeschreibung Score Ranking zeitl Offset gegen ber Datenbank Name des erzeugenden Filters Abtastrate Bytes je Sample je Kanal Kan le je Sample fortlaufende Nummer Name des visualisierenden Filters 512 Byte reserviert f r Erweiterungen 111 Anhang D Technische Dokumentation von GenMAD D 4 3 EventSampleWrapper Wrapper Struktur f r die Verwendung der EventSample Struktur in der Visualisierung struct EventSampleWrapper EventSample es Event Objekt bool bDrawn Flag Event bereits angezeigt D 4 4 EventTrack Repr sentiert eine Sub Bahn in CEventView struct EventTrack char sDescription 1024 Eventbeschreibung int iLastIndex Track Index D 4 5 FavouriteFilters Struktur zur Verwaltung von Favoriten im CavailFilterList Dialog struct FavoriteFilters CString sName Filterbezeichnung CLSID CleTDy Filter CLSID he D 4 6 FilterDesc Repr sentiert ein Event visualisierendes Filter in CEventView Serie WaLllivecDese CString sName Filtername rag Colles Farbe RGB int index aktueller Index POSITION pos Speicher Index in CList EventSample esPrevEvent voriges Event dieses Typs REFERENCE TIME rtEventBlockBegin Zeitstempel des Blockbeginns EventTrack tracks 16 Sub Bahnen
200. nologien als auch Implementationen Das abschlie ende Unterkapitel 2 7 komplettiert das in diesem zweiten Kapitel besprochene Thema des Audiomonitorings und gibt eine bersicht ber Audiomonitoringsysteme 2 1 Der Monitoringbegriff Monitoring stellt neben Such und Synchronisationsaufgaben eine dritte zentrale Komponente des Multimediaretrievals dar und bezeichnet das systematische berwachen von Datenstr men auf bestimmte zu definierende Ereignisse hin engl to monitor abh ren berwachen kontrollieren Monitoring findet zahlreiche Anwendungen etwa in automatischer Inhaltsanalyse von Videosignalen z B zum Auffinden von Firmenlogos 19 der berwachung des Stra enverkehrs anhand des Ger uschpegels 80 oder der automatischen Transkription von Nachrichtenbeitragen eines Fernseh oder Radioprogramms Ein weiteres Anwendungsgebiet ist die akustische Kontrolle von Grenzwert berschreitungen bei Maschinen wie etwa Laufger uschen eines Motors Entscheidender Unterschied zwischen Monitoring und Suche ist die Echtzeit Anforderung d h die zu untersuchenden Datenstr me liegen erst zur Bearbeitungszeit vor Wir betrachten hier diskrete Datenstr me auch abstrakt als Dokumente bezeichnet der Form xc ZxX die von Monitoringsystemen ber die Zeit diskret durch Z im endlichen Wertebereich X bearbeitet werden 57 Kleinste Elemente eines solchen Datenstromes notieren wir mit x Im folgenden sei Z xX Z die Projekti
201. nz des GenMAD Systems In diesem Abschnitt sollen die Ergebnisse verschiedener Tests pr sentiert werden anhand der die Performanz der entwickelten Filter und der GenMAD Applikation berpr ft wurde Das Testsystem bestand aus einem mit 2 66GHz getakteten Pentium 4 Prozessor und einer Hauptspeichergr e von 512MB Die abgebildeten Prozessorlastangaben sind gemittelte Sch tzwerte 6 2 1 Performanz der entwickelten Filter Das einzige der entwickelten Filter dessen Speicherbedarf nicht nahe bei Null liegt ist das MonitoringClassifier Filter Jede Instanz des MonitoringClassifier Filters belegt einen Hauptspeicherplatz von etwa 60MB Dieser Bedarf entsteht durch Variablenfelder konstanter Gr e die f r die Verwaltung der Baumdaten ben tigt werden Ein hnlich einseitiges Bild zeigt sich auch beim Test der Prozessorlast Selbst bei Verschaltung von zw lf Filter Instanzen in einem GenMAD Projekt ben tigt keines der rein ereignisbasierten Filter mehr als ein oder zwei Tausendstel der CPU Leistung Auch in Kombination also z B in Form eines Projektes von je zw lf MonitoringXMLReadern MonitoringEventSplittern und MonitoringXMI Writern betr gt die Gesamtlast etwa 1 Anders im Fall des Klassifikatorfilters Falls das gesamte Projekt ber nur eine Mediendatei in CD Qualit t durch ein nachgeschaltetes Audiosplitterfilter mit Daten beliefert wird ist die Prozessorlast wie zu erwarten eine lineare Funktion der Zahl von Instanzen wie in Abbi
202. o en Verlust an signifikanten Daten reduzieren Das Ma an Reduktion h ngt davon ab wie die in den Originaldaten enthaltenen Informationen verteilt sind Eine effizientere Variante die orientierte Hauptkomponentenanalyse OPCA wurde in 20 erfolgreich f r die Extraktion rauschrobuster Audio Merkmale angewandt Die diskrete Kosinus Transformation engl discrete cosine transformation DCT stellt eine der diskreten Fouriertransformation hnliche Transformationsfamilie aus mehreren Varianten dar arbeitet allerdings im Gegensatz zu dieser mit reellen Daten Verwandt sind weiterhin die Diskrete Sinus Transformation und die modulierte DCT welche auf berlappenden Datenbl cken arbeitet Die DCT besitzt eine Freguenzkompaktheit genannte Eigenschaft die sich darin u ert dass ein Gro teil der Signalinformation in wenigen Komponenten der DCT konzentriert wird 116 Unter bestimmten Bedingungen approximiert die DCT daher die PCA Inspiriert von der erfolgreichen Anwendung der DCT in der Arbeit mit Sprachdaten fanden Logan et al 63 heraus dass sie auch f r die Arbeit auf Audiodaten gut geeignet ist Die DCT kann wie die FFT in Zeit O nlogn berechnet werden Dar ber hinaus existieren noch weitere lineare Transformation wie die Haar Transformation oder Wavelets auf die hier aber nicht weiter eingegangen werden soll In manchen Systemen werden nach der folgenden Merkmals Extraktion noch weitere lineare Transformationen durchgef hrt
203. ock bool Onsize OnCustomDraw Abbildung D 1 UML Diagramm von GenMAD 98 Anhang D Technische Dokumentation von GenMAD D 2 2 CAudioComboBox class CAudioComboBox public CComboBox Simple ComboBox die im Visualisierungsfenster das Filter mit dem aktuellen Audiofokus verwaltet Bei Benutzer Auswahl eines neuen Filters angezeigt durch die Windows Message CBN_SELENDOK wird CVisualizerFrame NotifyComboChanged aufgerufen D 2 3 CAudioView class CAudioView public CWnd Diese Klasse erm glicht die Visualisierung von Audiodaten Dazu werden aus eingehenden Audiodaten Extremwerte extrahiert und in einem ringf rmigen Datenpuffer abgelegt ViewBuffer vBuf VBUFSIZE Puffer f r extrahierte Audiodaten Extrema int iCurBufReadIndex int iCurBufWritelndex Lese Schreibindizes Das Zeichnen erfolgt ber versteckte Zeichenpuffer CBitmap bmpData bmpScala versteckte Zeichenpuffer f r Daten und Skala CDC bufDataDC bufScalaDC Zeichenobjekte f r den Zugriff darauf bool bBufDCSet Flag Wurden die Puffer erzeugt CRect origScreen Umfang des tats chlichen Ausgabebereiches void OnPaint Diese Methode erzeugt und initialisiert zun chst bei Bedarf neue versteckte Zeichenpuffer und bertragt im Anschluss deren Inhalt skaliert auf den sichtbaren Zeichenbereich des Fensters um so Flackern zu vermeiden void Action REFERENCE TIME rtNow In dieser Method
204. olge eintreffen k nnen zeitlich einsortiert Dar ber hinaus gibt es einen in diesem Zusammenhang aktualisierten Positionszeiger der bei Eintreffen von Daten mit einem Zeitstempel kleiner als der bereits visualisierter Daten das Zeichnen auch dieser Daten garantiert einmal gezeichnete Daten werden jedoch nicht noch einmal geschrieben Die ebenfalls Zeichenpuffer basierte Timer aufgerufene Zeichenmethode der CEventView Klasse muss im Gegensatz zum simplen Hinzuf gen in eine Liste im CEventListView Teilfenster zus tzlich die Verteilung der verschiedenen Filter auf separate vertikal getrennte Bereiche genannt Bahnen dynamisch verwalten Dar ber hinaus werden auf jeder Filter Bahn unterschiedliche Event Beschreibungen ebenfalls dynamisch verschiedenen Subbahnen zugeordnet die eine Filterbahn in vertikal getrennte Abschnitte unterteilen Dazu bedient sich die Routine einer zentral in CVisualizer gehaltenen Liste aus F lerDesc Objekten aller MonitoringEventVisualizer die mit zus tzlichen Informationen z B zum vorigen Event und dem Beginn des aktuellen als zusammengeh rend eingestuften Eventblocks versehen sind Jedem Filter werden maximal 16 verschiedene Subbahnen zugestanden die im Falle der Maximalauslastung bei Eintreffen bisher unbekannter Event Beschreibungen dadurch neu strukturiert werden dass die Subbahn der am l ngsten vergangenen Event Beschreibung neu vergeben wird Nach dem Zeichnen des Events wird gepr ft ob die Beschreibu
205. omonitoring 2 5 4 AudioHashing J Haitsma und T Kalker von Philips Research extrahieren in ihrem von Methoden aus der Kryptografie inspirierten Ansatz 45 in regelm igen Abst nden von 11 8 ms Fingerabdr cke aus dem Signalfluss Dabei gen gt nach ihren Angaben ein Audiosignal mit einer gesamten L nge von nur 3 Sekunden f r eine Identifikation Nach dem Downsampling auf eine Abtastrate von 5 kHz wird das per STFT erzeugte Spektrum auf 300 2000 Hz eingegrenzt und in 33 logarithmisch gestufte Frequenzb nder eingeteilt F r jedes Band wird die Bandenergie berechnet und aus der als ein Bit interpretierten Differenz zweier benachbarter B nder ein 32 Bit langer Hash Signatur genannter Wert erzeugt Eine Menge von 256 solcher Signaturen werden zu einem Hash Block zusammengefasst und repr sentieren somit in 8192 Bit ca 3 Sekunden des Audiosignals Die Wahrscheinlichkeit des gleichen Auftretens zweier aus unterschiedlichen Audiosignalen erzeugten Hash Bl cke A B e 0 1 ist sehr gering hnlich wie bei Zahlen die durch eine geeignete Hash Funktion generiert werden Zur Indexierung eines Hash Blockes werden alle 256 Signaturen in einer Hash Tabelle abgelegt zusammen mit einer Referenz auf den nachfolgenden Hash Block Zwei Hash Bl cke gelten dann als hnlich wenn ihr Hamming Abstand hier in Form der Bitunterschiede kleiner einem gewissen Grenzwert ist In den publizierten Experimenten zeigte sich dass bis zu 2867 der 8192 Bits eines
206. on auf den Zeitpunkt eines solchen Datenelementes Im weiteren Verlauf der vorliegenden Arbeit relevant ist weiterhin die folgende aus der Signalverarbeitung bekannte Kausalit tsanforderung 57 Das Monitoringsystem kann zu einem Zeitpunkt T Z nur auf solchen Eingabedatenelementen x arbeiten f r die gilt t x lt T 2 Audiomonitoring Datenbank D Merkmalsraum E Abbildung 2 1 Vergleich von Anfrage und Datenbank In der Praxis verf gt das Monitoringsystem nur ber Daten aus einem Zeitfenster der Lange T d h die zu bearbeitende Menge A der Eingangsdaten eines Monitoringsystems zu einem Zeitpunkt T Z ist definiert durch A fx r21x 2r7 T Gesucht wird beim Monitoring diejenige Menge von Dokumenten einer vorliegenden Multimedia Datenbank die an einer oder mehreren Stellen mit der Anfrage engl Query oder je nach Verfahren mit Teilen davon in definiertem Ma e perzeptuell oder nach sonstigen Kriterien bereinstimmt F r den Vergleich werden sowohl Query wie abgefragte Datenbank Informationen in einen Merkmalsraum E berf hrt und mittels eines hnlichkeitsma es engl retrieval status value RSV untersucht 27 E muss dabei stark diskriminierend und somit hochgradig problemspezifisch sein Formal ausgedr ckt Gegeben sei eine Dokumenten Datenbank D D Dy von Dokumenten D c M wobei M eine Menge ist zB M Z xX Zu einer Anfrage Qc M wird diejenige Treffermenge re gesucht die sich mitt
207. ondere wurde wie auch aus Tab 6 9 zu entnehmen oft Musik als Sprache eingeordnet Stille dagegen wurde meist korrekt erkannt in manchen F llen jedoch mit einer leichten Verz gerung die allerdings auch in den anderen beiden Klassen mit bis zu vier Sekunden auftrat Die Falschklassifikation von Musik als Sprache scheint bei Analyse des Audiomaterials durch die Art der Musik begr ndet So ist es in den aktuellen Fassungen der genannten Genres weit verbreitetes Stilmittel den Instrumentalanteil auf sehr minimale percussive Elemente und punktuelle Basseins tze zu reduzieren und die Stimmen stark hervorzuheben Durch das Fehlen konstanter Hintergrundmusik wurde daher scheinbar der Stimmanteil oft als Sprache klassifiziert 83 6 Anwendungen Tests und Bewertungen Da auf der anderen Seite Radioansagen und sogar Nachrichtensendungen mehr und mehr mit Musik unterlegt werden schwindet die auch f r Menschen leicht zu trennende Grenze zwischen Musik und Sprache Abhilfe k nnte m glicherweise der geschickte Einsatz von Rhythmikanalysemodulen und merkmalen bringen wie das von Tzanetakis et al zur musikalischen Genreklassifikation eingesetzte Verfahren 108 Auch die von Scheirer et al 92 Alonso et al 3 und anderen Arbeitsgruppen ver ffentlichten Publikationen besch ftigen sich mit dem Gebiet der Tempo und Beatberechnung bzw sch tzung so dass Fortschritte bez glich dieser Klassifikationsproblematik zu erwarten sind 6 2 Performa
208. oringEventOutputPin class CMonitoringEventOutputPin public CBaseOutputPin Diese Klasse rep sentiert einen Ausgangs Eventpin STDMETHODIMP NonDelegatingQueryInterface REFIID riid void ppv Die von dieser Klasse an vorgeschaltete Filter weitergeleiteten IMediaPosition bzw IMediaSeeking Anfragen werden hier ver ffentlicht HRESULT CheckMediaType const CMediaType pmt Der Vorgang ist inhaltlich identisch mit dem in CMonitoringEventInputPin HRESULT DecideBufferSize IMemAllocator pAllocator ALLOCATOR PROPERTIES pProp Genau wie im Fall der Audiopins werden auch hier Eigenschaften des IMemAllocator Objektes mit verbundenen Pins abgestimmt Dazu wird zun chst versucht die Eigenschaften eines Eingangs Eventpins zu verwenden Ist ein solcher nicht vorhanden werden die wichtigsten Eigenschaft Anzahl und Gr e der verwendeten Puffer auf zwei Puffer der Gr e eines EventSample Objektes festgesetzt STDMETHODIMP EnumMediaTypes IEnumMediaTypes ppEnum Diese Methode liefert einen Enumerator zum Auflisten aller pr ferierten Medientypen zur ck HRESULT DeliverEvent IMediaSample pms Diese Methode liefert einen bergebenen Event an einen verbundenen Pin durch direkte Verwendung von DirectShow Funktionalit t 119 Anhang E Technische Dokumentation des Filter SDK E 4 CMonitoringBaseFilter class CMonitoringBaseFilter public CBaseFilter D
209. pecifyPropertyPages implementierende Methode zur bergabe von Anzahl und GUID der verwendeten Konfigurationsseiten virtual HRESULT WriteToStream IStream pStream virtual HRESULT ReadFromStream IStream pStream virtual int SizeMax virtual GetClassID CLSID pClsid virtual DWORD GetSoftwareVersion void Implementation des IPersistStream Interfaces Dazu werden Werte mittels eines IStream Objektes serialisiert und zur Speicherung zur ckgegeben bzw aus einem IStream Objekt deserialisiert und in die entsprechenden Variablen bertragen Die anderen Methoden sind Hilfsfunktionen void STDMETHODCALLTYPE SetBufferSize int iBytes Diese Methode wird zu Einstellen einer benutzerdefinierten Audio Puffergr e iBytes aufgerufen und ndert diese je nach Abspielstatus entweder direkt oder setzt wegen der Verwendung der zu ndernden Puffer ein entsprechendes Flag welches in PreProcessAudio als Indikator zur verz gerten nderung verstanden wird T void SetBufferSizeExec int iBytes F hrt die Anderung der neuen Puffergr e iBytes durch 122 Anhang E Technische Dokumentation des Filter SDK bool InTime REFERENCE TIME rfBlockTime Diese Methode erm glicht durch berschreiben das Ausfiltern von Audiobl cken deren Zeitstempel eine gewissene Latenz berschreitet z B im Fall nicht echtzeitf higer Algorithmen Dazu wird die Methode mit dem zu untersuchenden Zeitstempel von
210. r 5 2 2 Daten bertragung Wie in Abschnitt 5 1 8 erl utert verwenden alle GenMAD Filter das Push Modell zum Datentransport Beim Erhalt eines neuen Datenblockes ruft daher der Eingangs Audiopin die PreProcessAudio Methode des Filters auf Dort wird zun chst eine Kopie der Daten an die GenMAD Applikation bergeben falls das Filter derzeit den Audiofokus besitzt Anschlie end wird der Datenblock an einen noch nicht vollst ndig gef llten Datenpuffer mit einer vom Filter geforderten Gr e angeh ngt und falls dieser vollst ndig gef llt ist an die ProcessAudio Methode bergeben wo die Daten von implementierten Filtern verwendet 68 5 Implementation werden k nnen Falls ein Ende des Datenstroms signalisiert wird bergibt das Filter den offenen Puffer an diese Methode Audiodaten werden automatisch an Eingangspins nachgeschalteter Filter weitergeleitet Anders ist dies bei Eventdaten Diese m ssen explizit ber SendEvent weitergegeben werden wodurch die Implementation von Filterungs Mechanismen erm glicht wird Auch f r Eventdaten existiert der genannte zweistufige Verarbeitungsmechanismus indem in PreProcessEvent jedes als bin rer Datenblock versandte Event in ein Objekt umgewandelt wird und nachfolgend in ProcessEvent f r High Level Verarbeitung zur Verf gung steht Der gesamte Vorgang findet innerhalb eines Filters im selben Thread statt DirectShow erlaubt allerdings auch die Verwendung eines so
211. r Ausrei er scheint das Hauptkriterium der Klassifikationsleistung zu sein da komplette Falschklassifkationen ber lange Zeitr ume selten sind Parametrisiert durch den Diffusionswert und die Segmentmindestl nge gl ttet das MonitoringEventMerger Filter diese Ausrei er bis zu einem gewissen Ma Hier kann durch eine feinere Anpassung des Parameter des Kombinatorfilters sicherlich die Leistung weiter erh ht werden Weiterhin sichtbar wird dass die 8 kHz Pipeline oftmals eine Verz gerung gegen ber der manuell durchgef hrten Klassifikation ausweist wenn dort ein Klassenwechsel stattfindet In einem zweiten Test wurde eine in CD Qualit t aufgenommene Radiosendung von ebenfalls 45 Minuten L nge dem gleichen Testverfahren unterzogen Dabei wurde bewusst ein Sender JamFM gew hlt der wie viele der gro en Radiostationen fast ausschlie lich R n B und souligen Hiphop spielt Die Teilergebnisse sind in Tabelle 6 9 zusammengefasst Auch hier wurden keine Daten als Sonstiges klassifiziert Da der Anteil falsch klassifizierter Stille Daten minimal ist wird auf eine Konfusionsmatrix zugunsten der Vergleichbarkeit verzichtet Die sowohl schlechtere Klassifikationsleistung insgesamt als auch das im Gegensatz zur 8 kHz Pipeline schlechtere Ergebnis der Kombination erkl ren sich aus dem Ablauf Log Anders als im Rock Test findet man hier nicht nur ein h ufiges Springen zwischen den Klassen sondern auch lange falsch klassifizierte Passagen Insbes
212. r vernetzten Struktur ineinander eingebundener Dateien besteht soll nachfolgend zun chst eine bersicht ber diese Struktur gegeben werden In darauffolgenden Abschnitten werden wichtige Klassen und Dateien erl utert bevor abschlie end die Pin Klassen und die zentrale Klasse CMonitoringBaseFilter besprochen werden Die im Rahmen dieser Diplomarbeit implementierten Filter folgen alle dem durch das SDK vorgegebenen Weg und unterscheiden sich nur durch den Code der einzelnen Funktionen Da sie sowohl in Kapitel 5 3 als auch im Quellcode hinreichend dokumentiert sind und im Hinblick auf das zu Beginn des Anhangs D erl uterte Konzept des Fokus auf Erweiterbarkeit hier nur wenig Sinn erg ben befasst sich dieses Kapitel des Anhangs ausschlie lich mit Details des SDK und soll so dem interessierten Benutzer die M glichkeit zu Anwendung und Erweiterung des SDK bieten Dieses Kapitel ist unterteilt in vier Abschnitte Zun chst wird in E 1 ein berblick ber die Vernetzung der im SDK enthaltenen Dateien gegeben Es folgt eine Erl uterung der wichtigsten Elemente in E 2 bevor in E 3 und E 4 die zentralen Klassen der Pins und CMonitoringBaseFilter besprochen werden sollen E 1 berblick ber die Vernetzung der eingebundenen Dateien Die Abbildung E 1 zeigt das Netz der Verbindungen der Headerdateien des Filter SDK Zus tzlich spielt die Stelle der jeweiligen Inchnde Anweisung in diesem Fall aquivalent zum Zeitpunkt der Einbindung und der dar
213. retende Warnung LNK4098 r hrt aus der Verwendung von DirectShow her und kann ignoriert werden 92 Anhang C Benutzerhandbuch GenMAD wird gestartet durch Aufruf von GenMAD exe Das Hauptfenster von GenMAD ist aufgebaut wie in Abbildung C 1 dargestellt Toolbar Zeitanzeige Schieberegler Skalierung P ieee coe aloe oe Filter Pin Verbindung Manipulationsbereich Abbildung C 1 GenMAD Hauptfenster Manipulationsbereich Die im aktuellen Datenflussgraphen enthaltenen Fiver sind als farbige Rechtecke im Manipulationsbereich dargestellt Jedes Filter besitzt einen jeweils zentral angezeigten Namen und verf gt ber einen oder mehrere Pins Pins dienen entweder dem Eingang oder dem Ausgang von Daten zu einem Filter Eingangs Pins sind als kleine graue Quadrate an der linken Seite eines Filters mit nebenstehendem Namen abgebildet Ausgangs Pins an der rechten Verbindungen zwischen Filtern bzw Pins sind als schwarze Linien dargestellt die sich zwischen Pins befinden ber diese Verbindungen werden Daten von Filter zu Filter transportiert Die im Rahmen der vorliegenden Diplomarbeit implementierten Filter werden in Abschnitt 5 3 vorgestellt Ein Filter l sst sich markieren in dem man es mit der linken Maus anklickt Das aktuell selektierte Filter wird rot umrandet dargestellt Dr ckt man die Taste Entf bzw Del so werden das selektierte Filter aus dem Graphen und Verbindungen zu anderen Filtern entfernt Dar ber hinaus lasse
214. rkorrigierenden Codes in bin re Codew rter ce 0 1 gleicher L nge Anhand dieser Codew rter werden die Signale in Klassen eingeteilt Die gew hlten Vektorr ume der Codew rter streben dabei einen m glichst gro en paarweisen Hamming Abstand an Zur Erzeugung der Codes werden unter anderem approximative Lernverfahren eingesetzt Eine Erweiterung stellen Codew rter der Form 0 1 dar 13 die durch nicht uniforme Lange ein Arbeiten auf skalierten Signalen erlauben Der zugrunde liegenden Theorie folgend werden die Dokument Translationswert und gef Skalierungsfaktor umfassenden Dateneintr ge in invertierten Listen abgelegt Zur Trefferbildung die zu einer Menge von Treffern f hrt die sich durch Dokumentenindex und Translationsinformation auszeichnen wird die Anfrage sukzessiv per Schnittmengenbildung mit den invertierten Listen verkn pft Entscheidend f r die Effizienz ist daher die K rze der einzelnen Listen In der Praxis hat sich zu diesem Zweck die dynamische Speicherung in AVL B umen bew hrt die ein schnelles Finden mittels bin rer Suche erlauben Erweiterungen dieses Schemas ergeben sich aus fehlertoleranter und unscharfer Suche sowie aus einem Ranking einzelner Trefferkandidaten Anwendung findet das Konzept unter anderem im Sentinel System 58 das in Kapitel 2 7 erl utert wird und im Rahmen des in dieser Diplomarbeit entworfenen generischen Monitoringsystems das in den Kapiteln 4 und 5 vorgestellt wird F r eine
215. rnsehbereich Equalizer Effekte eingesetzt die bestimmte Frequenzbereiche anheben oder absenken um auch trotz des verschiedenen Grundklangs abgespielter CDs einen Sender eigenen Markenklang beizubehalten oder diesen an g ngige Lautsprechersysteme anzupassen e nderungen des Dynamikverhaltens Eine g ngige Methode um z B als Radiosender in der Vielfalt moderner Beschallung aufzufallen ist die Verwendung von Kompressor Effekten Dabei werden in Abh ngigkeit von Schwellwerten Teile des Audiosignals kurzzeitig so verst rkt oder abgeschw cht dass auf Grund des reduzierten Dynamikumfangs eine h here Lautst rke erreicht werden kann e Skalierung Eine weitere Methode um Aufmerksamkeit zu erreichen ist das Abspielen von Musikst cken mit leicht erh hter Geschwindigkeit Weiterhin kann der Effekt auch der wahrgenommenen Geschlossenheit eines Radioprogramms dienen Dieses Prinzip ist dar ber hinaus auch die Grundlage moderner Club Tanzmusik wo es intensiv eingesetzt wird um den bergang mehrerer Musikst cke ineinander trotz verschiedener Grundgeschwindigkeiten zu erm glichen Die Skalierung auch Pisching genannt f hrt zu nderungen der Tonh he im Extremfall zum sogenannten Mickey Mouse E ffekt e Translationseffekte Laufzeitechos oder Verz gerungen Halleffekte ver ndern ein Audiosignal ma geblich durch Einstreuen akustischer Reflektionen e Andere Verzerrungen Diese k nnen z B als Folge von De Kodierungseinfl ssen w
216. ruck Um trotz dieser Herausforderungen eine nahezu echtzeitf hige Erkennung zu erreichen arbeiten die g ngigen Audioidentifikationsverfahren nicht auf den eigentlichen Audiodaten sondern auf daraus extrahierten Audiomerkmalen engl audio features F r ein Signal xel D CZLxR liefert ein Merkmalsextraktor F eine per Transformation erzeugt Merkmalsmenge Fix c ZxX wobei X eine im Allgemeinen endliche Menge von Merkmalsklassen ist Ein einfaches Beispiel f r X 0 1 stellt folgender Merkmalsextraktors dat 1 falls x ein lokales Maximum an Stelle t besitzt O sonst FJG blicherweise sind vor allem endliche Signale x a b gt R a lt b a und b ganzzahlig von Interesse Die Merkmalssignale folgen dann einer Abbildung 7 gt X wobei J CZ eine endliche Teilmenge ist welche die Positionen der Merkmale angibt 57 Dazu wird meist eine sogenannte Fensterfunktion verwendet die dem Merkmalsextraktor einen transformierten Fenster Ausschnitt des Signals liefert Der Extraktor berechnet zu diesem Fenster ein repr sentatives Merkmal oft dargestellt durch einen Vektor f Anschlie end wird das Fenster schrittweise um eine fixe Einheit verschoben Auf Fensterfunktionen wird in Abschnitt 2 4 1b genauer eingegangen Aufgrund der Regelm igkeit der verwendeten Fenster spricht man in diesem Fall von gwidistanten Merkmalen Im nicht aquidistanten Fall werden Merkmale dagegen ereignisbasiert also ohne fest
217. s auf eine Mindest Segmentl nge von vier Sekunden angepasst und die Gewichtung der mit 44 1 kHz arbeitenden Pipeline auf 1 5 erh ht da durch die minderwertige G te des Eingangssignals mit einer schlechten Klassifikationsleistung der anderen Pipeline zu rechnen war Um die Klassifikationen bewerten zu k nnen wurden sie mit einer manuell durchgef hrten Unterteilung verglichen indem ein Excel Makro nachtr glich korrekte und fehlerhafte Zuordnungen der beiden Pipelines und des Gesamtergebnisses untersuchte Die dabei erstellten Logdaten erlauben dar ber hinaus einen Einblick in die Ursachen fehlerhafter Klassifikationen Die Ergebnisse sind in Tabelle 6 8 aufgef hrt Die Gesamtleistung wurde anhand der Ausgabe des Kombinatorfilters gemessen Da keine Klassifikation in Sonstiges oder Stille stattfand sind diese Klassen nicht aufgef hrt 44 1kHz 8 kHz Kombination Gesamte korrekte Klassifikation 82 38 66 82 83 77 Gesamte falsche Klassifikation 17 62 33 18 16 23 Musik korrekt klassifiziert 88 56 69 84 90 52 Musik falsch klassifiziert 11 44 30 16 9 48 Sprache korrekt klassifiziert 70 11 60 85 69 18 Sprache falsch klassifiziert 29 89 39 15 30 82 Tab 6 8 bersicht ber die Klassifikationsleistung in der beiden Pipelines und der Kombination im Radiotest 1 82 6 Anwendungen Tests und Bewertungen 44 1 kHz 8 kHz Kombination Gesamte korrekte Klassifikation 56 6 75 85 63 71
218. s enthaltene Funktionalit t des Mobilfunk Standards 3GPP zus tzliche Gewichtung Die Quicktime Architektur besteht aus einer Kombination flexibler Toolsets und Plugin Komponenten in Form von ber 2000 Funktionen Zu diesen Toolsets geh ren z B die grundlegende Movie Toolbox die Streaming API und andere Toolsets zu jeweils abgegrenzten Funktionsbereichen wie Bildkompression und Videocapturing die von Applikationen explizit aufgerufen oder bei Bedarf automatisch verwendet werden und ber Callbacks mit diesen kommunizieren Gleiches gilt f r die Plugin Komponenten zu denen beispielsweise Handler f r die einzelnen Medientypen Standard User Interfaces und Daten Handler f r verschiedene Arten von Datenquellen wie lokale Dateien URLs oder Zeiger geh ren Jede Komponente wird dabei ber einen je vierstellig repr sentierten Typ Subtyp und Herstellercode identifiziert und ber den Component Manager angesprochen 43 3 Multimedia Frameworks Applikation A NowMoviFromFio Movie Toolbox A A M Datenhandler Komponente A Videodatei Abbildung 3 2 Beispiel zur Quicktime Architektur Vv Movie Importer Komponente Im Beispiel aus Abbildung 3 2 fordert die Applikation die Movie Toolbox auf eine bestimmte Datei zu ffnen Die Toolbox verwendet daraufhin eine zum Dateiformat entsprechende Dateihandler Komponente um die Datei anzusprechen Falls es sich bei der Datei n
219. schenden Kanals erreicht werden kann k nnen zu jedem Anfrageelement verz gerte Kopien in den Eingabestrom eingef gt werden Dadurch wird die Simulation eines Halleffektes erm glicht Die Merkmalsextraktion erzeugt aus den gefensterten Signalen eine Folge von Differential Signalen und quantisiert diese zu einer 1 1 Sequenz Der frameweise Vergleich der Anfrage mit den ebenfalls aus 1 1 Str men bestehenden Referenzstr men und zus tzlichen verz gerten Versionen davon erfolgt ber eine Korrelationsfunktion deren ber amp Frames gemittelte Amplituden Spitzenwerte in Verbindung mit zur Diskriminierung von konstanten Plateaus und echten Spitzenwerten verwendeten Varianzwerten eine Menge von m glichen Trefferkandidaten ergeben Daraus wird dann ein sogenannter Superkandidat gewonnen der zusammen mit den brigen Kandidaten als Systemausgabe zur ckgeliefert wird Die Autoren evaluieren in ihrer Ver ffentlichung neben m glichen maximalen Verz gerungseinspeisungen und Verzerrungstoleranzen auch die maximale Anzahl sowohl simultan verarbeitbarer Referenz wie separat auch Anfragestr me bei jeweils fixen brigen Systemparametern und weisen so die Praxistauglichkeit des Sentinel Systems nach 58 Das von Garcia et al entworfene AIDA Audiomonitoringsystem 41 verwendet eine hierarchische Struktur auf Basis von CORBA und Web Services dessen Knoten jeweils versuchen eine gegebene Anfrage zu identifizieren und bei Misslingen den
220. schnitt wesentliche spektrale Ver nderungen befinden Dies f hrt dazu dass die Spektralanalyse keine gute Aufl sung f r hohe Frequenzen besitzt Im Folgenden sind g ngige Fensterfunktionstypen aufgef hrt 81 Jede Funktion liefert einen Frame W der L nge n Durch verschiedene Parameterwerte entstehen Variationen der jeweiligen Fensterfunktion die teilweise sogar eigene Bezeichnungen besitzen Im Folgenden gilt f r die Fensterfunktion stets w k 0 f r R lt O oder gt n i ii Rechteck Boxcar Diese Funktion liefert ein rechteckiges Fenster zur ck und ist nur der Vollst ndigkeit halber aufgef hrt Das Verwenden der Boxcar Funktion entspricht dem Arbeiten ohne Fensterfunktion Es gilt w k 1 falls k e 0 n 1 Generalisierte Kosinus Fensterfunktion Hamming Hann Blackman Hierbei handelt es sich um eine popul re Familie von Fensterfunktionen die einer gemeinsamen Form folgen und in Abbildung 2 6a dargestellt und wie folgt f r k 0 n definiert sind w k l a a cos 2 d COS 4 a COS CES n l1 n 1 n 1 Die jeweiligen Parameter a sind dabei der Tabelle 2 6c zu entnehmen Funktionstyp a a a a Hamming 0 54 1 ap 0 0 Hann 0 5 1 ay 0 0 Blackman 0 42 0 5 0 08 0 Blackman Harris 0 35875 0 48829 0 14128 0 01168 Tabelle 2 6c 15 2 Audiomonitoring iii Kaiser Die Form dieser Funktion kann durch verschiedene Werte des reellwertigen Parame
221. sed identication of audio material using mpeg 7 low level description in Proc of the Int Symp of Music Information Retrieval ISMIR Indiana USA Oct 2002 M Alonso B David and G Richard Tempo and beat estimation of music signals Proc of ISMIR 2004 Barcelona Spain Oct 2004 ALSA Advanced Linux Sound Architecture Projekt Homepage http www alsa project org Apple iTunes http www itunes de Apple Logic Pro http www apple com logic Apple Quicktime http developer apple com quicktime J J Aucouturier and M Sandler Segmentation of Musical Signals Using Hidden Markov Models Proceedings of the Audio Engineering Society 110th Convention May 2001 Audioble Magic http www audiblemagic com AudibleMagic Press Indies Join Major Labels In Fingerprinting Songs For Copyright Protection With Audible Magic s RepliCheck Service 25 10 2004 http www clango com news amp press press 20041025 html R Baeza Yates and B Ribiero Neto Modern Information Retrieval Addison Wesley 1999 B Bailey J A Konstan R Cooley and M Dejong Nsync A toolkit for building interactive multimedia presentations Proceedings of the 6 ACM International Conference on Multimedia 98 ACM Press 257 266 1998 R Bardeli Effiziente Algorithmen zur deformationstoleranten Suche in Audiodaten Diplomarbeit Universit t Bonn 2003 126 14 15 16 17 18 19 20 21
222. sich durch die N he zum DirectShow Framework bzw zu Applikations basierenden Funktionen etwa zur grundlegenden Ereignisbehandlung oder zur Erzeugung von Fensterobjekten Dies geht nicht unbedingt einher mit einer abstrakteren Sicht engl scope der Klassen sondern eher mit einem abstrakteren Aufgabenbereich Die enge Verzahnung mit DirectShow und das Ziel einer m glichst ressourcenschonenden und effizienten Anwendung impliziert zum einen Klassen die sich ber mehrere Schichten erstrecken und zum anderen auch in h heren Schichten wie der Visualisierung den Umgang auch mit nur rudiment r aufbereiteten Signaldaten In der tiefsten Schicht findet die direkte Kommunikation mit DirectShow Komponenten statt Die zentrale DirectShow Komponente GraphBuilder wird ebenso durch eine Klasse gekapselt wie Filter und Pins Um eine erweiterte Kommunikation mit den Filtern zu erm glichen ist in dieser Schicht auch die Implementation des IMonitoringMaster Interfaces angesiedelt Dies erlaubt eine geeignete Modellierung der von DirectShow bereitgestellten Funktionen zur Objekt Erzeugung und Kontrolle von Filtern und anderen Klassen und schafft somit die grundlegende GenMAD Schicht auf der eigene Funktionsschichten aufgesetzt werden k nnen Auf dieser Schicht baut eine Ebene zur Behandlung von systemweiten Ereignissen und zur Kontrolle von Transportfunktionen auf Diese stellen durch das Verwenden sowohl betriebssystemnaher als auch DirectShow bezogener Funk
223. sich in Ausstattung und Parametern zum Teil stark unterscheiden das Verwenden von in Echtzeit in den Rechner eingehenden Online Audiodaten In einem Graphen lassen sich solche Filter wie gew hnliche Datei Quellfilter verwenden Allerdings k nnen aus offensichtlichen Gr nden keine Seeking Funktionen verwendet werden Auch andere zeitbasierte Mechanismen k nnen je nach Capturing Filter eingeschr nkt sein e Auch das Mitschneiden von Audiosignaldaten ist durch eine Kombination zwei Filter m glich Dazu wird ein Wavedest genanntes Filter verwendet das Teil des DirectX9 SDK ist und intern die f r WAV Dateien n tige Formatierung zu den reinen Datenbl cken hinzuf gt Der Ausgangspin dieses Transform Filters muss mit einem File Writer Filter verbunden werden welches standardm ig mit DirectX installiert wird Der Pfad der Zieldatei kann dabei frei gew hlt werden 76 Kapitel 6 Anwendungen Tests und Bewertungen 6 1 Test des Klassifikationsfilters Um verschiedene Eigenschaften des in Abschnitt 5 3 10 erl uterten MonitoringClassifier Filters zu evaluieren wurde eine Serie mehrerer Tests durchgef hrt die nachfolgend beschrieben sind Dazu wurde zun chst der Einfluss verschiedener Parameterwerte und Verschaltungsmuster auf die Klassifikationsleistung untersucht bevor in zwei abschlie enden Tests die korrekte Klassifikation von zwei l ngeren Radiomitschnitten mittels eines komplexeren Projektes getestet wurde 6 1 1 Datenausw
224. sowohl auf die sehr gro e Anzahl existierender DirectShow Signalverarbeitungsmodule zur ckzugreifen als auch mit Hilfe des SDK mit geringem Aufwand eigene Plugins zu entwickeln schafft Raum f r neuartige Monitoringanwendungen und erlaubt ein flexibles und produktives Arbeiten ohne aufwendige Einarbeitung Hinzu kommt die durch das SDK und die grundlegenden Schnittstellen gegebene Erweiterbarkeit des Systems so dass auch zuk nftige Entwicklungen auf diesem Gebiet mit einflie en k nnen Gleiches gilt nat rlich auch fur die GenMAD Applikation die z B leicht um weitere Visualisierungsoptionen erg nzt werden k nnte wie in Abschnitt 7 1 beschrieben wird Ein wesentliches Ma f r die Praxistauglichkeit eines Systems stellen seine Performanz und Skalierbarkeit dar Gegen ber einer propriet ren Monitoringl sung ist in einem generischen System stets mit einem Overhead zu rechnen der darauf beruht dass das System eine gro e Verschiedenheit von Modulen verarbeiten k nnen muss Wie in Kapitel 6 2 aufgezeigt zeichnet sich die GenMAD Applikation jedoch durch eine u erst geringe Grundprozessorlast aus und auch die rein auf Eventdaten arbeitenden Filter ben tigen eine lediglich minimale Prozessorleistung Auch der Einsatz der Klassifikations und Identifikationsfilter in komplexen Projekten ist problemlos m glich wobei sich die Klassifikationsfilter zus tzlich durch die Wahl des Audioformates gut skalieren lassen Trotzdem zeigte das System a
225. t t zu erh hen und das Prinzip des Monitorings in einen gr eren Zusammenhang zu stellen k nnen z B ereignisbasierte Filter entwickelt werden die bei Eintreffen bestimmter Ereignisse externe Funktionen ausf hren wie etwa zum Emailversand oder zur Generierung akustischer Signale Bereits bestehende Konzepte lassen sich dar ber hinaus erweitern indem statischen parameterbasierten Entscheidungsprozessen M glichkeiten zur Adaption an die eingehenden Daten gegeben werden z B im Fall des MonitoringEventMergers der so auf schnelles Springen zwischen mehreren Klassen reagieren kann Ein weiteres wichtiges Feld bietet der Datenaustausch mit anderen Applikationen ob lokal oder netzwerkbasiert Hier ist z B die M glichkeit zu nennen Filter durch Matlab testen zu lassen indem Matlab Daten blockweise zur Eingabe an ein Filter bergibt und die entsprechende Filterausgabe analysiert GenMAD bietet also vielf ltige M glichkeiten zur Erweiterung die den Rahmen m glicher Anwendungen noch einmal vergr ern k nnen Dies umfasst auch das Einbinden zuk nftiger Technologien 90 Anhang A Hinweise zur Verwendung des Filter SDK Vorausgesetzt wird die Integrit t der Verzeichnisstruktur d h auf der obersten Verzeichnisebene GenMAD SDK des SDK liegen mindestens die folgenden Unterverzeichnisse vor GenMAD SDK BaseFilter DIBeEEX Interfaces SDK BaseFilter enth lt f r das SDK grundlegende Klassen DirectX die unter Windows XP
226. t strebt an den Blockenden gegen 0 und ist achsensymmetrisch Auf diese Weise werden auch Diskontinuit ten vermieden Grund f r den Einsatz einer Fensterfunktion ist die f r nachfolgende Raum Frequenzraum Transformationen zeitliche Eingrenzung des Signals Um zu einen Zeitpunkt aus einem Signal x r einen Frame x r zu erhalten werden das Signal und die Fensterfunktion punktweise miteinander multipliziert x r x r w r t Es sei angemerkt dass je nach Anwendung den Start linke Kante des Fensters oder Mittelpunkt der Fensterposition bezeichnet Die L nge des Fensters spielt dar ber hinaus eine wichtige Rolle Ein zu kleines Fenster erlaubt keine relevanten Aussagen ber tieffre 14 2 Audiomonitoring Kaiser1 Amplitude Hamming T T T T Hann 4 i i Blackman 4 BlackmanHarris Kaiser2 Kaiser5 Kaiser20 in ee ergian n in n ATLL IE S Sob ecco deeded ccccc Jom bP 4 g b H Amplitude un 1 0 4 i 1 L H 10 30 40 50 Samples L L is L 40 50 60 10 20 Samples 2 6a Die generalisierte Kosinusfuntkion links Abb 2 6b Die Kaiserfunktion mit verschiedenen a Werten rechts quente Signalanderungen w hrend sich mit steigender L nge des Fensters auch die L nge des damit korrespondierenden Signalausschnitts und damit die Wahrscheinlichkeit erh ht dass sich im Signalaus
227. te Konfigurationsansicht dar und wird als solche in FilterDefs h registriert Basierend auf der DirectShow Klasse CBasePropertyPage verwendet die Klasse den PropertyType Datentyp zur bergabe von Properties und berschreibt eine Reihe von Ereignisbehandlungsmethoden zum Umgang damit Ein solches Vorgehen ist n tig da es keine direkte Verbindung zwischen Filter und Konfigurationsseite gibt sondern nur durch COM DirectShow vermittelte Kommunikation Prinzipiell werden z B f r dem Fall komplexer Filter beliebig viele Konfigurationsseiten innerhalb des Dialogs unterst tzt hier wird jedoch nur eine Seite implementiert Die Seite besteht aus acht Zeilen die jeweils ein Label ein Textfeld und einen Button beinhalten In Abh ngigkeit vorhandener Properties werden Zeilen mit Angaben Namen gef llt und teilweise oder komplett versteckt Dadurch wird das Anzeigen dynamisch vorhandener Properties erm glicht Durch Verwenden zweier Felder von Properties ist auch ein Zur cknehmen von nderungen m glich PropertyType pPropertyType bisherige Werte PropertyType pPropertyTypeNewVal neue Werte int cPropertyCount Anzahl Properties Hilfsfunktion die Properties Feld weise kopiert void CopyPropertyValue PropertyType to PropertyType from int Count CUnknown WINAPI CreateInstance LPUNKNOWN pUnk HRESULT pHr Diese Factory Methode erzeugt eine CMonitoringBaseFilterPropertyPage Instanz und liefert diese zur
228. ten Klassifikation von Musikdaten 100 100 80 60 50 40 20 0 0 2 3 4 5 44 1kHz 22 05kHz 11 025kHz 8kHz E Sonstiges 3 64 0 0 0 E Sonstiges 4 845 1 04 0 36 0 01 0 05 54 73 67 58 75 48 78 12 70 36 E Sprache 20 02 20 48 28 58 39 93 Sprache Musik 40 43 31 37 24 465 21 87 29 6 EI Musik 76 35 79 52 71 42 60 07 Abb 6 4 Klassifikationsleistung jeweils als Diagramm und als Matrix Klassifikationsparameter k 5 3 Frame Nachbearbeitung siehe Abschnitt 6 1 6 6 1 4 Einfluss verschiedener Abtastraten Da Audiodaten in sehr unterschiedlichen Qualit tsstufen zu finden sind wurde in diesem Test die Klassifikationsleistung bei Ver nderung der Abtastrate untersucht wie in Abbildung 6 4 dargestellt Dabei wurden sowohl Trainings als auch Testdaten mit derselben Abtastrate verwendet Interessanterweise scheint die Klassifikation von Musikdaten am besten bei einer Abtastrate von 22 05 kHz zu funktionieren wahrend es bei Sprachdaten 8 kHz sind Als Mittelweg werden daher in den nachsten Tests meist Daten mit einer Abtastrate von 11 025 kHz verwendet 6 1 5 Einfluss der Fensterweite Getestet wurden die in den anderen Tests verwendete Fensterweite von 512 Samples mit 384 Samples Uberlappung sowie die entsprechenden Paare 256 128 und 1024 512 Wie schon von Scheirer amp Slaney 93 vermutet konnte kein nachhaltiger Einfluss
229. ters a ver ndert werden Je gr er die Werte von a desto enger wird das Fenster Ein Wert von 0 korrespondiert mit der Rechtecksfunktion wohingegen sich das Fenster f r steigende a immer mehr an eine Gausskurve ann hert Dazwischen werden die Formen verschiedener Fensterfunktionen approximiert z B Blackman durch den Wert a 8 885 Diese Funktion ist in Abbildung 2 6b dargestellt Lajl 9 w k n 1 I a a Dabei ist I die modifizierte Besselfunktion 0 ter Ordnung Neben weiteren Fenstertypen wie Chebyshev Bartlett und der verwandten Dreiecksfunktion gibt es nat rlich auf spezielle Zwecke zugeschnittene Fensterfunktionen wie z B die nachfolgend aufgef hrten die in verschiedenen Audio Codecs Anwendung finden 116 iv MP3 MPEG 2 AAC w k sin ERG DI v Ogg Vorbis w k sin Z sin D Transformation In dieser Verarbeitungsstufe wird die Dimensionalit t des Signals verringert Ziel ist die Reduzierung der Redundanz durch vergr erte Abstrahierung in Form von Kompaktheit d h Reduzierung der Dimension ohne Verlust an intrinsischer Information blicherweise werden hierzu lineare Transformationen verwendet Gegeben sei eine nxd dimensionale Matrix X aus 2 d dimensionalen Datenvektoten Die lineare Transformation von X in eine nxm Zielmatrix Y wobei hier m lt d ist allgemein definiert als Y HX wobei H die dxm Matrix der linearen Transformation ist Zwar existieren optimale lineare Tr
230. tion von Modulen mehrerer Typen 28 Quellen dienen der Eingabe von Datenstr men also z B Module zum Einlesen von Videodateien w hrend Renderer mit der Ausgabe von Daten besch ftigt sind Module die auf den Multimediadaten arbeiten werden als Transformatoren bezeichnet letztere haben je mindestens einen Ein und Ausgang Die Modellierung solcher einzelner Ger te erfolgt mittels eines Datenflussgraphen in dem die Ger te durch Knoten und Datenstr me durch gerichtete Kanten dargestellt werden 100 Datentransportarchitekturen lassen sich unterscheiden in Push und Pullmodelle je nachdem ob der Produzent oder der Konsument den Transport initiiert Die genauen Details der Umsetzung der Architektur bestimmen somit ma geblich die Performanz des Frameworks Netzwerkfunktionalit t amp Streaming Streaming erlaubt auch lokal die Echtzeit bertragung von Multimediadaten ohne vorheriges Laden der gesamten Datei Dies spielt vor allem in zeitkritischen Applikationen wie Live bertragungen und Internet Radio eine entscheidende Rolle beinhaltet jedoch einen durch begrenzte und oder schwankende Bandbreite begr ndeten Trade Off zwischen Qualit t Robustheit und Datenmenge Die Daten dieser zentralen Framework Komponente werden dabei paketweise bertragen um in Verbindung mit geeigneten Protokollen eine m glichst geringe Latenz zu gew hrleisten Dar ber hinaus spielt der Umgang mit verlorenen Daten eine wichtige Rolle u
231. tionen tieferer Klassen und die Delegierung abstrakterer Klassen die Vermittlungsschicht von GenMAD dar Auf der obersten Ebene finden sich Klassen die verschiedene Visualisierungssichten auf die beiden grundlegenden Signaltypen erlauben Auch die visuelle Konfiguration und Anordnung von Filtern findet hier statt Die aufgabenspezifische Kommunikation von GenMAD mit den Filtern spielt eine zentrale Rolle im hier vorgestellten Konzept Dies umfasst neben generellen Objekt Kontrollmechanismen vor allem die ber das IMonitoringMaster Interface eingef hrten Methoden die nicht von DirectShow abgedeckte oder anwendungsspezifische Funktionalit t bereitstellen Dazu geh ren folgende Funktionsbereiche e Abstimmung von Filter Parametern im gesamten Graphen e Push Funktionen f r Analyse und Visualisierung von Audio und Eventdaten e Mitteilung von internen Filter Ver nderungen e Mitteilung von Datenstrom Unterbrechungen e Identifikation von Filtertypen 57 4 Entwurf des GenMAD Systems Zwar besitzt DirectShow eine eigene Infrastruktur f r Ereignis Mitteilungen Funktionen mit hoher Datenlast berfordern jedoch die bereitgestellten Transportmechanismen Diese Infrastruktur wird daher in GenMAD nur f r wenige Funktionen verwendet wie in der technischen Dokumentation beschrieben wird 4 2 3 Filter DirectX Filter sind Windows DLLs dynamic link libraries deren Basisklasse von der DirectShow Klasse CBaseFilter abgeleitet ist Dadurch w
232. tory Stop CFilterContainer CURLDialog CGraphController pGraphCtri GetState HRESULT SetPos protected ublic public URL CGraphController pGraphCtr eee URL Diato 0 CMainFrame SAVO IBaseFilter pFilter i CMainFrame ee CNP ARLEN CTypedPtrList pConnections EA PreCreateWindow BOOL RenderData int Pinsin PinsOut Dee OnCmdMsg BOOL SwitchPinConnection sel z SetGraphController ShowMediaTypes int iMaxPinOutWidth IsDirty bool inte protected SetStatus int width height WindowProc LRESULT SetStatusBar eier OnCreate int SetSeekBar CString sName CToolbarEdit OnSetFocus HandleSeekTimer CString sFilterName OnToolbarAddfiter SwitchReferenceClock HRESULT int ID protected OnPinmenuConnection GetTime HRESULT CLSID clsiD char sNewTextf OnPinmenuMediatypes GetFilter CFilterContainer MonitoringSlave pMonitoringSlave int Modus OnToolbarPause GetFilterByViewName CFilterContainer Ecol DEUAS LONGLONG IParamValue OnToolbarStart GetFilter CFilterContainer byte szFileBuffer int iProperValue OnDateiRenderfile GetGraph GraphBuilder bool bSupportsPersistance bool bOverriding OnDateiRenderUri AddFilter HRESULT int iFileSize OnButtonSave RemoveFilter HRESULT CString sWriterFilename Wk Onclose AddConnection HRESULT CToolbarEdit OnButtonOpen SetFilterPosition public CToolbarEdit OnButtonStop GetSelectedFilter CFilterContainer CF
233. trol m rice IMediaEventEx pEvent int iEventOutPins IMediaSeeking pSeek liiieliete Meet elem public ypedPtrList pFilters CVisualizerFrame CAboutDig Sind cong CVisualizerFrame ind pClientArea SetPins bool bDirtyFlag nn HRESULT public bool bLeftMouseDown NotifyDiscontinuity HRESULT CAboutDig CFilterContainer pSelectedFilter ShowEvent HRESULT CFilterContainer pDraggedFilter Star i CPininfo pSelectedPin Pause CPininfo pDraggedPin Stop F int xOff yOff i CMonitorApp RECT MinMax fee ar CStatusBar m_wndStatusBar SetFollow CChildView private CSlideToolBar m_wndSeekBar NotityFoliow CGraphController pGraphCtrl CString sLastFileWriterDirectory ListAudioViewFilters protected TE IReferenceClock pRefClock SetCurrentFiler CGraphController pGraphCtrl 5 BER en Public a Initinstance r TAERE Setclonareat en as CChildView SC Grepn Controller UpdateFilterDesc PreCreateWindow BOOL an GetEventVisualizerCount int WindowProc LRESULT gt Update putes SetGraphController Be PreCreateWindow BOOL esetGrap protected lt lt static gt gt Createlnstance CUnknown el os OnPaint CMainFrame Serialize OnTimer HandleGraphEvents OnClose protected HandleMouse OnButtonFollow CStatusBar m_wndStatusBar HandleKeys t OnHSeral CSlideToolBar m_wndToolBar Paint CChildView m_wndView Start CString sLastMediaDirectory Pause CString sLastArchiveDirec
234. tschland von Vodafone angebotene Service erlaubt eine Identifikation von per Mobiltelefon bertragenen Musikst cken Der kontinuierlich steigende Datenbestand umfasst nach eigenen Angaben derzeit ber 2 2 Millionen St cke Zur Identifikation werden die ersten 30 Sekunden des Service Anrufes mitgeschnitten und auf dem firmeneigenen Cluster aus 80 vernetzten Linux PCs analysiert 104 26 2 Audiomonitoring Der Algorithmus arbeitet ereignisbasiert mit Audio Merkmalen die aus Energiemaxima also Spitzen im Spektrogramm des Signals gewonnen werden Diese Merkmale beschreiben Ankerpunkte in einer Zeit Frequenz Konstellationskarte die mittels einer durch Unterschiede in Frequenz und Zeit definierten Nachbarschaftsrelation zueinander in Beziehung gesetzt werden Jedem Ankerpunkt wird somit eine geeignete Zone im angrenzenden Bereich der Konstellationskarte zugeordnet Die Merkmale werden nachfolgend klassifiziert und in einer durch die Merkmalsklasse indexierten Hash Tabelle gespeichert 57 Die Treffersuche verwendet ein Votingverfahren das m gliche Verschiebungen zwischen Anfrage und Datenbestand berechnet und sich durch seine Anlehnung an Geometric Hashing 118 sehr gut parallelisieren l sst Dabei wird ein Ranking vorgenommen das auf einem aus der Differenz fortlaufender Offsets zwischen Anfrage und Datenbasis berechneten Histogramm beruht Der Ranking Wert ergibt sich aus der H he der gr ten Spitze des Histogramms Wang et al beschr
235. tyVarType 0 110 Anhang D Technische Dokumentation von GenMAD pProp Zeiger f r R ckgabe T virtual HRESULT STDMETHODCALLTYPE GetProperty int iPropID PropertyType pProp 0 Festlegen einer Property Parameter Prop die Property virtual HRESULT STDMETHODCALLTYPE SetProperty PropertyType Prop 0 Festlegen von Parametern zur Abstimmung unter allen Filtern Parameter iParamID Parameter ID dValue Wert des Parameters virtual HRESULT STDMETHODCALLTYPE SetParam int iParamID double Zuweisen des Audiofokus Parameter bShowData Flag T dValue 0 a virtual HRESULT STDMETHODCALLTYPE SetShowAudioData bool bShowData D 4 Strukturen D 4 1 AudioBuffer 0 Wrapper Struktur fir Audiodaten dient dem Datenaustausch zwischen Host und Filtern struct AudioBuffer PBYTE REFERENCE TIME rtTimestamp int iLen int iSampleRate int iBytesPerSample int iChannels D 4 2 EventSample Zeiger auf Datenblock Zeitstempel L nge des Blocks in Byte Abtastrate Anzahl Bytes je Sample je Kanal Anzahl Kan le je Sample Datenstruktur f r die Verarbeitung von Events auch von Filtern genutzt typedef struct tagEVENTSAMPLE LONGLONG rtTimestamp char sDescriptor 512 long LSeore ones heiter char sGenerator 256 int iSampleRate int iBytesPerSample int iCha
236. tze Oft finden sich dabei Kooperationen zwischen Forschungsgruppen und kommerziellen Interessenten wie unter dem Punkt Monitoring am bertragungskanal nachfolgend beschrieben wird Wie in Abschnitt 2 1 erl utert ist ein zentrales Merkmal dieser Systeme ihre Echtzeit F higkeit Da es wegen der Vielf ltigkeit der Zielsetzungen und den verwendeten Frameworks kaum m glich scheint eine allumfassende Definition des Audiomonitorings zu geben soll im Folgenden zun chst auf bliche Gemeinsamkeiten vieler Systeme eingegangen und danach ein konkreter berblick ber ausgew hlte Beispiel Anwendungen gegeben werden Nach Cano et al 21 lassen sich Audiomonitoring Systeme je nach Anwendungsbereich in drei Klassen einteilen e Monitoring auf Seiten des Distributors Anbieter von Inhalten k nnen feststellen ob sie ber die zur Ver ffentlichung n tigen Berechtigungen verf gen Auch die Arbeit mit archiviertem Audiomaterial kann durch Monitoring profitieren Das gilt auch f r Anbieter von CD Verfaltigungs Dienstleistungen die auf diese Weise nicht autorisierte Inhalte berpr fen k nnen 90 10 e Monitoring am bertragungskanal Sowohl Rechteinhaber von z B im Radio bertragenen Musikst cken als auch gewerbliche Werbekunden haben ein Interesse daran gesendete Inhalte zu berpr fen sei es um bertragungsentgelte zu berwachen tats chliches Airplay von Werbeanzeigen zu kontrollieren oder aus statistischen Gr nden Dazu z hle
237. tzlich zur Verwendung der CMonitoringBaseFilter Klasse in der das lauff hige Grundsystem zu z B Datentransport Medienformatverhandlung und GenMAD Funktionen enhalten ist wird die neue Filterklasse also dynamisch mit aktuellen Angaben ausgestattet und stellt daher eher eine Art Grundstruktur dar die ohne diese zentralen SDK Dateien nicht kompilierbar w re Im Folgenden sollen wichtige Teile der Filter Implementation dargestellt werden die in CMonitoringBaseFilter und den Pinklassen implementiert sind 5 2 1 Medienformat Abgleich Das in DirectShow enthaltene Konzept zur Behandlung von Datenformaten besteht aus je einer Angabe zu Haupt und Untertyp der blockweise verwendeten Daten Beim Versuch Aus respektive Eingangs Pins zweier Filter zu verbinden engl hand shaking muss sichergestellt werden dass das nachgeschaltete Filter das angebotene Datenformat verarbeiten kann Dazu rufen die Pins nach einem von DirectShow diktierten Schema verschiedene Methoden zum Vergleich und der Suche nach m glichen Datentransformationen von Formattypen auf In GenMAD Filtern wird eine solche Kontrolle dadurch sichergestellt dass die Pin Klassen jeweils zun chst selbstst ndig versuchen ein akzeptables Format zu finden und erst im Anschluss die entsprechenden Methoden von CMonitoringBaseFilter aufrufen Unterst tzt werden sowohl unkomprimierte PCM Audiodaten in 8 und 16 Bit Aufl sung und bis zu zwei Kan len sowie der selbst definierte Typ MEDIATYPE_Even
238. uch in komplexen Testprojekten eine solide Robustheit Es sei allerdings angemerkt dass fremdentwickelte Filter im Fall interner Fehler den Datenflussgraphen so beeintr chtigen k nnen dass ein Fortsetzen des Datentransports nicht m glich ist Da DirectShow Filter COM basiert sind und durch das entsprechende Windows Subsystem kontrolliert werden bestehen prinzipbedingt nur eingeschr nkte M glichkeiten zur Behandlung solch grundlegender Fehler Auf der anderen Seite und im Normalfall f hrt das COM Framework aber auch zu einer sichereren Ausf hrung da das gesamte grunds tzliche Filtermanagement das z B die Verwaltung von Filtern und die Zuteilung von Ressourcen umfasst extern durchgef hrt wird Dadurch wird GenMAD ein Arbeiten auf abstrakterer Ebene erm glicht Nat rlich stellt die damit thematisch verbundene Festlegung auf DirectX und die Windows Plattform eine Beschr nkung dar Wie in Kapitel 3 3 dargelegt existieren jedoch mit Helix Quicktime und JMF nur drei Multimedia Frameworks denen man eine plattform bergreifende Unterst tzung zugestehen kann Keines dieser Frameworks kann jedoch sowohl einen so hohen Verbreitungsgrad eine vergleichbare Performanz und gleichzeitig eine quivalent gro e Menge bereits existierender Verarbeitungsmodule wie DirectX aufweisen Daher stehen dieser Einschr nkung gro e Vorteile gegen ber aus denen GenMAD seine genannten St rken zieht Die Umsetzung des Systems mit seinen jetzigen Eigensc
239. udiosignal in eine Sequenz von Merkmalen konvertiert welche dem Modellier modul als Eingabe dienen Hauptaufgaben sind neben der Reduzierung der Dimensionalit t das Extrahieren perzeptuell relevanter Daten und die Gew hrleistung der Robustheit a Vorverarbeitung Das eingehende Audiosignal wird f r die weitere Bearbeitung in ein vorab gew hltes einheitliches Format konvertiert Die dazu durchgef hrten Transformationen umfassen unter anderem e Analog Digitalwandlung kurz A D Wandlung e Umrechnung mehrkanaliger Datenstr me z B stereo nach mono e Anpassung Umrechnung der Abtastrate engl resampling Es wird unterschieden zwischen Up und Downsampling je nachdem ob die Abtastrate erh ht oder verringert wird Beides wird durchgef hrt mittels verschiedener Interpolationsalgorithmen wie z B linearer und bandbegrenzter Interpolation und Filterung 96 e Vorverst rkung e Normalisierung d h anteiliges Skalieren des Wertebereichs des Signals auf den m glichen digitalen Wertebereich e Bandpassfilterung Ausschlie en von Frequenzbereichen z B als Vorverarbeitung f r eine A D Wandlung e Dekodieren Kodieren z B Umwandeln in das MP3 Format b Fensterfunktion Die Verwendung einer Fensterfunktion erlaubt eine blockweise Bearbeitung des Eingangssignals wobei sich die entstehenden Frames blicherweise zu einem gewissen Grad berlappen um Informationsverlust an den Blockenden zu verhindern Die Fensterfunktion selbs
240. ugen HRESULT AddFilterByCLSID Durch CLSID definiertes Filter zum Graphen hinzuf gen HRESULT ConnectFilters Verbindet zwei Filter einer davon gegeben durch einen Pin HRESULT ConnectFilters Verbindet zwei Filter 108 HRESU Anhang D Technische Dokumentation von GenMAD MW GSic Pasian se Liefert HRESU zu einem Filter einen enthaltenen Pin mit vorgegebener Orientierung T FindInterfaceAnywhere Liefert void Liefert ein vorgegebenes Interface falls im Graphen implementiert Liste 5 5 eine Collection aller Filter im Graphen void FindMatchingPins Liefert zu einem Pin s mtliche aufgrund des Media Formates passendes Pins als Collection D 3 Globale Schnittstellen D 3 1 IMonitoringMaster DirectShow Schnittstelle die von GenMAD implementiert wird und Filtern den Aufruf von darin enthaltenen Funktionen erm glicht DECLARE INTERFACE IMonitoringMaster IUnknown jOwWoILILe 3 erweiterbare Funktionalit t Parameter iCodeID Codes fiir generische Unterfunktionen pParam Zeiger f r beliebige Parameter ppReturnValue Zeiger auf Zeiger f r beliebige R ckgabewerte virtual HRESULT STDMETHODCALLTYPE CallMaster int iCodeID void pParam void ppReturnValue 0 Inter Filter Kommunikation dient der Abstimmung von Parameterwerten Parameter
241. ugrunde liegenden Konzeptes 1 Einleitung und bersicht 1 1 Gliederung der Diplomarbeit Die vorliegende Diplomarbeit ist folgenderma en aufgebaut Im nachfolgenden Kapitel 2 werden allgemeine Konzepte und bestehende Ans tze zum Gebiet des Audiomonitorings und dessen Anwendungen vorgestellt Das Kapitel 3 besch ftigt sich mit technischen Multimedia Frameworks welche die ma gebliche Grundlage des in dieser Arbeit entwickelten generischen Monitoringsystems darstellen Das in Kapitel 4 erl uterte neuartige Konzept dieses Monitoringsystems stellt einen wesentlichen Bestandteil der im Rahmen dieser Diplomarbeit geleisteten wissenschaftlichen Arbeit dar Die Implementierung des Systems wird in Kapitel 5 erl utert und im Kapitel 6 verschiedenen Tests und Anwendungen unterzogen Das abschlie ende Kapitel 7 fasst die Ergebnisse dieser Diplomarbeit zusammen und soll mittels einer Diskussion einen Ausblick auf m gliche Erweiterungen und fortf hrende Ma nahmen bieten Der Anhang schlie lich umfasst sowohl das Benutzerhandbuch als auch die technische Dokumentation des entwickelten generischen Monitoringsystems S mtliche im Rahmen dieser Diplomarbeit entwickelten Komponenten liegen als kompilierte Versionen und im Quelltext auf CD bei 1 2 Hinweise zur Notation Neu eingef hrte Begriffe sind ebenso wie mathematische Zeichen und betonte Textelemente durch kursive Schriftweise hervorgehoben z B f x Technische Bezeichnungen wie Klassen Sc
242. um periodisch wiederholen Einheit ist das Wortspiel guefrency die Frequenz einer Frequenz also eine Zeiteinheit Die durch Anwendung kleiner r entstehenden ersten Cepstral Koeffizienten beschreiben die Auspr gung niederfrequenter Schwingungsanteile im Spektrum die Koeffizienten h herer r die Auspr gung hochfrequenter Anteile Auf diese Weise kann die Glattheit des Spektrums gemessen werden Das Verfahren stammt aus der Sprachverarbeitung wo es zur Fundamentalfrequenzsch tzung eingesetzt wird um ber die ersten Cepstrum Koeffizienten Informationen bestimmter Sprachbestandteile Phonemformanten zu gewinnen bzw zu ver ndern Die Verwendung des Logarithmus in der Formel hat dort vereinfachende Gr nde dar ber hinaus jedoch als positiven Nebeneffekt eine Anpassung an menschliche H rf higkeiten Bei gleicher Amplitude werden niedrigere Frequenzen n herungsweise logarithmisch leiser wahrgenommen als h herfrequente Anteile Eine Erweiterung des Verfahrens stellt die Mel Skalierung des Spektrums dar die vor der Erstellung des Cepstrums durchgef hrt wird Entsprechend hei en die in diesem Zusammenhang verwendeten Koeffizienten MFCCs Mel frequency cepstral coefficients Diese werden z B in 22 unter Einbeziehung der DCT verwendet Pitch Grundfrequenz Dieses Merkmal bezeichnet die dominierende Frequenz eines Frames Allerdings ist diese offensichtlich nicht f r jeden Frame bzw jedes Signal definiert In manchen Sig
243. ur Festlegung und Abfrage der Blockpuffergr e e Datentransport bezogene Funktionen z B Abfrage eines erweiterten Status e Filter Benennung e Funktionalit t zur Konfiguration durch den Benutzer e Parameterabstimmung e Visualisierungsfunktionen Um den Aufwand zur Entwicklung eigener Filter so gering wie m glich zu halten steht ein daf r konzipiertes und getestetes Software Development Kit SDK bereit Dieses wird in Kapitel 5 erlautert und ist im Anhang technisch dokumentiert 58 Kapitel 5 Implementation 5 1 GenMAD GenMAD besitzt ein Hauptfenster das aus einer Toolbar und einem Bereich zur visuellen Manipulation des Datenflussgraphen besteht und in Abbildung 5 1 dargestellt ist Die fest im oberen Bereich positionierte Toolbar beinhaltet sowohl Buttons f r Projekt bezogene Operationen Neues Projekt Laden Speichern und f r das Hinzuf gen lokaler und im Internet verf gbarer Mediendateien als auch Buttons f r das Hinzuf gen neuer Filter sowie f r den Aufruf des Visualisierungs Fensters die Kontrolle der Referenzuhr und des Transports Dar ber hinaus sind dort eine Anzeige der aktuellen Laufzeit des Graphen ein sich analog zur ablaufenden Zeit bewegender Schieberegler f r den manuellen Vor und R cklauf und ein editierbares Feld zur Eingabe eines Skalierungsfaktors ber eine von DirectShow angebotene Interpolations Methode enthalten Der Manipulationsbereich enth lt die durch verschiedenartig kolorierte Rechtecke
244. ur Klassifikation von Audiosignalen in Stille Sprache Musik und Sonstiges erstellt sowie ein von der Arbeitsgruppe Multimedia Signalverarbeitung entwickelter Algorithmus zur inhaltbasierten Audioidentifikation in ein Plugin eingebunden Dar ber hinaus wurde auch ein Modul realisiert das eine lineare Segmentierung eingehender Ereignisdatenstr me mehrerer Quellen zur Vermeidung widerspr chlicher Daten erm glicht Bei allen realisierten Modulen kam ein im Rahmen dieser Diplomarbeit entwickeltes SDK Software Development Kit zum Einsatz welches die Umsetzung von Plugins f r das entworfene Monitoringsystem deutlich erleichtern soll Weiterhin bietet dieses SDK die M glichkeit das entworfene Pluginmodell effektiv zu erweitern Sowohl bei der Erstellung des zugrunde liegenden Konzeptes als auch w hrend dessen Umsetzung wurde mit gr ter Sorgfalt darauf geachtet die zu Beginn des Kapitels 4 genannten Anforderungen zu erf llen In der vorliegenden Arbeit wurden in Kapitel 2 Konzepte und bestehende Ans tze zu den Gebieten der inhaltsbasierten Audioidentifikation der Audioklassifikation und des Audiomonitorings sowie Anwendungen aus diesen Bereichen vorgestellt Dabei wurde Wert darauf gelegt sowohl formale Aspekte als auch umgesetzte Systeme zu pr sentieren um ein umfangreiches Verst ndnis f r das entworfene Monitoringsystem zu erm glichen Das f r die technische Umsetzung dieses Systems grundlegende Konzept von Multimedia Frameworks wurde
245. urth und A Ribbrock entwickelte Konzept zur Audioidentifikation 57 58 13 91 basiert auf einem gruppentheoretischen Operator basierten Ansatz Aufsetzend auf einer allgemeing ltigen Theorie zur Konstellationssuche mit G invertierten Listen 57 wurde diese f r die Arbeit mit Audiodaten hin konkretisiert Die entwickelte Suchtechnik umfasst sowohl Translations wie in bestimmten Varianten auch Skalierungsinvarianz und verwendet eine klare Trennung von Merkmals Extraktion und Such bzw Indizierungstechnik Zur flexiblen Handhabung von verschiedenartigen Systemanforderungen wurden mehrere Merkmals Extraktoren entwickelt die jedoch darin bereinstimmen dass sie Signale auf amp signifikante Maxima untersuchen Positionen im Signal deren Amplitude h her ist als die der amp n chsten Nachbarn und anhand der Merkmalsfolgen in Klassen einteilen So untersucht der Fysr Extraktor 91 die Abst nde benachbarter aus der Lautheit des Signals extrahierter amp signifikante 28 2 Audiomonitoring Maxima der Fypr Extraktor hingegen die der Maxima der Mittelfrequenz Folge des Signal Spektrums Einen g nzlich anderen Ansatz bieten auf der Codierungstheorie aufbauende Extraktoren die der oft ung nstigen Merkmalsverteilung entgegen zu wirken versuchen Diese basieren auf Merkmalen wie etwa der Lautheit eines Signals und erm glichen die Umwandlung der resultierenden Merkmalsfolge mittels eines bin ren Quantisierers und eines linearen fehle
246. weisen weitverbreitete Frameworks eine gute Leistungsf higkeit auf e Systematische Tests Frameworks bieten gute M glichkeiten f r den Einsatz systematischer Tests W hrend bei der Verwendung von Bibliotheken die Klassen unabh ngig voneinander verwendet werden k nnen und die Applikationsarchitektur frei w hlbar ist geh ren die Klassen eines Frameworks zu einem kooperierenden Verband und beruhen auf einer vordefinierten Architektur Daraus ergeben sich nach Fayad und Schmidt 36 einige Herausforderungen bei der Entwicklung und Verwendung von Frameworks vor allem auch im direkten Vergleich mit anderen weniger komplexen Ans tzen wie Patterns Klassenbibliotheken und Komponenten e Hoher initialer Entwicklungsaufwand Dieser ergibt sich aus der hohen Komplexit t von Frameworks e Lernkurve Die oft mehrmonatige Einarbeitungszeit in ein Framework amortisiert sich blicherweise nur falls Applikationen des selben Anwendungsbereiches oder Anwendungen mit bergeordneten Gemeinsamkeiten und Unterschieden nur im Detail entwickelt werden sollen Ihe most profoundly elegant framework will never be reused unless the cost of understanding it and then using its abstractions is lower than the programmer s perceived cost of writing them from scratch G Booch 18 e Integrierbarkeit Die Kombination verschiedener Frameworks GUI Datenbanken Kommunikation ist oft sehr schwierig vor allem wenn auch Klassenbibliotheken oder Ko
247. wert ermittelt und zusammen mit dem jeweiligen Zeitstempel in einem Ringpuffer abgelegt werden Die vom CVisualizerFrame Timer in kurzen Abst nden aufgerufene Methode CAudioView Action berechnet das Zeitintervall seit dem letzten Aufruf und die entsprechend gew hlter Zoomaufl sung daf r ben tigte Anzahl von Pixeln wobei letztere zur Vermeidung von leeren oder doppelten Pixels als double Werte verwendet werden Zusammen mit dem Raster wird nun f r jedes neue Pixel ein entsprechend skalierter vertikaler Strich gezeichnet Es sei angemerkt dass das Zeichnen zur Vermeidung von Flacker Effekten nicht in dem tats chlichen Fensterbereich sondern ber versteckte Puffer stattfindet die anschlie end vollst ndig und zur Fenstergr e skaliert in den Fensterbereich hineinkopiert werden Um Probleme durch synchronen Zugriff zu vermeiden greifen beide Threads unter Verwendung eines durch DirectShow bereitgestellten Mutex Verfahrens seriell auf den Ringpuffer zu Das Verfahren ist in Abbildung 5 4 dargestellt Das zur Anzeige von Eventdaten verwendete Verfahren ist hnlich aufgebaut Auch hier werden die vom Filter eingehenden Daten bis in die beiden verarbeitenden Klassen weitergeleitet 66 5 Implementation und dort in eine Speicherstruktur gef llt Allerdings handelt es sich hierbei um eine CList eine doppelt verkettete Liste und die Events werden da sie aufgrund verschiedener Filterherk nfte m glicherweise in nichtsortierter Reihenf
248. ystem f r akustische Datenstr me dar 4 1 1 Wahl des Multimedia Frameworks Da GenMAD verschiedenartige Monitoring Verfahren unterst tzen soll spielt die Wahl des ihm zugrunde liegenden Multimedia Frameworks eine zentrale Rolle Die ma geblichen Entscheidungsgr nde sind daher nachfolgend aufgef hrt Das entwickelte Konzept basiert auf DirectShow da nur dieses im Gegensatz zu den anderen in Abschnitt 3 3 vorgestellten Multimedia Frameworks sowohl unter Visual Studio 6 kompilierbar ist als auch hinreichend tiefen Eingriff in das Framework erlaubt Im Gegensatz zu einem vollst ndig eigenen Ansatz ohne ein zugrunde liegendes Multimedia Framework bietet der verwendete Ansatz folgende Vorteile vor allem in Anbetracht der begrenzt zur Verf gung stehenden Entwicklungszeit e Neben dem von Steinberg 123 entwickelten VST Plugin Format stellen DirectX Plugins den zweiten wichtigen De Facto Standard unter Windows dar Dies resultiert in einer gro er Anzahl und Verschiedenheit existierender DirectX Plugins darunter hochqualitativen Filtern und andere Signalverarbeitungseffekten die z B als Teil der Vorverarbeitungskette eines Identifikationsmoduls eine f r eigene Entwicklungen nicht leistbare Qualit t bieten k nnen Dar ber hinaus ist auf diesem Weg auch ein problemloser Zugriff auf zuk nftig entwickelte Algorithmen m glich Hinzu kommen visuelle Analysemodule die einen Echtzeit Einblick z B in Form eines Spektrometers erlauben S
249. z eine Anzahl von HMMs generiert die als AudioGenes bezeichnet werden und gewisserma en Generatoren f r die bergebenen Signalfolgen darstellen Diese AudioGenes in die Angaben ber zeitliche Positionen eingebettet sind bilden zusammen die sogenannte AudoDNA Die Dekodierung der Merkmalsfolge also die Berechnung der wahrscheinlichsten AudioDNA wird dabei durch den effizienten Viterbi Algorithmus 112 durchgef hrt Dieser findet die wahrscheinlichste Zustandsfolge einer durch die verwendeten HMMs emittierten Symbolfolge Die AudioDNA wird nachfolgend in einer Baumstruktur abgelegt Das zur Identifikation bergebene Audiosignal wird ebenfalls in AudioDNA umgewandelt und per aus der Bioinformatik bekanntem schnellem approximativem Stringmatching mit den im Suchbaum vorhandenen AudioDNA Elementen verglichen Die eigentliche Identifikation erfolgt durch Kombination der verschiedenen AudioGenes und der zugeh rigen Positionsangaben Cano et al legen in ihrer Arbeit besonderen Wert auf Robustheit bei Verwendung von Radiosignalen insbesondere auf die Kompensation zeitlicher Skalierungen gesendeter Beitr ge was zur Verwendung von Hidden Markov Modellen f hrte Neben Erweiterungen des urspr nglichen Konzeptes entstand aus dem Kontext des AudioDNA Verfahrens das gut skalierbare Amadeus System 14 welches ein auch flexibel auf andere Bereiche des Multimedia Information Retrievals adaptierbares Identifikations Instrument darstellt 27 2 Audi
250. zu einem Pin Namen das entsprechende CPinInfo Objekt zur ck also die GenMAD Repr sentation eines Pins HRESULT GetPin CString szQueriedName IPin ppPin Liefert zu einem Pin Namen das entsprechende IPin Objekt also das DirectShow Objekt zur ck HRESULT Disconnect Entfernt alle Verbindungen zu benachbarten Filtern HRESULT DisconneetPin CPinInfo pPinInfo Entfernt die Verbindung des bergebenen Pins void Reconnect bool bRecursive Gem pConnections alle dort gespeicherten Verbindungen rekursiv wieder herstellen z B nach Laden des Graphen aus einer Datei void UpdateConnectedFilterName CString sNameOld CString sNameNew void UpdateName CString sNameOld CString sNameNew Diesen beiden Methoden dienen der automatischen Anpassung von Filternamen void UpdateNameExt CString sNameOld CString sNameNew Entsprechend im Fall manueller Anpassung void Serialize CArchive amp archive Wie in Abschnitt 5 1 4 beschrieben findet hier das Laden und Speichern mittels des CArchive Objektes statt void Recreate CGraphController pGrCtrl Neu Erzeugen des Filters unter Einbeziehen interner Eigenschaften z B nach Ladevorgang HRESULT ShowPropertyPage Konfigurationsdialog des Filters aufrufen D 2 11 CGraphController class CGraphController public CObject public CUnknown public IMonitoringMaster Dies ist die zentrale Klasse des GenMAD Systems Wie in Kapitel 4 erlautert reprasentiert si
Download Pdf Manuals
Related Search
Related Contents
Manual CSR自己評価シート SPT SF-1469 Use and Care Manual IA240 Hardware User`s Manual Bedienungsanleitung User guide 2. Settings Operating instructions - Pivot Stove & Heating Dynamic C TCP/IP User`s Manual Volume I Copyright © All rights reserved.
Failed to retrieve file