You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
7 months ago | |
|---|---|---|
| Audio | 7 months ago | |
| data | 7 months ago | |
| docs | 7 months ago | |
| json | 7 months ago | |
| src/adn_server | 7 months ago | |
| .gitignore | 7 months ago | |
| README.md | 7 months ago | |
| adn-parrot.example.yaml | 7 months ago | |
| adn-parrot.py | 7 months ago | |
| adn-server.example.yaml | 7 months ago | |
| adn-server.py | 7 months ago | |
| adn-voice.example.yaml | 7 months ago | |
| pyproject.toml | 7 months ago | |
| requirements.txt | 7 months ago | |
README.md
ADN DMR Peer Server
Clean Architecture rewrite of the ADN DMR conference bridge. Same behaviour as the original server; configuration is YAML.
License
GPL v3. Derived from FreeDMR / HBlink.
Requirements
- Python 3.10+
- Dependencies:
pip install -r requirements.txt - ffmpeg (system package) — required for voice/TTS. Install via your distro:
- Debian/Ubuntu:
apt install ffmpeg - openSUSE:
zypper install ffmpeg - Fedora/RHEL:
dnf install ffmpegoryum install ffmpeg
- Debian/Ubuntu:
Configuration
Copy adn-server.example.yaml to adn-server.yaml and edit with your settings. Production config is not committed.
Voice configuration
Voice features (announcements, TTS, recording) use a separate config file. Copy adn-voice.example.yaml to adn-voice.yaml and edit. If the file does not exist, voice features are disabled (no error). Changes are hot-reloaded every 15 seconds.
- Each item (ANNOUNCEMENTS, TTS_ANNOUNCEMENTS) has its own
LANGUAGEandENABLED: trueto activate. - ANNOUNCEMENT_LANGUAGES is optional (for voice ident only); announcements/TTS work without it.
- TTS requires ffmpeg + vocoder (TTS_VOCODER_CMD or TTS_AMBESERVER_HOST). Pipeline:
.txt→ gTTS →.mp3→ ffmpeg →.wav→ vocoder →.ambe
Run
pip install -r requirements.txt
python adn-server.py
Options:
python adn-server.py -c /path/to/adn-server.yaml
python adn-server.py --logging DEBUG
Parrot (Playback)
A separate entrypoint records incoming group voice and plays it back (echo/parrot).
cp adn-parrot.example.yaml adn-parrot.yaml
python adn-parrot.py
See docs/PARROT.md for architecture, configuration and systemd setup.