Go to file
Ruben van de Ven 9b36356454 change service files 2019-04-11 12:50:51 +02:00
hugvey Logging to cmd now a client param, player uses a thread, recording formatting and prerol of mic (in client) 2019-04-11 12:00:11 +02:00
installation Installation for Pis 2019-03-29 16:20:23 +01:00
local@16738c586f New contain conditions now work incl. timer 2019-02-11 21:28:48 +01:00
recordings Fix #27 and fix #17 - Transcriptions and recordings - two birds, one stone 2019-04-10 10:13:35 +02:00
www Generate overview of all audio files 2019-04-10 18:46:32 +02:00
.gitignore Webdev workflow 2019-01-23 15:26:44 +01:00
.gitmodules Housekeeping with repos 2019-01-25 17:18:50 +01:00
README.md systemd file 2019-04-11 12:42:22 +02:00
autossh-hugvey.service change service files 2019-04-11 12:50:51 +02:00
client_config.yml Client config for external sound card 2019-04-10 10:14:14 +02:00
hugvey_client.py Logging to cmd now a client param, player uses a thread, recording formatting and prerol of mic (in client) 2019-04-11 12:00:11 +02:00
hugvey_server.py Logging made fit for cutelog / client audio stream now on port = port_nr + hugvey_id' 2019-03-23 18:18:52 +01:00
install_server.sh As sudo 2019-03-29 16:26:23 +01:00
requirements.server.txt Implement cutelog for server, and timeline in Panopticon. 2019-03-27 13:36:09 +01:00
requirements.txt Refactor Interruptions to Diversions & some fixes in status display 2019-01-25 10:43:55 +01:00
server_config.yml Configuration example for MS & lyrebird 2019-04-09 09:42:55 +02:00
supervisor.conf Enable logging param for supervisor 2019-04-11 12:00:38 +02:00
test_pub.py Client now publishes itself 2019-01-16 09:00:49 +01:00
test_sub.py Streaming audio to central command when on verbose 2019-01-17 17:39:52 +01:00

README.md

Hugvey / Pillow Talk

  • Panpoticon
    • Fancy nickname for the web interface that allows altering the story and running the individual Hugveys
  • Voice
    • Lyrebird voice syntehsis API wrapper. Set the oAuth token using a token generated here
  • Client
    • Individual Hugveys that stream their mic output and play audiofiles trough the Panopticon. Communication with the server is done through zmq
    • Connect with them trough hugvey1.local etc (1-25).
  • Central Command/server
    • One server to rule them all. Start individual threads/subprocesses for the individual Hugveys. The Panopticon is started when starting the server.

Server

Run the server: python hugvey_server.py --config server_config.yml

Panopticon

The server also integrates the panopticon, the monitoring & administration interface to Hugvey.

Client

To run it: python hugvey_client.py -c client_config.yml

Development

The Panopticon uses gulp to compile SASS into CSS, and to set up browser-sync for css & js. For now, no js user facing dependencies are managed trough node/npm.

After starting the server:

cd www
gulp

To run a command on all hugveys:

fab -H rubenvandeven.com,saclab@projects.rubenvandeven.com -- uname

Installation

create and load Python virtualenv

virtualenv -p python3 --system-site-packages venv
source venv/bin/activate

Install requirements

apt install libasound-dev python3-pyaudio git-lfs
pip install -r requirements.server.txt
pip install -r requirements.txt

Install soft requirements (These are hard requirements for the clients!)

apt install sox rsync

Don't forget to init git submodules

git submodule init
git sumodule update

copy autossh-hugvey.service to /etc/systemd/system/:

cp autossh-hugvey.service /etc/systemd/system/autossh-hugvey.service

clients

apt install supervisor

Add the following to the first section of /etc/supervisor/supervisord.conf

chown=pi:pi

Deploy / usefull commands

for i in {1..6}; do rsync -av ~/hugvey/ pi@hugvey$i.local:/home/pi/hugvey/ --exclude=www --exclude=venv --exclude=local --exclude=*.pyc --exclude=.git; done
for i in {1..6}; do ssh pi@hugvey$i.local "sudo shutdown -h now"; done
lsof -p $(ps aux|grep "[h]ugvey_server.py" |awk '{print $2}')| awk '{print $9}'|sort -rn|uniq -c|sort -rn|head -20

or

lsof | grep $(ps aux|grep "[h]ugvey_server.py" |awk '{print $2}')| awk '{print $11}'|sort -rn|uniq -c|sort -rn|head -20