Nachdem die letzten Posts sich um Audio Ausgabe und Aufnahme gedreht haben möchte ich heute noch ein kleines spaßiges Tool vorstellen mit welchem wir unseren eigenen Stimmenverzerrer basteln können. Da die Leistung hier nicht maßgeblich ist sondern das Setup transportabel sein sollte verwende ich einen meiner Raspberry Pi Zero´s für dieses Projekt.
Das Tool SoX (Sound eXchange) bietet uns vielfältige Möglichkeiten aufgenommene Stimmen zu verzerren oder zu manipulieren.
Hardware
- Raspberry Pi 3
- Netzteil (2,5A@5,1V),
- Eine Class 10 MicroSD Karte
- Ein USB Sound Karte mit Line-In (günstig, schlechte Qualität)
- Mittelpreisige DAC USB Sound-Karte mit Line in – Gute Kosten gute Qualität
- Ein Mikrophon
- Lautsprecher mit 3,5mm Klinke oder im Bildschirm integrierten Lautsprechern (HDMI)
- Es eignen sich Lautsprecher für den Einsatz am Smartphone, die haben neben 3.5mm Klinke meist einen USB Port für die Stromversorgung des integrierten Verstärkers
Vorbereitung
Wie immer müsst ihr euer System bereits installiert und eingerichtet haben. Ich verwende das aktuelle Raspbian Stretch.
Wichtig! Sicherstellen das euer Mikrofon nicht gemuted ist, öffnet hierzu in einer Kommandozeile alsamixer
1 |
alsamixer |
Wechselt mit den Pfeiltasten auf euer Microfon und stellt sicher das in der unteren Box NICHT „MM“ steht (MM = Mute), ändern könnt ihr das durch Drücken der M Taste.
Im alsamixer könnt ihr auch eure Aufnahmelautstärke anpassen (Pfeiltasten hoch/runter)
SoX Stimmenverzerrer auf dem Raspberry Pi einrichten
Öffnet zum Setup der SoX Software ein Terminal auf dem Desktop oder benutzt VNC, wir installieren als erstes die notwendige Software, SoX für die Veränderung unserer Aufnahmen und ,mpg123 um auch im mp3 Format speichern zu können.
1 |
sudo apt-get install sox mpg123 libsox-fmt-mp3 -y |
Eine weitere Einrichtung ist nicht notwendig, wir können direkt mit dem Spaß beginnen. SOX kann auf drei verschiedene Arten gestartet werden.
- sox – Enthält alle Funktionen
- play – Für Wiedergaben mit Sox
- rec – Für Aufnahmen mit SoX
Stimme mit SoX und dem Raspberry Pi verzerren
Zur Veränderung unserer Stimme stehen uns eine schier unendliche Anzahl an Möglichkeiten zur Verfügung, SoX bietet uns einige Effekte die miteinander Kombiniert werden können. Ein Studium der MAN Pages und etwas last zu probieren verschafft euch bestimmt lustige Ergebnisse.
Wer kein Microfon hat kann sich meine Testdatei herunterladen und damit spielen.
1 2 |
cd $HOME wget cdn.raspberry.tips/2017/09/raspberry-tips-sox-example.wav |
Simples Echo direkt ausgeben
Aufnehmen und direkt verändert wieder ausgeben. In diesem Beispiel modifizieren wir den Sound direkt beim Aufnehmen
1 2 |
play "|rec --buffer 2048 -d pitch -300 echos 0.8 0.88 100 0.6 150 .5 band 1.2k 1.5k" |
Entführer Style
Als erstes habe ich ein Beispiel mit meinem Mikrofon aufgenommen und als raspberry-tips-sox-example.wav gespeichert (stoppen der Aufnahme mit CTRL+C)
1 |
rec raspberry-tips-sox-example.wav |
Die Aufnahme modifiziere ich dann mit folgenden Befehlen
1 2 3 |
sox raspberry-tips-sox-example.wav tmp.wav norm vad gain -7 pitch -600 overdrive 20 pad .25 sox tmp.wav tmp-reverse.wav reverse reverb -w reverse sox -m tmp.wav tmp-reverse.wav fertig.mp3 |
Folgendes passiert:
- Mit der ersten Zeile verzerren wir das Stimmbild
- Die zweite Zeile speichert die verzerrte Datei zusätzlich im Rückwärts-lauf
- Befehl drei kombiniert die beiden verzerrten Dateien zu fertig.mp3
Die fertige Datei könnt ihr dann z.B. mit play wieder ausgeben.
1 |
play fertig.mp3 |
Roboter Stimme
Wir können auch eine fertige Datei beim Abspielen modifiziert ausgeben ohne die Quelle zu verändern. In diesem Beispiel geben wir eine Roboter Stimme aus.
1 |
play raspberry-tips-sox-example.wav overdrive 10 echo 0.8 0.8 5 0.7 echo 0.8 0.7 6 0.7 echo 0.8 0.7 10 0.7 echo 0.8 0.7 12 0.7 echo 0.8 0.88 12 0.7 echo 0.8 0.88 30 0.7 echo 0.6 0.6 60 0.7 |
Ganz brutal blechern lässt sich der Roboter wie folgt generieren
1 |
play raspberry-tips-sox-example.wav stretch 1.2 133.33 lin 0.2 0.4 overdrive 30 30 echo 0.4 0.8 15 0.8 synth sine fmod 30 echo 0.8 0.8 29 0.8 |
Mit diesem Befehl lassen sich auch schon die verschiedenen Effekte anhand einer Beispieldatei testen.
Mickey Mouse
Mit etwas Pitch und Speed lässt sich ein Mickey Mouse Effekt erziehlen
1 |
play raspberry-tips-sox-example.wav pitch 500 speed 1.5 |
Zum umwandeln einer vorhandenen Datei kann folgender Befehl verwendet werden
1 |
sox raspberry-tips-sox-example.wav raspberry-tips-sox-example-mickey.mp3 pitch 500 speed 1.5 |
Viel Spaß!