AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Die Vision eines intelligenten Mediaplayers...
Thema durchsuchen
Ansicht
Themen-Optionen

Die Vision eines intelligenten Mediaplayers...

Ein Thema von Mithrandir · begonnen am 10. Okt 2010 · letzter Beitrag vom 4. Feb 2011
Antwort Antwort
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 10. Okt 2010, 22:36
Die Idee hatte ich auch schon. Ist auch schon im Einsatz. Macht nicht genau das was du dir vorstellst, ist aber vom Anspruch ähnlich. klick
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#2

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 16:44
@omata: Danke für den Hinweis, werde ich mir ansehen.

@Assarbad: Die einzigen Metadaten für den Einstieg wären tatsächlich nur die ID3-Tags bezgl. Genre, Künstler und die BPM, die ein Song aufweist. Auf Basis dessen würde ich einen Graphen erstellen, mit eben unterschiedlich gewichteten Verbindungen. Der Rest ist erstmal Sache des Users. Ggf. könnte man mit der Zeit diverse Muster versuchen zu finden, die einem helfen, neu hinzugefügte Lieder besser einzuordnen. Aber das ist weite Zukunftsmusik. Interessant ist noch die Überlegung, wie ich diesen Graphen auf die Datenbank abbilde (SQLite ist schon in Verwendung. ).

Genius scheint tatsächlich eine ähnliche Methode zu verwenden. Allerdings müssen hier die Daten an einen Server geschickt werden. Das soll bei mir nicht der Fall sein, zumal nichtmal die Infrastruktur dafür vorhanden wäre.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Hisoka

Registriert seit: 2. Jan 2008
Ort: im Norden
53 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 16:57
Solch eine Funktion wird in den Meisten Music Playern über Last.fm und ähnliche Dienste gemacht. Denn diese haben solche Beziehungen schon analysiert und es klappt auch. Zumindest schlägt mir der Player immer ganz vernünftige Bands vor.

Also alles nichts neues

Aber die Umsetzung über ein Neuronales Netz wäre eine nette Bastelei.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 18:15
Habt ihr eigentlich schon mal darüber nachgedacht was ihr das so schreibt?

Bei einem neuronalen Netz ist eine Lernphase nötig. Wann soll diese durchgeführt werden?
Bei einem Backpropagationnetz wird kontrolliertes Lernen angewendet. Ein Kohonennetz lernt zwar selbst aber wie wollt ihr das dann interpretieren?

Was sollen die Eingangs- und was die Ausgangssynapsen sein?

Siehe auch mein Backpropagation-Netz.

Ein Kohonennetz habe ich auch mal realisiert, aber hier nicht veröffentlicht.

Also Graphen mit gerichteten Kanten ist wohl die bessere Variante.
  Mit Zitat antworten Zitat
Hisoka

Registriert seit: 2. Jan 2008
Ort: im Norden
53 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 18:57
Habt ihr eigentlich schon mal darüber nachgedacht was ihr das so schreibt?

Bei einem neuronalen Netz ist eine Lernphase nötig. Wann soll diese durchgeführt werden?
Bei einem Backpropagationnetz wird kontrolliertes Lernen angewendet. Ein Kohonennetz lernt zwar selbst aber wie wollt ihr das dann interpretieren?

Was sollen die Eingangs- und was die Ausgangssynapsen sein?

Siehe auch mein Backpropagation-Netz.

Ein Kohonennetz habe ich auch mal realisiert, aber hier nicht veröffentlicht.

Also Graphen mit gerichteten Kanten ist wohl die bessere Variante.
Daher fällt das ganze ja auch unter die Kategorie "Interessante Idee ohne Plan". Also die Idee ein NN für sowas zu nutzen ist ja recht interessant, nur wie man sowas umsetzt ist etwas anderes.

An sich ist ein Problem ja der Anfang. Man hat keine Vergleichsdaten. Also man muss dem Netz erstmal beibringen was zu einander passt( "Like button", "ähnlich button",...) und mit den Ergebnissen könnte man dann ein Netz füttern und dann auf unbekannte Lieder los lassen. Ob das Ganze aber zufriedenstellend funktioniert ist eine andere Sache. Dazu kommen ja noch Sachen wie das zu viel lernen(auswendig lernen), dadurch kann das Ergebnis vielleicht für eine kurze Zeit sehr gut sein aber dann wenn man neue Musik erwirbt kann es total versagen.

Aus der Praxis heraus würde ich daher doch eher einen fertigen Dienst wie Last.fm einbinden. Aber das wäre dann weniger interessant.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#6

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 21:12
Ich hab mal einen kleinen Test gemacht, und ich glaube, ich weiß, warum dieses Feature noch kein Player implementiert hat.

Gehen wir davon aus, dass wir 5000 Lieder auf der Festplatte haben (jahrzehntelange Sammelwut). Baut man für die Initialisierung einen Graphen auf, bei dem jedes Lied mit jedem eine Verknüpfung hat, so kommt man auf die niedliche Datenmenge von insgesamt 25.000.000 Verbindungen. Das bedeutet, dass ich, halte ich diese Menge im Speicher vor, einen Speicherverbrauch von über eine Gigabyte habe. Serialisiere ich meine Liste in eine XML-Datei, ist diese 2,8 Gigabyte groß. Das Hauptproblem ist also weniger die Rechenleistung, sondern eher die riesigen Datenmengen, die anfallen.

Freiwillige bitte zuerst melden, die hier einen Lösungsvorschlag hätten.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 21:19
Den Baum nicht im Speicher halten sondern nur dann das passende (aus der DB) laden wenn es gebraucht wird.
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 11. Okt 2010, 21:31
Nimm statt XML ein ordentliches, natives Format . Geht man von sortierten Daten aus, brauchst nu nichtmal mehr Strukturinformationen, und kannst die Bindungsstärken einfach so der Reihe nach auf die Platte streamen. Drückt man die einfach mal in Bytes aus, erscheinen 25MB schon garnicht mehr so fies. Koppel das mit einem einigermaßen sinnvollen read-ahead Algo, und du musst das auch nicht am Stück im Speicher halten.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 12. Okt 2010, 07:16
Ich hab mal einen kleinen Test gemacht, und ich glaube, ich weiß, warum dieses Feature noch kein Player implementiert hat.

Gehen wir davon aus, dass wir 5000 Lieder auf der Festplatte haben (jahrzehntelange Sammelwut). Baut man für die Initialisierung einen Graphen auf, bei dem jedes Lied mit jedem eine Verknüpfung hat, so kommt man auf die niedliche Datenmenge von insgesamt 25.000.000 Verbindungen. Das bedeutet, dass ich, halte ich diese Menge im Speicher vor, einen Speicherverbrauch von über eine Gigabyte habe. Serialisiere ich meine Liste in eine XML-Datei, ist diese 2,8 Gigabyte groß. Das Hauptproblem ist also weniger die Rechenleistung, sondern eher die riesigen Datenmengen, die anfallen.
Poste mal das aktuelle DB-Schema. Und nebenbei: riesige Datenmengen implizieren meist auch mehr erforderliche Rechenleistung. Man kann das minimieren, aber generell besteht da schon eine Beziehung.

Und laß ab von diesem XML-Fanatismus. XML hat seine Anwendungsbereiche, aber bei der Datenspeicherung sehe ich die absolut nicht. Denn im Gegensatz zu bspw. SQLite ist deine XML-Datei am A.... wenn sich zwischendrin das Programm verabschiedet. Dann validiert die XML nicht mehr weil diverse Tags nicht geschlossen wurden ... naja

Zu den bisherigen Antworten fällt mir auf, daß sie alle den Spaß etwas zu stark vereinfachen. Denn der Abstand für "Genre" mag X betragen, kann aber für "Stimmung" schon wieder Y sein. Bsp.: Oper und Requiem. Und um eine sinnvolle Wertung vorzunehmen muß mehr als ein Merkmal gewichtet werden.

Ergänzung:

Ja, wie beim Aufbau der Matrix muss man die Ähnlichkeit zu jedem Lied ermitteln und dann in die Koordinaten umrechnen.

Mögliche Auswertungskriterien wären (mal gebrainstormt)
- frequenzspektrum (von n Frequenzbereichen die prozentualen Werte ermitteln)
- Dynamikänderungen (laut-leise Wechsel)
- USW.
Bin mir nicht sicher, daß Beethovens 9te da so anders abschneiden würde als manch "moderne" Musik. Abgesehen davon wäre das ein schutzwürdiger Aufwand, denn sobald sowas gelöst ist (ich entsinne mich einer Meldung auf Heise über ein Programm welches vorgespielte Lieder in Noten übersetzt), kann man auch eine Musiksuchmaschine bauen bei der der Suchende ins Mikrofon pfeift und dann ähnliche Titel angeboten bekommt die er dann kaufen darf. Und nun ratet mal warum iTunes usw. das noch nicht haben
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (12. Okt 2010 um 07:22 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.059 Beiträge
 
Delphi 12 Athens
 
#10

AW: Die Vision eines intelligenten Mediaplayers...

  Alt 4. Feb 2011, 00:12
Ich hab mal einen kleinen Test gemacht, und ich glaube, ich weiß, warum dieses Feature noch kein Player implementiert hat.

Gehen wir davon aus, dass wir 5000 Lieder auf der Festplatte haben (jahrzehntelange Sammelwut). Baut man für die Initialisierung einen Graphen auf, bei dem jedes Lied mit jedem eine Verknüpfung hat, so kommt man auf die niedliche Datenmenge von insgesamt 25.000.000 Verbindungen. Das bedeutet, dass ich, halte ich diese Menge im Speicher vor, einen Speicherverbrauch von über eine Gigabyte habe. Serialisiere ich meine Liste in eine XML-Datei, ist diese 2,8 Gigabyte groß. Das Hauptproblem ist also weniger die Rechenleistung, sondern eher die riesigen Datenmengen, die anfallen.

Freiwillige bitte zuerst melden, die hier einen Lösungsvorschlag hätten.
hilft dir das hier
http://en.wikipedia.org/wiki/Music_Genome_Project

attribute
http://en.wikipedia.org/wiki/List_of...ect_attributes

dieser link geht nur durch einen US- Proxy
http://www.pandora.com

Habe es damals als es noch in Deutschland ging intesiv genutzt...du nimmst eine Band oder einen Song und er spielt immer so ähnliche lieder von Stil her. Dabei entdeckt man auch mal neue bands &c.
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty ( 4. Feb 2011 um 00:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz