Vollautomatisierter, zeigesteuerter Rundspruchdownload und Übertragung via SVXLINK
Wer Rundsprüche vollautomatisiert, zeitgesteuert downloaden und als Audiofile über SvxLink ausgeben möchte, kann die folgende Anleitung umsetzen. Hierbei wird ein sogenanntes Alsa-Loopbackdevice genutzt über das SvxLink mit einem Audiostream (z.B. aus sox, aplay oder vlc) versorgt wird. Der Stream wird dann gegenüber dem Audiostream aus dem eigenen Empfänger ge-voted.
Vorbedingungen:
– relativ modernes Ubuntu Server Betriebssystem
– relativ neue SvxLink-Version
– Thin Client PC (z.B. HP_Thin_Client_T5570) mit nachgerüsteter 2,5″ HD oder SSD
1) Erstellen Sie eine Datei /etc/asound.conf als root mit folgendem Inhalt:
pcm_slave.hw_loopback {
pcm „hw:Loopback,1,2“
channels 2
format RAW
rate 48000
}
pcm.plug_loopback {
type plug
slave hw_loopback
ttable {
0.0 = 1
0.1 = 1
}
}
2) Laden Sie das Modul snd-aloop automatisch beim Systemstart (als root):
Hierzu die Datei /etc/modules mit einem Editor und Root-Rechten öffnen, den Modulnamen „snd-aloop“ ergänzen und nachfolgend speichern. (Nachfolgend das Kommando „reboot“ ausführen.) Hinweis: Bitte überprüfen und ggf. in der Svxlink.conf korrigieren, ob sich die Adressierung des für Rx1 u. Tx1 verwendeten Audio Device geändert hat!
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with „#“ are ignored.
snd-aloop
Mit „aplay -l“ erhält man eine Übersicht über die verfügbaren Alsa-Devices, das sieht bei Ihnen natürlich anders aus:
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: PCH [HDA Intel PCH], Gerät 0: ALC892 Analog [ALC892 Analog]
Sub-Geräte: 0/1
Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: ALC892 Digital [ALC892 Digital]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
…
Karte 1:
…
Karte 2: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]
Sub-Geräte: 7/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Karte 2: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Die (virtuelle) Karte 2 ist hierbei das Device, welches als Loopbackdevice zur Verfügung steht und auf das SvxLink zugreift.
3) Ergänzen Sie die /etc/svxlink/svxlink.conf um eine Empfänger-Sektion sowie einen Voter:
[RepeaterLogic]
RX=Voter
# MODULES=ModuleEchoLink
# In der Rundspruchvariante der Svxlink.conf können Module (z.B. Echolink)
# entfernt werden um Störungen zu unterbinden.
# SHORT_IDENT_INTERVAL=60 (Nur für Rundspruchvariante der Svxlink.conf verlängern)
# LONG_IDENT_INTERVAL=120 (Nur für Rundspruchvariante der Svxlink.conf verlängern)
# OPEN_ON_1750=250 (Nur für Rundspruchvariante der Svxlink.conf deaktivieren)
OPEN_ON_SQL=400 (Nur für Rundspruchvariante der Svxlink.conf aktivieren)
OPEN_SQL_FLANK=OPEN (Nur für Rundspruchvariante der Svxlink.conf aktivieren)
…
# im Voter-Bereich muß der bisher verwendete Rx (meistens „Rx1“)
# erscheinen sowie der neue Rx, der durch das Alsa-Loopbackdevice
# generiert wird, hier RxLoop!
[Voter]
TYPE=Voter
RECEIVERS=RxLoop,Rx1
# In der Rundspruchvariante der Svxlink.conf kann der Rx1 entfernt werden
# um Störungen zu unterbinden.
VOTING_DELAY=200
BUFFER_LENGTH=0
# der „Rundspruch-RX“ als Alsa-Loopbackdevice
[RxLoop]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=1
SQL_DET=VOX
SQL_START_DELAY=0
SQL_DELAY=0
# hier (SQL_HANGTIME=xxx) auf eine hohe Nachlaufzeit achten, damit
# der RX nicht in den Sprechpausen „abfällt“ und einen Roger-Beep
# erzeugt, 5000ms sollten reichen!
SQL_HANGTIME=5000
VOX_FILTER_DEPTH=20
VOX_THRESH=1000
DEEMPHASIS=0
# und hier der bisher verwendete „normale“ HF-Tx/Rx“ beide Parameter jeweils
# prüfen u. ggf. anpassen.
[Rx1]
AUDIO_DEV=alsa:plughw:2
AUDIO_CHANNEL=0
…
[Tx1]
AUDIO_DEV=alsa:plughw:2
AUDIO_CHANNEL=0
…
4) Sox inkl. Codec für mp3 Wiedergabe installieren:
sudo apt-get install sox
sudo apt-get install libsox-fmt-mp3
5) Erster Test, Rundspruchausgabe über Konsole manuell starten:
aplay –device=plughw:2,1 rundspruch.wav oder
AUDIODEV=hw:0,1 play ansagemontag.mp3
6) Terminplan für Systemkommandos und Start der Bash-Dateien für Rundspruchdownload und Rundspruchausgabe festlegen.
Mittels Editor und Root-Rechten die Datei crontab öffnen, editieren und speichern.
Konsolenkommando: crontab -e
Beispiel für den termingesteuerten Aufruf von Bash-Dateien für den Rundspruchdownload, dessen Aussendung sowie andere Aufgaben mittels „crontab“:
GNU nano 2.5.3 Datei: /tmp/crontab.ejPz0y/crontab
# Edit this file to introduce tasks to be run by cron.
…
# m h dom mon dow command
@reboot /home/db0xyz/vpn.sh
10 02 * * 7 /home/db0xyz/rundspruchnrn.sh
45 11 * * 7 /home/db0xyz/rundspruchkars.sh
00 11 * * 7 /home/db0xyz/playnrn.sh
00 20 * * 7 /home/db0xyz/playkars.sh
00 20 * * 1 /home/db0xyz/playnrnmo.sh
15 03 * * * systemctl reboot -i
15 15 * * * systemctl reboot -i
# Ende
7) Beispiele Bash-Datei für den automatischen Rundspruchdownload gemäß Terminvorgabe aus der Datei „Crontab“
Hinweis: Alle selbst erstellten Bash Scripte müssen nach Fertigstellung auf dem Ubuntu-System mit dem
nachfolgenden Konsolenkommando ausführbar gemacht werden.
sudo chmod +x Dateiname.sh
Dateiname: rundspruchvfdb.sh
#!/bin/bash
#
# /home/db0xyz/rundspruchvfdb.sh
#
###################################################################
# Herunterladen des Originalfiles (Beispiel)
# wget https://www.vfdb.org/rundspruch.mp3
###################################################################
#
#
#VARS
#
WGET=/usr/bin/wget
SVXDIR=/usr/share/svxlink/sounds/de_DE/Rundspruch
#
#LOGIC
#
#alte Files wegschieben
cd $SVXDIR
cp $SVXDIR/vfdb.* $SVXDIR/archiv/
#
#
SRCURL=“https://www.vfdb.org/rundspruch.mp3″
PREFIX=“vfdb“
$WGET $SRCURL -O $SVXDIR/$PREFIX.mp3
#
# — DONE —
…………………………………………………………………………………………………………………………………………………….
Dateiname: rundspruchnrn.sh
# !/bin/bash
#
# /home/db0xyz/rundspruchnrn.sh
#
####################################################################################
# Herunterladen des Originalfiles (Beispiel)
# Nordrhein-/Ruhrgebiets Rundspruch
# https://www.darc.de/der-club/distrikte/l/rundspruch/
# Zur Freigabe des ftp-Downloads bitte Werner, DL4YBZ kontaktieren!
####################################################################################
#
#
#VARS
#
WGET=/usr/bin/wget
SVXDIR=/usr/share/svxlink/sounds/de_DE/Rundspruch
#
#LOGIC
#
#alte Files wegschieben
cd $SVXDIR
cp $SVXDIR/nrn.* $SVXDIR/archiv/
#
#
SRCURL=“ftp://k35xxxs8:DF0ENxxxxxxxxx@dl0drg.darc.de/NRNKomplettfassung.mp3″
PREFIX=“nrn“
$WGET $SRCURL -O $SVXDIR/$PREFIX.mp3
#
# — DONE —
8) Pfade für Rundspruch- und Auslagerungsvariante svxlink.conf anlegen und befüllen
Unter dem Pfad /etc/svxlink/ einen Ordner mit Namen auslagerungrsp anlegen und die aktuelle svxlink.conf Datei dort ablegen.
Unter dem Pfad /etc/svxlink/ einen Ordner mit Namen rspconfig anlegen und zunächst die
aktuelle svxlink.conf Datei dort ablegen. Nachfolgend diese Config-Datei wie zuvor beschrieben für die temporäre Rundspruchausendung anpassen. Die dabei verwendeten Parameter sind nur für den Zeitraum der Rundspruchausendung aktiv und werden nach Beendigung der Rundspruchaussendung wieder durch die für den Relaisbetrieb festgelegten Einstellungen ersetzt.
9) Beispiel Bash-Datei für die Rundspruchaussendung Nordrhein- / Ruhrgebiets Rundspruches
Hinweis: Durch den Tausch von Varianten der Datei „svxlink.com“ vor- bzw. nach dem Rundspruch ist es z.B. möglich, währed der Rundspruchübertragung das Echolink-Modul (oder ggf. andere Module) und den Rx1 zu deaktivieren. Hierdurch können externe Störungen während der Rundspruchübertragung unterbunden werden!
Dateiname: playnrn.sh
#!/bin/bash
#
# /home/db0xyz/playnrn.sh
SVETC=/etc/svxlink
#
# SVXCONFIG sichern in Auslagerungspfad
mv $SVETC/svxlink.conf $SVETC/auslagerungrsp/
cp $SVETC/rspconfig/svxlink.conf $SVETC/
#
# Neue SVXCONFIG nur für die Dauer des Rundspruchs aktivieren
pkill -x svxlink
svxlink –daemon
sleep 3
#
# Rundspruchausgabe starten“
aplay –device=plughw:0,1 /usr/share/svxlink/sounds/de_DE/Core/local/1750Hz.wav
AUDIODEV=hw:0,1 play /usr/share/svxlink/sounds/de_DE/Rundspruch/nrn.mp3
AUDIODEV=hw:0,1 play /usr/share/svxlink/sounds/de_DE/Core/local/relaisinformationen052019.mp3
#
# Zuvor gesicherte SVXCONFIG für den Relaisbetrieb wieder zurückkopieren und aktivieren
cp $SVETC/auslagerungrsp/svxlink.conf $SVETC/
pkill -x svxlink
svxlink –daemon
#
# — DONE —
10) Ergänzende Audiodateien (Beispiele)
11) Ergänzende Links (z.B. TTS generierung)
http://www.fromtexttospeech.com/
https://online-audio-converter.com/de/
https://www.stefaanlippens.net/audio_conversion_cheat_sheet/
http://onlinetonegenerator.com/
VY73 DG 3 EAJ // 24.06.2019
Neueste Kommentare