[ TAG 52 ][12.06.2021] - Erfolgreich - SOUNDFILE.SoundFile(...)

 Wir haben gerade den [ 13.06.2021 ][ 09:30 ] ich befinde mich noch in der Orientierungsphase. Ich habe ein neues Modul [ IAP-20210601-20210612-1750 ] eröffnet.

import soundfile as sf

sf.SoundFile(file, mode, samplerate, channels, subtype, endian, format, closefd)

Die Abtastrate oder Abtastfrequenz, auch Samplingrate, Samplerate oder Samplingfrequenz ist in der Signalverarbeitung die Häufigkeit, mit der ein Anlogsignal in einer vorgegebenen Zeit abgetastet wird.

Im Modul [ IAP-20210601-20210609-2325 ] benutze ich den Begriff [ samplerate ] mit der Variable [ fs ]. Die [samplerate] ist au [ 44100 Hz ] gesetzt.

Quelle: https://de.wikipedia.org/wiki/Abtastrate

import soundfile as sf

sf.SoundFile(file, mode, samplerate, channels, subtype, endian, format, closefd)


The position of each audio source within the audio signal is called a channel. Each channel contains a sample indicating the amplitude of the audio beeing produced by that source at a given moment in time. For instance, in stereo sound, there are two audio sources: one speaker on the left, and one on the right.

[ IAP-20210601-20210605-0404 ] Während der Arbeit an diesen Modul ist mir bei der Analyse des NumPy-Array aufgefallen, dass jeder Sample ein zwei dimensionales Array ist. Da ich mich noch nicht so gut auskannte, habe ich die Struktur einfach analysiert um die benötigten Speicherkapazitäten berechnen zu können. Ich habe keine Informationen über die Bedeutung der Float32-Werte gehabt. Das zwei dimensionale Array resultiert aus der Anzahl der Channels.

Ein Sample, der eine Stereo-Aufnahme repräsentiert besteht aus zwei Channels. Es sind zwei Float32-Zahlen.

Quelle: https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_concepts

BLOG-Beitrag erweitert am [16.06.2021][0300]

import soundfile as sf

sf.SoundFile(file, mode, samplerate, channels, subtype, endian, format, closefd)

Unter [ subtype ] versteht man die Samlingtiefe und deren Codierung.

  1. Installiere [ soundfile ]
  2. Verfügbare Datenformate
  3. Verfügbare Subtypes und [ default subtypes ] für WAV:

import soundfile as sf

sf.SoundFile(file, mode, samplerate, channels, subtype, endian, format, closefd)

Unter [ endian ] versteht man die Byte-Rheinfolge in der die Werte im Arbeitsspeicher organisiert sind. 

Beim [ big-endian ] - Format wird das höchstwertige Byte zuerst gespeichert, also der kleinsten Speicheradresse. Zum Beispiel Stunde:Minute:Sekunde

Beim [ little-endian ] - Format wird dagegen das kleinstwertige Byte an der Anfangsadresse gespeichert. Zum Beispiel Tag.Monat.Jahr

Ich fand einen sehr interessanten Beitrag von Gary zu diesen Thema. [ big-endian ] und [ little-endian ] berühren das Thema, wie die Hardware von unterschiedlichen Herstellern die Bit-Sequenzen lesen.

BLOG-Beitrag erweitert am [16.06.2021][0700]

import soundfile as sf

sf.SoundFile(file, mode, samplerate, channels, subtype, endian, format, closefd)

Im Beispiel [ https://python-sounddevice.readthedocs.io/en/0.4.1/examples.html#recording-with-arbitrary-duration ] wird das Attribut [ format ] nicht benutzt. Das Format der Datei wird anscheinend aus der Dateierweiterung im Attribut [ file ] hergeleitet.

Das letzte Attribut [ closefd ] wird ebenfalls nicht benutzt, weil man nicht mit [ file descriptoren ] arbeitet. In dem oben genannten Beispiel wird mit Python Objekten gearbeitet.


[ File Descriptors ] - Ich habe eine gute Erklärung zu diesen Begriff von "Rajendra Dharmkar" gefunden. Bei der Erarbeitung des [ soundfile ] Objektes und im Zusammenhang mit dem Anlegen einer Sounddatei ist mir der Begriff [ File Descriptor ] sehr oft untergekommen. Diese Erklärung von Rajendra Dharmkar vom 22.12.2017 hat mir am besten gefallen.

File descriptors are a low-level facility for working with files directly provided by the OS kernel. A file descriptor is an integer that identifies the open file in a table of open files kept by the kernel for each process. A number of system calls accept file descriptors, but they are not convenient to work with, typically requiring fixed-width buffers, multiple retries in certain conditions, and manual error handling.

File objects are Python classes that wrap file descriptors to make working with files more convenient and less error-prone. For example, they provide error-handling, buffering, line-by-line reading and are closed when garbage collected.

Quelle: https://www.tutorialspoint.com/What-is-a-file-descriptor-used-in-Python

System Calls

Anscheinend kann ein[ File Descriptor ] auch von Systemaufrufen (hier wird der Begriff "system calls") benutzt werden.

Dazu einige Quellen:

Kommentare

Beliebte Posts aus diesem Blog

[ TAG 38 ][29.05.2021] - Erfolgreich - Freelancer-Portale

[ TAG 747 ][07.04.2023] -Erfolgreich -BNKTRS -Google Code -Objekt und Methodenliste

[ TAG 52 ][12.06.2021] - Erfolgreich - IAP-20210601-20210609-2325