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

Written on March 14, 2019