deutsch     english     français     Drucken

 

4.3 SOUND AUFZEICHNEN

 

 

EINFÜHRUNG

 

Mit dem Soundsystem kann man auch Sounds aufnehmen und abspeichern. Dazu musst du den Soundkarten-Eingang mit einer externen Quelle, z.B. einem Mikrofon oder einem Abspielgerät verbinden. Notebooks haben meist ein eingebautes Mikrofon.

PROGRAMMIERKONZEPTE: Blockierende und nichtblockierende Funktion

 

 

SOUNDRECORDER

 

Vor der Aufzeichnung rufst du openMonoRecorder() auf, um das Aufnahme- system vorzubereiten, wobei du die Abtastrate als Parameter angeben musst. Die Aufzeichnung startest du mit capture(). Diese Funktion ist nicht blockierend und kehrt sofort zurück. Mit stopCapture() musst du später die Aufnahme beenden. Die aufgenommenen Soundsamples werden in eine Liste kopiert, die du mit getCapturedSound() abholst. Du führst eine Aufnahme von 5 Sekunden Dauer durch und spielst dann den Sound ab.

from soundsystem import *

openMonoRecorder(22050)
print("Recording...");
capture()
delay(5000)
stopCapture()
print("Stopped");
sound = getCapturedSound()

openMonoPlayer(sound, 22050)
play()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 


 

MEMO

 

Ein Befehl wie capture(), der eine Aktion auslöst und sofort zurückkehrt, nennt man auch eine nicht-blockierende Funktion. Damit hast du die Möglichkeit, im weiteren Programmverlauf die im Hintergrund weiter laufende Aktion zu steuern, beispielsweise abzubrechen.

 

 

AUFGENOMMENEN SOUND DARSTELLEN

 

Natürlich interessiert uns oft auch die grafische Darstellung des aufgenommenen Sounds. Du weisst ja bereits, wie man dies mit dem GPanel macht.

Die nebenstehende Grafik stellt die Aufnahme der Wörter
"one two three for five six seven eight nine ten" dar.

 

 


from soundsystem import *

openMonoRecorder(22050)
print("Recording...");
capture()
delay(5000)
stopCapture()
print("Stopped");
sound = getCapturedSound()

from gpanel import *
makeGPanel(0, len(sound), -33000, 33000)
for i in range(len(sound)):
    draw(i, sound[i])
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

 

MEMO

 

Die Anzahl Abtastwerte erhältst du aus der Länge der Soundliste. Für die grafische Darstellung verwendest du am einfachsten eine for-Struktur. Spiele etwas mit verschiedenen aufgenommenen Sounds und überlege dir, ob du die Soundkurve verstehst.

 

 

WAV-DATEIEN SPEICHERN

 

Du kannst den aufgenommenen Sound mit writeWavFile() auch als WAV-Datei abspeichern.

from soundsystem import *

openMonoRecorder(22050)
print("Recording...");
capture()
delay(5000)
stopCapture()
print("Stopped");
sound = getCapturedSound()

writeWavFile(sound, "mysound.wav")
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

 

MEMO

 

Nach dem Abspeichern kannst du die Sounddatei entweder mit Python oder mit irgend einem auf dem Computer installierten Soundplayer anhören.

 

 

AUFGABEN

 

1.


Zeichne einzelne Wörter auf.


2.


Setze diese Wörter zu einem Satz zusammen.


3*.


Lass den Computer eine als Text gegebene Telefonnummer in Einzelziffern sprechen.