Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi zwei Sounds vergleichen (https://www.delphipraxis.net/23985-zwei-sounds-vergleichen.html)

vlees91 13. Jun 2004 14:18


zwei Sounds vergleichen
 
Hallo,

wie kann man zwei sounds vergleichen, die ähnlich sind, also nicht exakt (für alle, die am freitag geniale erfinder geguckt haben:ich meine das mit der "intelligentesten Tür der Welt")

Die Muhkuh 13. Jun 2004 14:28

Re: zwei Sounds vergleichen
 
Vielleicht lädts du die in zwei Streams und vergleichst die miteinader.

Ich hab noch irgendwo Source. Ich schau mal und Poste dann.

Die Muhkuh 13. Jun 2004 14:29

Re: zwei Sounds vergleichen
 
Hier:

Delphi-Quellcode:
function CompareFiles(const sFileName1, sFileName2: String): Boolean;
var
  ms1, ms2: TMemoryStream;
begin
  Result := False;
  ms1 := TMemoryStream.Create;
  try
    ms1.LoadFromFile(sFileName1);
    ms2 := TMemoryStream.Create;
    try
      ms2.LoadFromFile(sFileName2);
      If ms1.size = ms2.size Then
        Result := CompareMem(ms1.Memory, ms2.memory, ms1.size);
    finally
      FreeAndNil(ms2);
    end;
  finally
    FreeAndNil(ms1);
  end
end;

dizzy 13. Jun 2004 14:29

Re: zwei Sounds vergleichen
 
Zitat:

Zitat von vlees91
die ähnlich sind, also nicht exakt

;)

Die Muhkuh 13. Jun 2004 14:31

Re: zwei Sounds vergleichen
 
:oops: Wer lesen kann ist klar im Vorteil :oops:

Böse Spinne <- *pfui*

CalganX 13. Jun 2004 14:39

Re: zwei Sounds vergleichen
 
Hi,
wobei man gucken kann, wie groß die Differenz ist. ;) Ich weiß nicht, wie deine Sounddateien aufgebaut sind, aber wenn in jedem Byte ein Wert steht, kannst du dir ja einen Gültigkeitsrahmen bauen. Und dann guckst, du wie groß die Differenz ist und ob sie noch in dem Rahmen sind.

Chris

Bernhard Geyer 13. Jun 2004 14:39

Re: zwei Sounds vergleichen
 
Das Theme ist ein sehr komplexes Thema und beinhaltet ein gehörige Portion an Verständnis bezüglich Mathematik und Physik.
Als Schlagworte die dir bei einer Einarbeitung helfen könnten wären z.B. FFT (Fast Fourier Transformation), Hüllkurve, Frequenzspekturm und ähnliches.

Ich denke für eine halbwegs leistungsfähige Lösung mußt Du vermutlich entweder einiges an Geld locker machen (für entsprechende FFT,...-Komponenten) oder sehr viel Wissen in diesem Bereich um alles selbst zu realisieren.

CalganX 13. Jun 2004 14:41

Re: zwei Sounds vergleichen
 
Hi Bernhard,
sofern es eine richtige Spracherkennungssoftware geht, hast du Recht, allerdings sollte was ganz einfaches so möglich sein, wie Spider es gepostet hat. Nur müsste man das Datenformat kennen und somit die Werte vergleichen zu können.

Chris

Luckie 13. Jun 2004 14:47

Re: zwei Sounds vergleichen
 
Man könnte beide Dateien binaär laden und kucken wie viele Bytes identisch sind.

dizzy 13. Jun 2004 14:48

Re: zwei Sounds vergleichen
 
Ganz gemein wird das mit Sounds die in irgend einer Art komprimiert sind, und/oder nicht die selben Randbedingungen (Samplingrate, Mono/Stereo, Bittiefe) haben. Ein Byteweiser Vergleich ist dann nahezu nicht mehr möglich! Ein und der selbe Sound, ein mal als original Wave und ein mal als mp3 hören sich zwar verdammt ähnlich an, aber die Wellenform dürfte zuweilen erheblich anders aussehen.
Man arbeitet also mit einer tierischen Toleranz, oder man nimmt sich eine Transformation (FFT, Karhunen-Loewe, etc.) zur Hand und vergleicht quatisierte Spektren. Das wäre eher der Weg der zum Erfolg führen würde. (Eine Hüllenkurve würde auch weiter helfen, ist aber nicht unbedingt erforderlich hierbei.)

Fazit: Einfach nach dem Schema "if a=b then..." wird das nix.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz