Audio-Zeitverzögerer

  • Ich kenne RasPi nur aus vielen Berichten, und hab mir nun sehr viel angelesen. Trotzdem weiß ich nicht, wie und wo ich anfangen soll:

    Ich möchte einen kleinen Zeitverzögerer bauen, der ein Stereo-Audiosignal um ein paar (einstellbar) Millisekunden verzögert.
    (Hintergrund: Der Kopfhörer-Sound aus meiner KabelBox ist um ca. 200ms früher, als der Sound und Bild aus den Fernseherboxen. Das sollte synchron sein.)
    (Optimal, dann in der Endausführung: Über WLAN oder die IR-Fernbedienung ansteuerbar, damit ich es im Schrank verbauen kann. Evtl. auch als Vorverstärker.)

    Ich bin am Compter sehr erfahren. (Win / Java / C## / SQL / ...) habe aber NULL Erfahrung mit Linux und wenig mit Hardware.
    Deshalb 2 Fragen:
    1) Was muss ich außer einem RasPi-StarterKit (welches?) noch an Hardware kaufen, um einen Audio-Ein- und einen Aus-Gang nutzen zu können. (Klinke 3,5mm).
    (Brauch ich weitere Bauteile, Widerstände, brauch ich wirklich Breadboard, muss ich Platine ätzen, ...)

    2) Gibt es irgend ein Beispiel (Muster?)-Programm, wie ich ein Audiosignal einlese, "verarbeite" (verzögere), und dann wieder irgendwohin ausgebe?

    Leider hab ich im Forum kein FAQ auf so niedrigem Level gefunden. Und habe (noch) nicht vor, mich zum RasPi-Profi einzuarbeiten.

    Viele Dank

    Einmal editiert, zuletzt von SirTom60 (28. Juni 2017 um 18:26)

  • ich würde das auf jeden Fall analog machen
    https://books.google.de/books?id=6qhFQ…20200ms&f=false

    das zu programmieren ist kein Spass auch wenn es geht, ist aber eher eine Aufgabe für einen DSP als für einen PI und dann müsste der PI das ja auch wandeln

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Danke für deine Antwort.


    ich würde das auf jeden Fall analog machen
    https://books.google.de/


    Aber dann steh ich noch mehr "am Schlauch". Was ist DSP, ... Und da sind ja genauso ICs, ...
    Da weiß ich noch viel weniger, wo ich anfangen soll.

    Das Wandeln dürfte doch für den RasPi kein Problem sein. oder?

    Einmal editiert, zuletzt von SirTom60 (28. Juni 2017 um 18:37)

  • Servus,
    ich würde sagen, das was Du brauchst wäre Audio-Verarbeitung in Echtzeit ... und dafür ist ein Pi mit Linux nicht geeignet.
    Vielleicht wäre das mit "bare metal" hinzubekommen, aber ich hab' da meine Zweifel, allein schon weil der Pi nicht unbedingt auf Audio-Verarbeitung ausgelegt ist.
    Was da besser wäre ist wohl ein DSP oder so was in der Art ...
    Prinzipiell ist eine getrennte Übertragung von Audio und Video (unterschiedliche Hardware wohlgemerkt, wie bei Dir scheinbar der Fall) ungünstig, weil ich jetzt mal behaupte, dass es praktisch unmöglich ist die beiden Streams zu synchronisieren.

    Probieren kannst Du das natürlich, aber sei' nicht enttäuscht.

    //EDIT: da war einer schneller ;)

    cu,
    -ds-


  • Probieren kannst Du das natürlich, aber sei' nicht enttäuscht.

    Danke für den Hinweis.
    Nur beantwortet das meine Frage nicht: Wie fang ich?

    Und wenn ich den Tipp (nun schon zum 2. mal: "Mit Pi gehts nicht.") ernst nehme, dann heißt die Frage. "OK. Wo mach ich also weiter?"

  • Tja ... ich seh' das Problem darin, dass Du scheinbar eine Hardware für das Video- und eine andere für die Übertragung des Audio-Signal hast.
    "Normalerweise" läuft das so, dass der Video- als auch der Audio-Stream Timestamps enthalten, die gegeneinander abgeglichen werden. Dadurch sind Bild und Ton synchron.
    Wenn Du jetzt das Bild über eine andere Hardware überträgst als den Ton, dann werden die beiden Strems einfach wiedergegeben und nicht abgeglichen. Mal ist das eine Signal schneller, mal das andere ... klar, die wissen nix voneinander.

    Ich würde mir an Deiner Stelle eine Lösung suchen, dass Du Bild und Ton mit einem Gerät überträgst. Damit bist Du auf der sicheren Seite. Diese Verzögerungen werden aller Wahrscheinlichkeit nach nicht konstant sein und mit einem "Nachregeln" wirst Du imho nicht glücklich.

    Ansonsten: such mal nach "Audio Echtzeit Raspberry" ... vielleicht findest Du eine Möglichkeit über z.B. "Audacity" ...
    Aber als Lösung kann ich das nicht empfehlen ...

    cu,
    -ds-

    • Offizieller Beitrag

    Jeder der schon mal am PC versucht hat eine Tonspur einer Videospur anzupassen, weiß wie absolut schrecklich dieser Prozess ist. Es ist fast gar nicht in worte zu fassen welchen Leiden man dabei durchlebt. Das du dir wirklich ein Gerät X in den schrank stellen willst um das auch noch Live zu machen find ich....befremdlich. Kannst du mal was zu dem Hintergrund erklären? Wie kommt man im Jahr 2017 an 2 unterschiedliche Ausgabequellen?

  • Offensichtlich habe ich meine Frage nicht genau genug beschrieben: Ich mache keine Videobearbeitung, ... oder ähnliches.

    Ich hab ne Kabelbox, die über HDMI am Fernseher angeschlossen ist. Soweit läuft alles problemlos.

    Aber der Fernseher hat keinen Köpfhörer-Ausgang. (Nur Optical-Out)
    Wenn er einen hätte, dann könnte man vermutlich nur entweder/oder laufen lassen, was wieder für schwerhörige Familienmitglieder nicht zumutbar ist.
    Deshalb hab ich den Kopfhörer an der Kabelbox angeschlossen.
    Aktuell können Personen mit Kopfhörer konzentriert hören, und andere im Raum sich "berieseln" lassen. Mit getrennten Lautstärkeregelungen.

    Nun braucht der Fernseher aber offensichtlich 1/4 sec (Verarbeitungszeit?) für das Signal der Box.
    Deshalb kommen Bild und Ton am Fernseher zwar synchron, aber verglichen zum Ton aus der Kabelbox um ca. 200 ms später.

    Das ist für Kopfhörernutzer allein schon sehr störend, wenn der Ton nicht passt.
    Und sobald der Fernseher mit normaler Lautstärke läuft, mischt sich der Ton für den Kopfhörernutzer mit Lautsprecher zu fast unverständlichem Echo.

    Einmal editiert, zuletzt von SirTom60 (28. Juni 2017 um 19:31)

  • Tja ... ändert nichts ... Du greifst die Signale an zwei unterschiedlichen Hardware-Teilen ab: einmal direkt an der Kabelbox und einmal am/im Fernseher ... die beiden Signal werden aber aber im Fernseher erst synchronisert ...


    ... Aber der Fernseher hat keinen Köpfhörer-Ausgang. (Nur Optical-Out)


    ... in dem Fall würde ich mal versuchen irgendwie den optischen Ausgang des Fernsehers an die Stereo-Anlage zu bekommen ...
    Dann sollten Audio und Video wieder synchron sein.

    cu,
    -ds-


  • Es gibt Audio Splitter, sowas. Optisch zu Klinke/Chinch.


    Danke. Damit könnte ich offensichtlich Kopfhöhrer am OptOut anschließen.

    Aber da seh ich viele Folgeprobleme:
    Die Umschaltung läuft am Fernseher sehr umständlich (über 3 Menüebenen).
    Ein gleichzeitiges Hören auf 2 Ausgabequellen scheint nicht vorgesehen.
    Getrennte Lautstärke-Regelung geht mir dann auch verloren, oder?

    (Momentan läuft das ständig parallel und sehr bequem über EINE Universalfernbedienung Logitech Harmony).
    (Fernseher: Samsung UE46B7090WP; Box: Dreambox 8000)

    Einmal editiert, zuletzt von SirTom60 (28. Juni 2017 um 19:55)

  • Also ich hab' ein ähnliches Problem bei meiner Mutter (drahtloser Kopfhörer schaltet Lautspecher ab) so gelöst, dass ich das Audio-Signal für den Kopfhörer am SCART-Anschluss abgreife ...

    Naja ... Ideen sind jetzt, glaub' ich, eh erst mal genug zusammengekommen.

    cu,
    -ds-

  • Zitat von hyle


    Lindy+Lip+Sync-Corrector


    Also ich werde es dann vermutlich über Lip-Sync versuchen, falls hier wirklich keine RasPi-Lösung möglich ist.
    Aber das wäre halt schade.


  • Naja ...
    ... Ansonsten: such mal nach "Audio Echtzeit Raspberry" ... vielleicht findest Du eine Möglichkeit über z.B. "Audacity" ...
    ... nix gefunden?


    Doch, einiges schon durchgelesen. Zusammengefasst: RasPi hat eigentlich kein Sound In vorgesehen.
    aber es gibt anscheinend recht brauchbare Soundkarten, oder es muss über USB Adapter laufen.

    Vermutlich hab ich's mir zu leicht vorgestellt: (denn Audacity brauch ich dazu eigentlich nicht. [... oder versteh ich etwas falsch?])
    [code=php]
    TimeDelay = 200 ms // oder konfigurierbar (WLAN?)
    Buffer = memAlloc(TimeDelay) // plus genügend Reseve
    Open Input
    Loop
    Read Input into Buffer
    Play Buffer -TimeDelay
    endLoop[/php]

    Aber Tipps, wie ich mein erstes RasPi-Projekt nun anfangen KÖNNTE, waren hier im Forum noch nicht wirklich dabei.

    • Welchen RasPi und Soundkarte brauch ich oder empfiehlt sich.
    • Muss man weitere Bauteile dazubestellen (Widerstände, Spiulen, Kondensatoren, ..., Gehäuse, Netzteil, )
    • Wie spreche ich dann so eine Soundkarte an?
    • Wie geht man mit AudioDaten über USB um?
    • Kann dann RealTime sound überhaupt funktionieren? (!!! Offensichtlich kaum möglich, ist die bisherige Auskunft hier!!!)
    • ...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!