|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # Announcement Box
-
- Linux box with a loudspeaker and an emergency light to be used for announcements and notifications.
-
- ![Hardware](hw.jpg)
-
-
- ## Hardware
- ### Overview
- * SBC with GPIOs and sound output :: OrangePi Zero with an expansion board
- * PA system
- * speaker :: 30W, 4 Ohms horn loudspeaker
- * sound amplifier :: mono 18W sound amplifier
- * relay module :: 12V low trigger relay
- * Warning Light system
- * warning light :: 12V 10W rotary orange warning light
- * relay module :: 12V low trigger relay
- * System Activity Light system
- * indicator LED
- * Human Activity Sensor system
- * PIR module
-
- ### Building
- TBD
-
- ## Software
- ### Overview
- * Operating System - Linux :: Armbian Bullseye for the OrangePi Zero
- * PA System
- * Voice Synthesizer :: Festival / ESpeak
-
- ### Installation
- Run as root:
- ```bash
- cp toolkit/* /usr/local/bin/
-
- cp etc/systemd/system /etc/systemd/system
- systemctl enable --now system-activity-light.service
- systemctl enable --now human-activity-sensor.service
- ```
-
- ## Implementation Notes
-
- ### Armbian + OrangePi Zero Installation
-
- #### Enable analog soundcard
- ```
- sudo armbian-config
- # System > Hardware > [*] analog-codec
- ```
-
- #### Software Dependencies
- ##### OS Packages
- ```bash
- apt install mplayer espeak-ng
- ```
-
- ##### GPIO toolkit
- ```bash
- # upstream:
- #git clone https://github.com/orangepi-xunlong/wiringOP
- # enhanced:
- git clone https://github.com/Dejvino/wiringOP
- cd wiringOP
- ./build clean
- ./build
- ```
-
- ### PA System
- #### Enabling mixed sound output
- ```bash
- cat ~/.asoundrc
- pcm.!default plug:dmix
- ```
-
- #### Text to Speech
- ```bash
- ## Festival
- # reading
- ...
- # to file
- text2wave text.txt > wave.wav
-
- ## ESpeak
- # voices:
- ls /usr/lib/arm-linux-gnueabihf/espeak-data/voices/
- # reading
- espeak -f text.txt -p 40 -s 160 -v "en-us"
- # to file
- espeak -f text.txt -p 40 -s 160 -k15 -g 1 -w wave.wav
- # using SSML (e.g.: https://www.xml.com/pub/a/2004/10/20/ssml.html)
- espeak -f ssml.txt -m
- ```
-
- #### Converting into a low-quality broadcast audio
- ```bash
- sox infile.wav outfile.wav downsample echo 0.5 1 1 1
- ```
-
- ### Human Activity Sensor
-
- #### Reading File Timestamp
- ```bash
- stat /var/tmp/human_last_seen --format=%Y
- ```
-
|