Octave, die gleichwertige Software zu Matlab in 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 in Ubuntu und beginnen mit dem Lesen von Audiodateien, indem wir Signale schreiben und wiedergeben, um Klänge zu emulieren, die in einer Vielzahl von Aktivitäten verwendet werden.
Hinweis dass das Hauptaugenmerk dieses Tutorials nicht darauf liegt, eine bereits etablierte Audioverarbeitungssoftware zu installieren oder zu verwenden, sondern vielmehr zu verstehen, wie sie aus Sicht des Designs und der Audiotechnik funktioniert.
Voraussetzungen
Der erste Schritt besteht darin, Oktave zu installieren. 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:Oktave öffnen.
In diesem Schritt öffnen wir die Software, indem wir auf ihr Symbol klicken, wir können das Arbeitsverzeichnis ändern, indem wir auf das Dropdown-Menü Dateibrowser klicken.
Schritt 2:Audioinfo
Der Befehl "audioinfo" zeigt uns relevante Informationen über die Audiodatei, die wir verarbeiten werden.
>> info = audioinfo ('testing.ogg')
Schritt 3:Lesen einer Audiodatei
In diesem Tutorial werde ich OGG-Dateien lesen und verwenden, für die es möglich ist, Eigenschaften wie Sampling, Audiotyp (Stereo oder Mono), Anzahl der Kanäle usw. zu lesen. Ich sollte das für die Zwecke dieses Tutorials erwähnen Die verwendeten Befehle werden im Terminalfenster von Octave ausgeführt. Zuerst müssen wir die ogg-Datei in einer Variablen speichern. Hinweis:Wichtig ist, dass sich die Datei im Arbeitspfad von Octave
>> 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.
Es gibt einige Optionen, die wir zum Lesen von Audiodateien verwenden können, wie z :
>> [y, fs] = audioread (filename, samples)
>> [y, fs] = audioread (filename, datatype)
>> [y, fs] = audioread (filename, samples, datatype)
Wobei Samples Start- und Endframes und Datatype den zurückzugebenden Datentyp angibt. Wir können jeder Variablen Werte zuweisen:
>> samples = [1, fs)
>> [y, fs] = audioread (filename, samples)
Und zum Datentyp:
>> [y,Fs] = audioread(filename,'native')
Wenn der Wert 'nativ' ist, hängt der Datentyp davon ab, wie die Daten in der Audiodatei gespeichert sind.
Schritt 4:Schreiben einer Audiodatei
Erstellen der ogg-Datei:
Zu diesem Zweck erzeugen wir eine ogg-Datei mit Werten aus einem Kosinus. Die Abtastfrequenz, die ich verwenden werde, beträgt 44100 Abtastungen pro Sekunde und die Datei dauert 10 Sekunden. Die Frequenz des Kosinussignals 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 'cosinus.ogg' erstellt, die das Kosinussignal enthält.
Wenn wir die 'cosine.ogg'-Datei abspielen, dann reproduziert diese a 440-Hz-Ton, der einem 'A'-Musikton entspricht. Wenn wir die in der Datei gespeicherten Werte sehen wollen, müssen wir die Datei mit der Funktion „audioread“ „lesen“. In einem weiteren Tutorial werden wir sehen, wie man eine Audiodatei mit zwei Kanälen schreibt.
Schritt 5:Abspielen einer Audiodatei
Octave hat standardmäßig 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 fortgeschrittene Audioverarbeitungsfunktionen und mögliche Anwendungsfälle für wissenschaftliche und kommerzielle Nutzung sehen.