Go to file
Ruben van de Ven 23ed276cc3 Enable logging param for supervisor 2019-04-11 12:00:38 +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 Remove httpclient for call to voice storage. Attempt to fix 'Too many open files' error 2019-04-01 16:36:34 +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

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