- 3D-Druck Einstieg und Tipps         
Seite 14 von 25 ErsteErste ... 4121314151624 ... LetzteLetzte
Ergebnis 131 bis 140 von 241

Thema: wav Dateien: Programieren von Wiedergabe und Aufnahme

  1. #131
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Anzeige

    Praxistest und DIY Projekte
    Code:
    Bias: 3
    Maximal: 155
    Minimal: 91
    Signalstart: 4946
    Signalende: 15557
    Hab ich ganz vergessen sorry.

    Ich schaue mir dann mal das openvg an. Denke das wird sich realisieren lassen. Über ssh ist auch kein Problem, macht der Raspi das Fenster einfach auf meinem Desktop auf. Das ist ja das Schöne an ssh. Geany macht er ja auch auf meinem Rechner auf. Ich häng dir mal ein Bild an wie das bei mir auf dem Desktop aussieht.

    Ich muss nachher aber an meiner Stromversorgung noch was machen. Habe gestern zwei Akkus auf unter 2V entladen. Nicht gut! Ist zwar schön zu sehen wie viel Spannung noch in den Akkus ist, aber wenn ich grade andere Sachen am Machen bin und nicht sehe was da angezeigt wird dann nutzt das nichts. Ich programmiere das nachher um so das der Raspi sich runter fährt wenn eine Zelle unter 2,6V fällt. Das ist aber kein grosses Problem.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken raspissh.jpg  
    Geändert von hirnfrei (10.06.2016 um 11:25 Uhr)

  2. #132
    HaWe
    Gast
    ok, sehr schön!

    Von der Aussteuerung ist ja noch etwas Platz nach oben (bis 255), aber nachdem das Rauschen nur etwa 3 ist, entspricht es nur ~ 2%: das ist perfekt!

    Wenn allerdings später im Betrieb auch Motoren laufen... die machen teilweise ganz schönen Krach.
    Aber dann kann man immer noch was dran drehen.

    Und wie klingt jetzt der veränderte Array im Vergleich zum Original?

  3. #133
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Hör es dir am Besten selbst an

    http://sound.projekt-hirnfrei.de/input.csv
    http://sound.projekt-hirnfrei.de/waveBuffer.csv

    Ich habe auch mal krass rum experimentiert und einfach mal in analyse() waveBuffer komplett auf 0 gesetzt um zu sehen ob es auch so wieder in main raus kommt. Also das klappt prima!

    Jetzt auf ein Geburtstag, dann mach ich mich an OpenVG.

    Wenn ich mir das mit den ganzen Libs die es so gibt überlege ist Programmieren auch nichts anderes wie Lego ^^

  4. #134
    HaWe
    Gast
    super, dann kann man jetzt den Code vereinfachen und beschleunigen....


    Road-Map:

    Dazu brauchen wir eine andere Programm-Struktur, und dazu muss alles mit "debug" raus.
    Das macht den Code auch überschaubarer.

    1.) Muster-Erstellung

    a) du nimmst eine Reihe von Wort-Samples auf:
    JA.wav
    NEIN.wav
    STOPP.wav

    b) der Micro- bzw. file- input[] array wird als Plot angezeigt
    und dann direkt nach analyse geschickt und noise und Wort-Grenzen ermittelt.

    c) jetzt wird NUR das Wort innerhalb der Wort-Grenzen nach wavbuffer kopiert
    Code:
       memset(wavebuffer, 0, sizeof(wavebuffer) );
       memcpy(wavebuffer, input+(signalstart*sizeof(char)), (signalend-signalstart)*sizeof(int32_t) );
    
    // ich hoffe, ich habe mich jetzt mit memcpy nicht verhauen   
    // ansonsten soll das rauskommen:
    // for (i=0; i<(signalend-signalstart); ++i) wavebuffer[i]=input[i+signalstart];
    d) Der wave-Puffer startet jetzt an Stelle 0 mit dem wav-Wortsignal, der Rest bleibt 0.
    Der neue wav-Puffer wird ebenfalls als Plot angezeigt.

    e) dann wird das "neue" wavebuffer-Muster als .wav Datei gespeichert.
    JA_opt.wav
    NEIN_opt.wav
    STOPP_opt.wav



    Das Plot-Programm könnte so aussehen:

    Code:
    int main() {
    
        // Request a window size of 640*480 with top-left at 20,20
        initWindowSize(20, 20, 640, 480);
        init(&width, &height);                  // Graphics initialization
    
        Start(width, height);                   // Start the picture
        Background(0, 0, 0);                    // Black background
        WindowOpacity(220); // Make the window little opaque
       
        // ...
    
        Finish();  // clean up graph window
    }
    
    void plotArray(int32_t  * array, int32_t  arrlength ) {
    
        Fill(255, 255, 255, 1);                 // White text
        StrokeWidth(1.0);                       // brush width
    
        WindowClear();
    
        Stroke(255, 255, 255, 1.0);    // white lines
        Line(10, 10, 10+255, 10);      // ordinate
        Line(10, 10, 10, 512);         // abszisse
           
        Stroke(0, 255, 0, 1.0);        // green lines: wave pattern    
        for(uint32_t  i=0; i<arrlength; ++i) {
            Line(10+(i/64), 10, 10+(i/64), 10+(array[i]) );    // i=len=32768/64=512, array[i]_hi=255
        }
        
        End();                         // End = paint the the picture    
    
    }



    Wenn du das hast, lade doch bitte die 6 wav files mal hoch, dass ich sie kontrollieren kann (evtl. zum nachbessern).



    wenn alles OK ist, kommt:

    2.) Experimente mit der FFT und der cross correlation


    - - - Aktualisiert - - -


    3.) späteres Anwendungs-Programm:

    a) später bekommen die wav-Muster-Files nur durchgehende Nummern plus einen Namenseintrag in einer Extra-Datei, in der Nummer und Namen miteinander verbunden werden, sodass man danach suchen kann, z.B.
    0 (reserviert)
    1 ja
    2 nein
    3 stopp
    4 vorwärts
    5 rückwärts
    6 seitwarts
    7 ran
    ...




    b) Das abschließende lauffähige Wort-Erkennungs-Programm kann sich von seinem Aufbau her im Prinzip an diesem NXC-Programm orientieren:
    http://www.mindstormsforum.de/viewto...p=53924#p53924

    aber vorher müssen noch etliche FFT-Tests laufen....



    1.1 Für die Bearbeitung von wave-arrays und wave-files brauchen wir dann 5 Funktionen:
    Code:
    a) record_wave(int32_t * array, int32_t length);  // Aufnahme von Tönen über Soundkarte => input-array
    ähnlich wie audioCapture(input, SHRT_MAX, "plughw:1,0", 1, 12000, 8 );
    
    b) save_wave2file(int32_t * array, char * filename);  // speichern eines arrays als .wav File mit header
    => fehlt noch ?
    
    c) wavefile2Array(int32_t * array, char * filename);  // lesen von einem .wav File => in input-array 
    (extrahiert ohne header, nur data, ohne audio-Wiedergabe über Soundkarte) 
    
    d) play_waveArray(int32_t * array, int32_t length); // abspielen eines arrays mit festen Parametern
    ähnlich wie playCaptured(wave, SHRT_MAX, "plughw:1,0", 1, 12000, 8 );
    
    e) play_waveFile(char * filename); // abspielen eines wav-files mit Parametern laut Header-Daten,
    ohne kopieren  in einen temporären Array, ähnlich wie playwave(string waveDatei, string name)
    Soundkarten-Daten getrennt konfigurieren
    
    
    In die Sound-Lib sollte man dann noch zusätzlich aufnehmen diese 2 globalen #defines für Soundkarten:
    
    #define  SoundCard_Intern   "plughw:0,0"
    #define  SoundCard_Extern   "plughw:1,0"

    diese Funktionen müssten dann genau so in deine wav-lib mit rein.


    einverstanden?
    Geändert von HaWe (13.06.2016 um 15:23 Uhr)

  5. #135
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Hilf mir mal... ich kriege openvg nicht installiert.

  6. #136
    HaWe
    Gast
    du bist doch auf dieser Seite...?

    https://github.com/paeryn/openvg/



    HALT STOPP !

    - - - Aktualisiert - - -

    dies ist der richtige Installationsbefehl, es wurde von Paeryn vlt nicht aktualisiert!


    Code:
    sudo apt-get install libjpeg8-dev indent libfreetype6-dev ttf-dejavu-core
    
    git clone git://github.com/paeryn/openvg
    
    cd openvg
    make
    make library
    sudo make install



    Demo-Programm:


    cd openvg
    cd client
    make test

    - - - Aktualisiert - - -

    falls das nicht klappt, schreib mal hier rein:
    https://www.raspberrypi.org/forums/viewforum.php?f=69

    ich habe meine Installation ja schon vor 1/2 Jahr gemacht, vielleicht wurde was verändert, aber nicht dokumentiert!
    (Die Pi docus sind echt manchmal zum Kot***

  7. #137
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Ok?

    Ich hatte es von da geclont -> git clone git://github.com/ajstarks/openvg

    Das könnte das erklären

    Vielleicht auch nicht

    Code:
    pi@raspi:~/Entwicklung/openvg $ sudo make install
    install -m 755 -p font2openvg /usr/bin/
    install -m 755 -p libshapes.so /usr/lib/libshapes.so.1.0.0
    strip --strip-unneeded /usr/lib/libshapes.so.1.0.0
    ln -f -s /usr/lib/libshapes.so.1.0.0 /usr/lib/libshapes.so
    ln -f -s /usr/lib/libshapes.so.1.0.0 /usr/lib/libshapes.so.1
    ln -f -s /usr/lib/libshapes.so.1.0.0 /usr/lib/libshapes.so.1.0
    install -m 644 -p shapes.h /usr/include/
    install -m 644 -p fontinfo.h /usr/include/
    pi@raspi:~/Entwicklung/openvg $
    da scheint sich kein openvg.h dabei zu befinden.

  8. #138
    HaWe
    Gast
    ja, so wars früher!

    - - - Aktualisiert - - -

    kannst du alle deinstallieren und von Paeryn neu installieren?

    KEINE PFADE ÄNDERN!

    sudo apt-get install libjpeg8-dev indent libfreetype6-dev ttf-dejavu-core

    git clone git://github.com/paeryn/openvg

    cd openvg
    make
    make library
    sudo make install


    wenns nicht geht:
    im raspi.org Forum/openvg nachfragen!

    https://www.raspberrypi.org/forums/viewforum.php?f=69

  9. #139
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Habe ich schon. Habe es danach genau so wie du geschrieben hast installiert, dabei kam genau das raus.

  10. #140
    HaWe
    Gast
    wie gesagt, poste es mal hier, und schreibe @Paeryn drüber

    https://www.raspberrypi.org/forums/viewforum.php?f=69

Seite 14 von 25 ErsteErste ... 4121314151624 ... LetzteLetzte

Ähnliche Themen

  1. Video Aufnahme (+12std.)
    Von highdef im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 8
    Letzter Beitrag: 03.06.2011, 11:08
  2. led ein/aus programieren
    Von anthony im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 15.07.2008, 18:44
  3. hex-dateien in bin-dateien umwandeln
    Von roboterheld im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 02.10.2007, 21:25
  4. Richtiges Drehen einer Flasche/Dose zur Aufnahme
    Von ähM_Key im Forum Mechanik
    Antworten: 2
    Letzter Beitrag: 06.10.2006, 16:43
  5. Automatische Audio-Aufnahme
    Von the_Ghost666 im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 11.09.2005, 21:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress