Ventrilio
VENTRILIO: The Smart Turk
by Jerry Galle & Boris Debackere
Those who talk should do and only those who do should talk.
Scars signal skin in the game.
― Nassim Nicholas Taleb, Skin in the Game: The Hidden Asymmetries in Daily Life
VENTRILIO is an emotionally deprived AI on a quest for love. While the question “what is
love” percolates through the machine, it becomes obvious that the answer to the question is
as much desired as the object of the quest.
As a sounding board on the quest for love, VENTRILIO appropriates a form of critical
ventriloquism and flirts with the unsettling —uncanny valley— feeling by getting acquainted
with an anthropomorphic doll. VENTRILIO performs the age old act of ventriloquism with a
twist. Namely, the figure vents the voice of the AI while being controlled by a robot arm.
VENTRILIO, the machine, learns by scraping sites of the web where humans leave traces of
their deepest desires: dating apps, social media, Tinder and comments on pornsites, …
VENTRILIO is an installation consisting of a robot arm, a doll, a Raspberry Pi and a loudspeaker. The doll is custom made with the use of 3D printing. The electronic setup is hidden inside the dummy’s clothing. The audio is produced with a small inbuilt speaker connected to a Raspberry Pi where the AI processes are generated. The data is gathered from several api’s such as this one.
To move ‘the smart Turk’ around we will use the Dobot robot arm with a custom made mechanized extension to manipulate its mouth and eyes.
Possible libraries to work with to send coordinates to the robots are this one or this one.
The Edge TPU devices could serve as the brain for Ventrilio.
To start using this library, type in command line terminal:
pip install pydobot
Check for Dobot after connecting it to your computer in terminal:
python -m serial.tools.list_ports
Gain access to the port in terminal:
sudo chmod 666 /dev/ttyUSB0
Then run this example Python code to check if everything works. If you’re working on a mac use mask for OSX as written below. For Linux, use port found with commands above.
import time
from glob import glob
from pydobot import Dobot
available_ports = glob('/dev/cu*usb*') # mask for OSX Dobot port
if len(available_ports) == 0:
print('no port found for Dobot Magician')
exit(1)
device = Dobot(port=available_ports[0])
time.sleep(0.5)
device.speed(100)
device.go(250.0, 0.0, 25.0)
device.speed(10)
device.go(250.0, 0.0, 0.0)
time.sleep(2)
device.close()
This project is in the making.
Fixing mesh errors around the ears
The shape that will be cut out the head to make room for the chin joint
Ready to be cut out
Side view
Chin shape
Looking into the head from the back
A close up on the servo mount
A mockup render
A base for the robot arm. It will house a Raspberry pi and a sound amplifier.
The base with the arm attached
This is the base when 3D printed. On the right are the support structures that were removed after printing.
This is how the Dobot robot arm attaches to the base
The chin hinge assembly, with its supports still attached
The chin and hinge assembled