First of all, I am sorry for posting this late.
I’ve been working on thesis using tracery. It’s not the right answer for what I am going to do but I will tell you why in this post.
TiriBots are: Ongoing project for my thesis performance DeepTiri
My thesis started with this question:
Can technology be trained to deliberately commit mistakes (e.g. text, speech)
to help spark creative improvisation in performers and artists
We try to build machines to look like a human as possible, ones that can learn and be trained just like humans. What is a human? What determines if a being is human? Humans make mistakes, this translates to machines as well. As a user of technology, I have found that machines can glitch and run into errors often. Can these errors be a sign of humanity within machines?
I am a broken English speaker, I found that the way I speak makes everyone (human or/and machine) misunderstand my mind and create other meanings of the conversation. Those things for me are fascinating and can create an art piece.
As a performer, things have gone wrong almost every time I have performed. Does this mean its a “live performance”? Things that you can not feel in the pre-recording process. To solve a problem on stage is a good exercise for performers and artists to practice improvisation
During my performances, my collaborators, my machines, and I often commit mistakes live. This forces a creative impulse that creates unexpected and unique experiences.
This is the reason why I look to create a program that encourages improvisation within performances. My approach is to create a way to misinform and mistrain a program to act in an unpredictable way.
TiriBots,
To created voice interface to talk is a different from typing. Here is some good article talking about voice interface design from Nicole He
“Speaking out loud is an intuitive and expressive way for people to communicate. It’s also more natural and human. When you’re doing a Google search, you’re likely to type something terse and efficient like “best tacos nyc.” But if you were asking a friend, you might say something like “Where do you wanna go for Mexican food tonight?”
Designing a creative interaction based on the way people normally speak out loud is an opportunity to engage with them on a more natural, expressive level. You also don’t have to teach people who aren’t familiar with gadgets and new technology how to use it—they can just talk.”
But Tiri(me) Who speaks the same level of bot or even worst. How can I put my character into the bot and create something weird and fun from it? How can I create a speaking machine to generate mistake as I wanted?
I have been tried a lot of speech to text technologies. The most interesting result is the web speech api because this is the basic speech interface that had been installed in every tools for disability people. I explore more in P5speech because they use the same api but wrap up to make it more easy to use. My most interesting test is playing with the speed rate
From the research, most of the companies have a problem if they don’t know how long people will speak and when they start. So this problem is easy to create an error of voice interface. Mostly they set a programme to reply
“- I’m not sure how to reply to that.
– Try asking your question a different way.
– Let’s talk about something else.”
How about if I replace those sentence to something else!
👉 This part, I tried using tracery for making the conversation. It works but not the right answer for my piece. I found another library for making a chatbot. I used
Rivescript to generated a chat bot.
Instead of reply an error, I used this opportunity to use them as a hotword to make another bot to say something else.
Random Replies:
Making bot always respond exactly the same way to something the user says will get boring really quickly. For this reason, RiveScript makes it easy to add random responses to a trigger!
Let’s Talk About Weight:
While random responses are certainly useful, there will be times when you would prefer that some replies would be chosen more frequently than others.
You can use the {weight} tag in a reply to override how frequently that reply will be chosen compared to the others. For Tiribots, I wrote a reply like this:
The effect that this has is that “lalalalalalaaalalalalala” will be picked 20 times out of 46, “oh oh oh oh oh oh oh no no no” will be picked 25 times out of 46
Weight values can’t be zero and they can’t be negative.
You can not use weights inside a {random} tag.
Making Bots talk at a different speed:
P5speech has a built-in function that you can set a random rate. So now, I can’t predict how long the bot will respond.
😈 The error has begun 😈
From this starting point, I created the conversation between bots by using the error of speech recognition. Instead of saying
– I’m not sure how to reply to that.
– Try asking your question a different way.
– Let’s talk about something else.
I created different characters each one. Here are what I got so far,
She will always reply whatever you say the same word.
She won’t speak in actual words. She is a superstar. She only says a thing in melody. She keeps saying either her famous songs or humming. ‘Cause she is beyond – ce
Hip hop Tiri:
Tiri wanna be hip-hop But she is still in grad school.. how to make hip hop Tiri become more academic and polite and pg rate
I used python poetry generator to replace my name instead of Cardi. Tiri and Cardi have the same sound name that’s why I choose her song. I replace all the curse words with super polite words. The result was pretty weird but that’s all I wanted!!
link to my github poetry generator
Testing TiriBots
Next steps:
– I am going to add more tracery (link)
for generating gramma structure for my bots to make it more natural, expressive level.
– Word 2 vec – machine learning for word
Summary
I got an inspiration from Allison reading assignment some-strategies-of-bot-poetics this part answer my work why I decided to go on this Direction.
“Part of its pleasure comes from the imperfection of their imitation. TiriBots dwell happily in the uncanny valley, where I can tell she is a bot, even though she is sometimes indistinguishable from a human, and I enjoy the fact that she is a bot along with the broken virtuosity of her impersonation.”
I am looking for exploring and develop my bots. My final goal is I am going to perform with them by saying all the command I created and the command that I don’t know. My plan is to use API data to generate the more abstract level of conversation. From that, I can create the new narrative of the way to perform by improvising on top of an unpredictable program.
Last but not least…
I have 2 small tracery homeworks for Allison. These are something else but these made me learn so much more about python tracery
link to jupyter notebook