- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 241

Thema: wav Dateien: Programieren von Wiedergabe und Aufnahme

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    ich hatte damals bei NXC etwa 10 Wörter zu verwalten, und da war der Aufwand überschaubar, und es ging ja ohne FFT.
    Hast du dir das Programm einmal angeschaut?
    Auch einen Filebrowser ähnlich dem Norton Commander habe ich schon einmal selber programmiert, mit Maus- und Tastatursteuerung, auf der Basis von Pascal-File-Funktionen
    FindFirst(pattern),
    FindNext()
    unabhängig davon, in Turbo Pascal.

    Unterschätze den Aufwand nicht, der für Spracherkennung betrieben werden muss, dass ist kein Spaziergang im Park.
    Ohne bedienerfreundliche (programmiererfreundliche) Entwickler-, Hilfs- und insb. Dateizugriffswekzeuge, die wir alle selber erstellen müssen, sehe ich da kein Land am Horizont.

    Eine Eingabe über das Mikro wird mit verschiedenen Dateien verglichen. Bzw. Eine ausgewählte Aufnahmen wird mit den Anderen verglichen. Soweit bin ich da noch richtig oder?
    ja, das stimmt,
    dann wird der jeweilige Fehler ermittelt,
    und das mit dem kleinsten Fehler ist das am besten passendste Wort.
    Wenn der Fehler überall zu groß ist (bestimmter Schwellwert), oder das vorgeschlagene Wort falsch ist, dann kann das aktuelle Wort als neues Wort gespeichert werden.


    Bevor unser Programm irgendwann so weit ist, dass es die ganzen Analysen automatisch selber machen kann, müssen wir sie erstmal mühsam alle einzeln manuell durchführen, dann testen, optimieren, und erneut durchführen können.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Ich schau mir das mal an. Werde aber so oder so bis Mittwoch, im ungünstigen Fall sogar erst Donnerstag nicht wirklich was am Programm arbeiten können. Wundere dich also nicht wenn es im Moment nicht wirklich voran geht.

  3. #3
    HaWe
    Gast
    kein Problem, das mit der Spracherkennung ist ja eh dein Projekt, ich will hier ja nur mit der FFT samt cross-correlation helfen (und weil mich das mit der FFT im Vergleich zu meiner alten NXC-Methode ntl auch selber interessiert) ...

    In jedem Fall wären diese File- und Steuer-Menüs aber sowieso erst der 3. Schritt, nach dem alles erstmal mit
    Ja.wav, NEIN.wav, STOPP.wav
    grob vorgetestet wurde.

    Eventuell klappen die File- und Steuer-Menüs aber auch schon z.B. mit Zenity und popen ich bin da dran.
    Geändert von HaWe (18.06.2016 um 10:31 Uhr)

  4. #4
    HaWe
    Gast
    jawohl, File Open-Menüs klappen wunderbar!
    Können einfach ins Programm mit eingebunden werden, siehe hier:
    (Dank an peterfido + sisor !)
    https://www.roboternetz.de/community...l=1#post628328

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    So. Hat länger gedauert wie ich dachte .

    Bin jetzt aber wieder am Start, spätestens morgen gehts weiter!

    Die Idee mit Zenity hatte ich auch schon ^^

  6. #6
    HaWe
    Gast
    alles klar!
    zum hiesigen Thema *.wav files spielen/lesen/speichern fehlt ja dann nur noch, wie man einen Array als kompletten *.wav lädt und speichert (beides mit Zenity),
    im Gegensatz zu Menüpunkt
    als *.csv speichern
    müsste dann dafür ja nur zusätzlich noch der wav Header davor.


    Und dann kommt so langsam der Teil mit der FFT - hier ist ein Link zur Einführung, samt FFT Code:

    http://paulbourke.net/miscellaneous/dft/

    (für unsere Anwendung: int64_t statt long! )



    - - - Aktualisiert - - -

    noch eine Bitte:

    könntest du bitte nochmal die aktuelle Version deiner alsa-lib
    "diaSound.hpp"
    posten, ohne Verwendung von "string" in den Funktionen, stattdessen ausschließlich mit " char * " falls möglich ?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Ich schau mal wie ich das umgebaut kriege. String ist doch schon ne deutlich einfachere Sache wie char *. Keine Speicherreservierung usw. Aber ich schaue.

    Ich würde sagen, anstelle von zenity verwenden wir ncurse. Sobald ich am Raspi bin (jetzt wieder mit ssh ^^) mach ich mich dran.

  8. #8
    HaWe
    Gast
    ok -
    nur wenn du string nimmst, müssen wir ihn sowieso erst in einen Array mit fester Dimension [SHRT_MAX] umkopieren, bevor wir ihn verarbeiten können.
    Deine Funktionen bleiben dann aber evtl sogar flexibler.

    Nachdem die ersten wav-Tests ja erfolgreich abgeschlossen sind, brauchen wir in Zukunft nur noch mit array input[SHRT_MAX] zu arbeiten, und der zusätzliche array wavebuffer[SHRT_MAX] wird nur noch für wenige Zwischenschritte hilfsweise benötigt.

    Die wichtigsten nächsten Regie-Funktionen wären also also:



    Menü (1) wav file lesen
    *.wav-file ---> (über OpenFileDialog) --> string variabel --> fester array input[SHRT_MAX] mit wav-Header
    edit: --> wav-Header herausschneiden (--> array wavebuffer[SHRT_MAX] als Puffer),
    --> array input[SHRT_MAX]==reine sound-data zur Weiterverarbeitung


    Menü (2) wav file abspielen
    *.wav-file ---> (über OpenFileDialog) --> ohne Veränderung direkt über SoundCard abspielen


    Menü (3) per Micro aufnehmen
    Micro --> direkt --> fester array input[SHRT_MAX]==reine sound-data zur Weiterverarbeitung



    Menü (4) akt. Sound (Array im RAM) abspielen + Plot
    array input[SHRT_MAX]==reine sound-data direkt über Soundcard abspielen



    Menü (5) optimieren
    array input[SHRT_MAX] --> noise glätten --> def.Wortgrenzen --> Wort rausschneiden und ganz an den Anfang setzen
    (--> array wavebuffer[SHRT_MAX] als Puffer), dann wieder zurückkopieren in
    --> array input[SHRT_MAX]==reine sound-data zur Weiterverarbeitung


    Menü (6) Sound als *.wav File speichern unter:
    array wavebuffer[SHRT_MAX]: an den Anfang den wav-Header, dann direkt anschließend input[SHRT_MAX]
    --> wavebuffer[SHRT_MAX] an SaveFileDialog ---> neuen Speichernamen eingeben
    --> als *.wav file speichern


    Damit wäre es sofort auch am einfachsten für dich, Wortmuster für den FFT-Vergleich aufzunehmen (Micro), zu bearbeiten, und neu zu speichern. Oder bereits vorhandene *.wav Dateien zu öffnen, nachzubearbeiten oder zu überschreiben.



    0 Soundfile *.csv in Programm öffnen / laden (FileOpenDialog)
    1 Soundfile *.wav in Programm öffnen / laden (FileOpenDialog)
    2 Soundfile *.wav öffnen / abspielen + Plot (FileOpenDialog)
    3 Sound aufnehmen per Micro / SoundCard
    4 akt. Sound (Array im RAM) abspielen + Plot
    5 akt. Sound optimieren (noise/cut)
    6 akt. Sound (im RAM) als *.wav File speichern unter... (FileSaveDialog)
    7 akt. Sound an FFT + Plot
    8 akt. Sound cross correlation mit 1 wav File (FileOpenDialog)
    9 akt. Sound cross correlation mit allen *.wav Files (auto)
    Geändert von HaWe (18.06.2016 um 20:54 Uhr)

Ähnliche Themen

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

Berechtigungen

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

Solar Speicher und Akkus Tests