Tag Archives: Tropo

Schnelleinstieg Sprachdialogsystem Telekom Tropo, Teil 1

Ein Interactive Voice Response System (IVR) oder umgangssprachlich Sprachdialogsystem erlaubt es Menschen und Maschinen durch Sprache oder Tastentöne (DTMF, Dual-tone multi-frequency signaling) miteinander zu interagieren. Im Falle von Tropo sind außerdem noch Textnachrichten als Short Message Service (SMS) für die Kommunikation verfügbar.

channel

Sprache, DTMF und SMS als weitere Kanäle zwischen Mensch und Maschine.

Damit bietet letztendlich ein Sprachdialogsystem nur weitere Kanäle zwischen Mensch und Maschine. Auch wenn das auf den einen oder anderen altbacken wirkt, haben Sprachanrufe und Textnachrichten abhängig vom Szenario durchaus Vorteile – hinsichtlich der Ergonomie und Gebrauchstauglichkeit (Stichwort Handsfree) genauso wie hinsichtlich der Reichweite: Über ein Mobilfunktelefon erreicht man weltweit 5,2 der zurzeit rund 7 Milliarden Menschen, mit SMS sind es immerhin noch rund 4,2 Milliarden und damit laut Tomi T. Ahonen mehr, als mit einem FM Radio.

Schritt 1: Registrieren

Update: Der Registrierungsprozess wurde Vereinfacht. Eine kurze Beschreibung des neuen Registrierungsprozesses findet sich auf Englisch hier im Blog.

Der Einstieg in diese Welt gestaltet sich mit Telekom Tropo denkbar einfach, sobald man einmal die vermeintlich größte Hürde der Registrierung genommen hat. Da diese Registrierung eh in Zukunft vereinfacht wird, gehe ich hier nicht weiter darauf ein außer, dass der direkte Weg dahin zurzeit über den Telekom Developer Center führt. Dort kann man sich kostenlos registrieren und dann anschließend Telekom Tropo aktivieren und Anwendungen einrichten: Hier erfolgt auch die Zuordnung von Telefonnummern zu Anwendungen.

Schritt 2: Programmieren

Eine Anwendung ist aus Sicht von Tropo nichts anderes als eine URL, die JSON zurückliefert und so einen Anruf steuert.

1
2
3
4
5
6
7
8
9
10
// Telekom Tropo API (JSON)
{
"tropo":[
   {
   "say":[
      {
         "value":"Hello World!"
      }]
   }]
}

Um diesen Dialog zwischen Tropo und der eigentlichen Anwendung zu vereinfachen, habe ich für PHP entsprechende Basisklassen angehängt (anders als bei den ursprünglichen Klassen ist hier auch ein kleiner Patch für Umlaute drin) – für andere Sprache gibt es vergleichbare vorgefertigte Pakete.

Für ein „Hallo Welt“ PHP Skript wird nun nur ein Tropo-Objekt benötigt und durch die Methode say eine Sprachausgabe vorbereitet. Die Methode renderJson erledigt die Aufbereitung des für Tropo erforderlichen JSON.

1
2
3
4
5
6
7
8
9
10
11
<?php
// Include Tropo classes. 
require('tropo.class.php'); 
$tropo = new Tropo(); 
$tropo->say("Hello World!");
$tropo->renderJson();
 
// Configure/Log at 
// http://www.developercenter.telekom.com
// for e.g. +49 211 2409089
?>

Schritt 3: Nutzen

Sobald also nun jemand die im Developer Center mit der Anwendung verknüpfte Telefonnummer anruft, wird dies zu Tropo weitergeleitet. Tropo wiederum ruft die Anwendung auf, nimmt das zurückgegebene JSON-Objekt und arbeitet die darin enthaltenen Befehle Schritt-für-Schritt ab – in diesem Fall wird dem Anrufer einfach „Hello World!“ vorgelesen (oder optional als SMS gesandt).

Natürlich gibt es zahlreiche weitere Befehle. Darunter solche, um einen Anruf zu starten (call), weiterzuleiten (transfer) und aufzuzeichnen (record) – Konferenzen sind ebenfalls möglich (conference). Außerdem kann der Anrufer eingaben per Sprache und DTMF tätigen (ask) und so den Dialog steuern. Mehr Infos zu den Befehlen und Tropo gibt es im Developer Garden…

The voice controlled coffee machine

I recently had a DiY workshop together with my Developer Garden colleague and firefighter Frank Zimmer and the great guys from Oracle. Oracle is working on M2M devices – obviously based on Java. After some Java experiments with a Cinterion driven embedded device this was my first time playing with the famous Raspberry PI and Java. Raspberry PI is a very small Linux PC similar in size to embedded boards like Arduino or .Net Gadgeteer. Our approach was controlling a coffee machine with a phone to serve George Clooney a coffee (sorry, in this case I was George Clooney´s lame replacement, but the Nespresso is real).


We hacked a Nespresso coffee machine, connected it to a Raspberry Pi and controlled it via phone. Please note, the video is just a rough cut to illustrate our proof of concept.

First of all we start the machine and need to wait until the machine is ready. But you can spend your time for so many things better than waiting: say writing Java. So we hacked the machine and connected it to the Raspberry PI running a small Java program. This program initiates a phone call via the Telekom Tropo API once the coffee machine is heated up. Now we need the way back from the phone to the Raspberry PI to finally start the coffee making. This is handled by Telekom Tropo which translates a phone call into a parameterized request which than writes a token. This token is handled by the Raspberry PI to start or stop the coffee making process.

I hope I can convince my friends from Oracle to publish the hardware specs and the Java code. And if you want to learn more about M2M and IVR-Systems (interactive voice response), feel free to come to our TechTalk at the 13th of December in Berlin.

Update: Some people asked how we did connect the Raspberry Pi and the coffee machine: Therefore we use the GPIOs and the Java library Pi4J.