Go to file
Ruben van de Ven 929b7cb4d1 Workaround for crash of voice fetch, sox audiodev in config, client waits a sec to allow mics to come up 2019-04-08 12:15:47 +02:00
hugvey Speed up 'create new message' > 2 times 2019-04-06 12:07:45 +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
www Add a fix for slowness in traverseMsg, hope it doesn't cause regressions 2019-04-07 16:38:15 +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 Workaround for crash of voice fetch, sox audiodev in config, client waits a sec to allow mics to come up 2019-04-08 12:15:47 +02:00
hugvey_client.py Add id to client 2019-03-07 21:34:50 +01: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 Add temporary auth token 2019-02-18 23:31:03 +01:00
supervisor.conf Faster supervisord 2019-03-28 16:41:37 +01: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