AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Stille im Musikfile suchen (nicht Anfang/Ende)
Thema durchsuchen
Ansicht
Themen-Optionen

Stille im Musikfile suchen (nicht Anfang/Ende)

Ein Thema von markusagb · begonnen am 6. Aug 2018 · letzter Beitrag vom 9. Aug 2018
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 7. Aug 2018, 13:11
Denn sonst würde der Algorithmus ja bei fast jedem Nulldurchgang "Stille" vermuten.
Das Problem hast Du bei BASS nicht.
Da gibt es eine Funktion die den Level über einen bestimmten Zeitraum darstellen kann. Wenn ich mich nicht irre, max 2 sec.

Ich komme im Augenblick nicht an mein Delphi heran, aber in der Doku sollte man fündig werden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
markusagb

Registriert seit: 11. Jun 2018
46 Beiträge
 
#2

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 7. Aug 2018, 18:57
Hallo zusammen,
ja das wäre der Weg - im Endeffekt habe ich ja schon einen Code den es nur umzuschreiben gilt.
Ich habe mich wund probiert wie man damit eine Silence Strecke im Audio findet, aber ich bekomms nicht hin...
Wünsche Euch einen schönen Abend!!
Markus
  Mit Zitat antworten Zitat
markusagb

Registriert seit: 11. Jun 2018
46 Beiträge
 
#3

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 8. Aug 2018, 14:11
Ich habe mich da mal reingefuchst, aber anscheinend ist meine Idee nicht so prickelnd:

Ein paar Sec ins File reingehen, nach der ersten Silence suchen und Länge abfragen... leider funktionierts nicht...

Code:
 

   ....
  count := 100000;
  silence := 0;

  BASS_ChannelSetPosition(chan, count, BASS_POS_BYTE);
  while Bass_ChannelIsActive(chan) <> 0 do
  begin
    b := BASS_ChannelGetData(chan, @buf, 20000);
    b := b div 2;
    a := 0;
    while (a < b) and (Abs(buf[a]) >= threshold) do
      a := a + 1;
    count := count + (a * 2);

    c := count;
    if (c < b) then
    begin
      while (c <> 0) and (Abs(buf[c]) < (threshold div 2)) do // div4 geändert
      begin
        c := c + 1;
        silence := silence + 2;
      end;
      Break;
    end;

  end;
   FirstSilence := count;
   LengthSilence:= silence;
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.520 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 8. Aug 2018, 14:57
Hm in deinem Code sehe ich nichts von dem da:
Da gibt es eine Funktion die den Level über einen bestimmten Zeitraum darstellen kann. Wenn ich mich nicht irre, max 2 sec.
Ich komme im Augenblick nicht an mein Delphi heran, aber in der Doku sollte man fündig werden.
  Mit Zitat antworten Zitat
markusagb

Registriert seit: 11. Jun 2018
46 Beiträge
 
#5

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 8. Aug 2018, 15:46
Dazu müsste ich das File abspielen wenn ich das richtig lese - das würde zu lange dauern (2:30 Min)...
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.242 Beiträge
 
Delphi 12 Athens
 
#6

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 9. Aug 2018, 07:37
Ich würde das nicht mit festem Pegel versuchen, sondern mit Standardabweichung des Pegels,
oder einer Kombination aus Beidem.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 9. Aug 2018, 07:46
Deswegen fragte ich ja nach einem Audio-Sample um besser zu verstehen worauf er im Endeffekt hinaus will.
Auch wenn man das Level abfängt braucht man die Datei nicht anhören. Also nicht 1:1. Nur wie soll man so etwas interpretieren?

Ohne Beispiel Deinerseits kann ich Dir nicht helfen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.242 Beiträge
 
Delphi 12 Athens
 
#8

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 9. Aug 2018, 07:52
Richtig, das wäre hilfreich.
Wichtig ist ja auch wie kurz die Stille sein kann, 10 Sek. ?
Oder geht es um Sprachpausen, die sind dann schon kritischer.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Stille im Musikfile suchen (nicht Anfang/Ende)

  Alt 9. Aug 2018, 08:16
Bilder sagen ja mehr als tausend Worte, also hier eine mini-Beschreibung was für Möglichkeiten es mit Bass gäbe.
Screenshot - 09_08 002.jpg


In der Mitte siehst Du eine Live-Auswertung der FFTs.
Rechts siehst Du die Lautstärke per Level Live-Auswertung.
Ganz unten siehst Du die komplette Audio Datei als Spectrum Dargestellt.

Eine "entdecke stille" funktion könnte sich aus eine dieser Methoden entwickeln, FFTs ist das präziseste Mittel da man auch Frequenzen ein/ausschließen kann.
Über das Level sollte man generelle Lautheit erfahren.
Als Spectrum kann man die Bildlücken nutzen....
Gruß vom KodeZwerg
  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 02:14 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