2021-02-06 12:00:18 +00:00
2021-01-30 10:25:23 +00:00
2021-01-30 15:19:11 +00:00
2021-02-06 12:00:18 +00:00
doc
2021-01-30 15:50:10 +00:00
2021-02-06 09:41:20 +00:00

Um was geht es?

  • Endlose Aufnahme von WAV über die ALSA Schnittstelle
  • Konvertieren der WAV Dateien nach MP3
  • Upload der MP3 Dateien via rsync zu entfernten Server

Vorbereitung

Voraussetzung

Raspberry

  • Anschluss USB-Soundkarte
  • Einrichtung ALSA
  • über welches Device kann das Mikro angesprochen werden? (hier: plughw:1,0)

Voraussetzungen entfernter Server (server)

  • sshd
  • apt-get install rsync

Raspberry (raspi)

  • Passwortloses Anmelden auf entfernten Server einrichten:
pi@raspi:~> ssh-keygen -t rsa
pi@raspi:~> cat .ssh/id_rsa.pub | ssh user@server 'cat >> .ssh/authorized_keys'
user@server's password:
pi@raspi:~> ssh user@server
user@server:~> exit

Installation

Auf dem Raspi folgendes ausführen:

git clone https://git.hs42.de/hs/sumsel.git
cd /sumsel
chmod a+x sumsel.sh
cp sumsel.conf.dist sumsel.conf

Anschliessend Variablen in ./sumsel.conf setzen:

Variable Optional/Required Bedeutung Default
REC_DEVICE required Adresse der USB Soundkarte plughw:1,0
REMOTE_DIR required Zielordner auf dem entfernten Server <remote_user>@<remote_host>:<remote_path>
REF_FILE_TIME optional Laenge einer WAV Datei in Sekunden 360
REC_DIR optional Ordner, ind dem die WAV Dateien abgelegt werden ./recordings
REC_PREFIX optional Prefix Dateiname WAV Dateien sums
UPL_DIR optional Ordner in dem die MP3 Dateien abgelegt werden ./upqueue
UPL_SUFFIX optional Ordner in dem die MP3 Dateien abgelegt werden sumsi

Betrieb

Im Dauerbetrieb laufen zwei Jobs:

Jobtyp Bezeichnung Kommando Betriebsart
record Aufnahme der WAV Dateien ./sumsel.sh -r -C ./sumsel.conf endlos
convert Konvertierung + Upload ./sumsel.sh -c -C ./sumsel.conf alle 5 Minuten

Die Jobs können über cron gestartet werden. Das Skript setzt einen Lock und sorgt dafür, dass von jeden Jobtyp nur eine Instanz laufen kann. Stellt das Script fest, dass bereits eine Instanz läuft, wird die aktuelle Instanz mit der Meldung "LOCK error" beendet.

hs@raspi4:~/dev/stage/sumsel $ ./sumsel.sh -c -C ./sumsel.conf
LOCK error

Beispiel für crontab:

*/5   * * * * <path>/sumsel.sh -r -C <path>/sumsel.conf >> <path>/sumsel_r.log
*/5+1 * * * * <path>/sumsel.sh -c -C <path>/sumsel.conf >> <path>/sumsel_c.log

Beispielaufruf

./sumsel.sh -C ./sumsel.sh -c

Kommando Aktion
sumsel.sh -s Simulieren
sumsel.sh -r Aufnehmen
sumsel.sh -c Konvertieren + Hochladen

GIT commands

  • git status
  • git add ...
  • git commit -m "..."
  • git push origin master
Description
No description provided
Readme 2 MiB
Languages
Shell 100%