Wissenschaftliche Audioverarbeitung, Teil I – Wie man Audiodateien mit Octave 4.0.0.0 auf Ubuntu liest und schreibt

Octave, die gleichwertige Software wie Matlab unter Linux, verfügt über eine Reihe von Funktionen und Befehlen, die die Erfassung, Aufzeichnung, Wiedergabe und digitale Verarbeitung von Audiosignalen für Unterhaltungsanwendungen, Forschung, Medizin oder andere wissenschaftliche Bereiche ermöglichen. In diesem Tutorial verwenden wir Octave V4.0.0.0 in Ubuntu und beginnen mit dem Lesen von Audiodateien durch Schreiben und Abspielen von Signalen, um Sounds zu emulieren, die bei einer Vielzahl von Aktivitäten verwendet werden.

Beachten Sie, dass der Schwerpunkt dieses Tutorials nicht auf der Installation oder dem Erlernen der Verwendung einer bereits etablierten Audioverarbeitungssoftware liegt, sondern darauf, zu verstehen, wie sie aus Sicht des Designs und der Audiotechnik funktioniert.

Voraussetzungen

Der erste Schritt ist die Installation der Oktave. Führen Sie die folgenden Befehle in einem Terminal aus, um das Octave PPA in Ubuntu hinzuzufügen und die Software zu installieren.

sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave

Schritt 1: Öffnen der Oktave.

In diesem Schritt öffnen wir die Software, indem wir auf das Symbol klicken, wir können das Arbeitsverzeichnis ändern, indem wir auf die Dropdown-Liste File Browser klicken.

Öffnen von Octave 4.0

Schritt 2: Audio-Info

Der Befehl „audioinfo“ zeigt uns relevante Informationen über die Audiodatei, die wir verarbeiten werden.

>> info = audioinfo ('testing.ogg')

Verwendung von Audioinformationen in Octave

Schritt 3: Lesen einer Audiodatei

In diesem Tutorial werde ich Ogg-Dateien lesen und verwenden, für die es möglich ist, Merkmale wie Sampling, Audiotyp (Stereo oder Mono), Anzahl der Kanäle, etc. zu lesen. Ich sollte erwähnen, dass für die Zwecke dieses Tutorials alle verwendeten Befehle im Terminalfenster von Octave ausgeführt werden. Zuerst müssen wir die ogg-Datei in einer Variablen speichern. Hinweis: it´s wichtig, dass sich die Datei im Arbeitspfad von Octave befinden muss.

>> file='yourfile.ogg'
>> [M, fs] = audioread(file)

wobei M eine Matrix aus einer oder zwei Spalten ist, abhängig von der Anzahl der Kanäle und fs die Abtastfrequenz ist.

Octave - liest Audiodatei in eine Variable ein.

Oktavmatrix

Oktavfrequenz

Es gibt einige Optionen, die wir zum Lesen von Audiodateien verwenden können, wie z.B.:

>> [y, fs] = audioread (filename, samples)
>> [y, fs] = audioread (filename, datatype)
>> [y, fs] = audioread (filename, samples, datatype)

Wo samples Start- und Endrahmen spezifiziert und datatype gibt den Datentyp an, der zurückgegeben werden soll. Wir können jeder Variablen Werte zuweisen:

 

>> samples = [1, fs)
>> [y, fs] = audioread (filename, samples)


Und über den Datentyp:

 

>> [y,Fs] = audioread(filename,'native')


Wenn der Wert‘nativ‚ ist, hängt die Art der Daten davon ab, wie die Daten in der Audiodatei gespeichert werden.

 

Schritt 4: Schreiben einer Audiodatei

Erstellen der ogg-Datei:

Zu diesem Zweck werden wir eine ogg-Datei mit Werten aus einem Cosinus erzeugen. Die Abtastfrequenz, die ich verwenden werde, beträgt 44100 Samples pro Sekunde und die Datei wird 10 Sekunden lang dauern. Die Frequenz des Cosinussignals beträgt 440 Hz.

>> filename='cosine.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*440*t;
>> signal=cos(w);
>> audiowrite(filename, signal, fs);

Dadurch wird in unserem Arbeitsbereich eine Datei namens‘cosine.ogg‚ erstellt, die das Cosinussignal enthält.

Cosinus-Datei

Wenn wir die Datei‘cosine.ogg‚ abspielen, dann reproduziert dies einen 440Hz-Ton, der einem‘A‚-Musikton entspricht. Wenn wir die in der Datei gespeicherten Werte sehen wollen, müssen wir die Datei mit der Funktion‘audioreadlesen‚. In einem weiteren Tutorial wird gezeigt, wie man eine Audiodatei mit zwei Kanälen schreibt.

Schritt 5: Wiedergabe einer Audiodatei

Octave verfügt standardmäßig über einen Audioplayer, den wir zu Testzwecken verwenden können. Verwenden Sie die folgenden Funktionen als Beispiel:

 >> [y,fs]=audioread('yourfile.ogg');
>> player=audioplayer(y, fs, 8)

scalar structure containing the fields:

BitsPerSample =  8
CurrentSample = 0
DeviceID = -1
NumberOfChannels =  1
Running = off
SampleRate =  44100
TotalSamples =  236473
Tag =
Type = audioplayer
UserData = [](0x0)
>> play(player);

In den nächsten Teilen des Tutorials werden wir erweiterte Funktionen zur Audioverarbeitung und mögliche Anwendungsfälle für die wissenschaftliche und kommerzielle Nutzung sehen.

Das könnte Dich auch interessieren …