Make new post:
> hugo new blog/file.md
> hugo new code/file.md
Run locally:
> hugo server -D
Compile assets to target location:
> hugo -d ../(directory)
Threading on raspberry is way too slow. With speech recognition, socket shuts down unexpectly. To reproduce error, run speech_Client.py
ACTIONS
In the pi branch, i will remove countdown class to see if it improves performance
When Clients speaks, it should not be listening. When it is listening, it should not be speaking
Approach 1 : Theading mutex lock on speaking Boolean
Approach 2 : Investigating use of Observable pattern
also document the commands needed to run demo
Do this instead of closing all threads that are non main
Or use processes and know how to close specific process
idea is to have countdown keep track of both users
current implementation is a separate countdown per users
possible implementation idea is to have a conversation class between two users and have the countdown class check that.
case success: say nothing.
case fail: say "Kevin's not available"
Dataflow:
Extract name
look up socket by name
if no socket by that name, fail.
send to socket
if socket unresponsive, fail.
websocket.py is getting dense
are there ways we can decouple some of its code
likely due to no https, lacking openssl.
Needs research for iOS webRTC
TODO:
-Android Chrome - should be possible, look to see how others have made it work.
solution: dont let user talk to themselves!
no more
is your name ???
needs research.
user.conversant.conversant is a potential point of failure
may also be a failure with 2 people.
-works with text with 3 people, but not with voice.
fix
'I am June' is a different type and than 'hi june can you send me some cheese'
Use python enum to differentiate different types
server remains just fine, can re-register as same user if you re-boot the client.
to reproduce error:
run:
python3 src/run.py
lt -s voiceminder -p 5000
vim echo_client.py
change to websocket.create_connection("ws://voiceminder.localtunnel.me")
python3 echo_client.py
on client's side, error shown:
--- request header ---
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: voiceminder.localtunnel.me
Origin: http://voiceminder.localtunnel.me
Sec-WebSocket-Key: 56Z81kA/Uw6oy92EUTDJSQ==
Sec-WebSocket-Version: 13
--- response header ---
HTTP/1.1 200 OK
Server: nginx/1.10.1
Traceback (most recent call last):
File "echo_client.py", line 6, in
ws = websocket.create_connection("ws://voiceminder.localtunnel.me")
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/websocket/_core.py", line 487, in create_connection
websock.connect(url, **options)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/websocket/_core.py", line 214, in connect
self.handshake_response = handshake(self.sock, *addrs, **options)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/websocket/_handshake.py", line 69, in handshake
status, resp = _get_resp_headers(sock)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/websocket/_handshake.py", line 129, in _get_resp_headers
raise WebSocketBadStatusException("Handshake status %d", status)
websocket._exceptions.WebSocketBadStatusException: Handshake status 200
to a separate class. Then import it, incase we will use our countdown in other parts of voiceminder
callback: timer on user thread and expire timer as soon as they respond.
on the client side, listening state will stop recognizing microphone input after ~5 seconds, but can still be revived if messaged by someone else.
Suggested resolves:
-event handlers
-onspeechend
-onaudioend
easier to reason about start and end of conversation
problems observed
-it is echoing sometimes
-seems like it gets confused with user.name and recipient name
-3way is shaky at best
Create the following tables:
User(uid, username, nickname, m_at, c_at)
Conversation(user1(FK User), user2(FK User), cid, m_at, c_at)
Conv0_Msgs(cid(FK Conversation), uid(FK User), msg, m_at, c_at)
for james, create tables
for jon and kai, investigate tornado db access
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.