Sounds of PTT is a web application that can turn an article on PTT into audible frequencies. This is the backend part of the project. For the frontend, please refer https://github.com/TimJJTing/ptt-sounds.
PTT is the most popular BBS in Taiwan, where one can find the public’s opinion for almost any given topic. With public’s opinion structuralized in a series of short comments and “push/boo” tags, one can read through the discussion thread to catch the public’s sentiment orientations of a topic.
However, reading is not the only way we sense this universe. Just like the inspiring project by NASA, what if we could actually “hear” public's sentiment orientations? Does it feel different from reading? Can we compose meaningful sounds from public's opinions? Will a positive rated article sounds better than a negative rated article? If the author and commenters of an article start a band, how will their music sound like? This web application is designed to answer these questions.
A User first enters a PTT article URL in the [Frontend]. When the [Backend API] receives a valid PTT article URL, it dispatches a [Crawler], which crawls and re-structuralizes article contents for the [Sound Maker]. The [Sound Maker] then can process structuralized data with 3 steps, tokenization, quantization (based on sentiment polarity of words), and finally sonification. After the procedure is done, a media file will be generated and therefore can be referenced via the [Frontend].
- Vue.js
- Vue router
- Bootstrap
- Google Cloud Compute Engine
- Docker-Compose
- Nginx
- Django
- Django rest framework
- Celery
- Scrapy/Scrapinghub
- pandas
- jseg/jieba
- numpy
- ANTUSD
- thinkdsp (with some customized code)
- Postgresql
- Redis
- [General] Finish the README.md
- [Frontend] Redesign component hierarchy
- [Backend-API] Reduce restart loading time
- [Backend-API] Deal with warning messages
- [Backend-DB] Migrate from container to Cloud SQL instance
- [Backend-API] Serve backend static and media files with Cloud Storage buckets
- [Backend-Hosting] Migrate from Nginx to Google's load balancer service
- [Frontend] An interface that controls ADSR via the ADSR API to change the timbre of sounds
- [Frontend] Timbre customization interfaces
- [Frontend] Real-time Audio-visual feature with p5.js or d3.js
- Allen B. Downey: The author of Think DSP, an awesome book for learning digital signal processing.
- NLPSA: Where I acquire ANTUSD for this project.
- Jseg: A better choice for Chinese tokenization in this project.