Capstone 2: Entry 1

Progress Report

The 50% marker for my Capstone project is fast approaching. Looking back it is important to take note on what has been accomplished thus far. Additionally, pains should be taken to document where challenges arose and where corners were cut in order to create a more feasible project.

Interaction

But what is intended for this project? How will people interact with the final installation piece?

Looking back, my initial idea was for the project to be presented as part of an art gallery whereby people’s discussions of the art would be recorded, parsed, and reorganized into a poem. This poem would ideally serve as a memento of the art gallery. However, in order to be part of the art gallery, it would necessitate that the project itself was art. As modern art is defined less by what it is and more by what represents, the “why” of the project still needed to be fleshed out.

The artist’s statement of the project would read something akin to:

What are poems and why do poems make us feel things? Why are poems’ value derived so much from the author? Can poems exist in a vacuum? Without an author, this poems attempt to encapsulate the zeitgeist of the temporial moment.

Code

Continuing from this artist’s statement the code would have to create poems that were able to capture the essence of one’s speech without understanding the meaning of the speech itself.

Most of my code progress is documented on my Github. As such, I have mostly been refining my code and making sure that it works as intended. A large part of the issues with the coding was related to the lack of structure in poems and poems being perceived as poems solely because someone says it is a poem.

The code works as follows. Speech is heard by the system’s microphone, using a wrapper for pyaudio called speech_recognition. The audio is then sent to either Sphinx, Google Speech-to-Text, Houndify, or IBM using the same library. However, there is currently an issue with IBM’s service and the library. The returned audio is then parsed into a PoemGenerator class, which uses two variables for the corpus with stop words and a stop word free corpus. A random word is chosen to end the first line. The rest of the line is chosen via Markov Chains until the line is at its syllabic length. The next lines created in a similar manner with their last words rhyming with a previous line. Rhyming is done using nltk.

Technical

On a more functional level, I have completed an Eagle file for connecting an Arduino to the typewriter. I have also looked at tables hoping to find one that is about the right size to sit the typewriter on and have the computer and microphone under.