Empathy Chat mit Google Translate/Listen Anbindung

Google hat für seinen Translate Dienst die Möglichkeit eingebaut das Übersetzte als Audiostream zu laden. Ein Beispiel hierfür sieht man hier: Hello World! .

Nun kann man sich überlegen diesen netten RESTful Service für diverse Zwecke auszunutzen. In unserem Fall für einen automatisierten Audiochat in Empathy, d.h. wenn einer unserer Empathy Chat Kontakte mit uns kommuniziert, dann hört man seine getippte Nachricht gleichzeitig.

Diese Umsetzung hat gewisse Vorteile. So braucht man nicht immer unbedingt vor dem Bildschirm zu hocken, um mitzubekommen was ein Chat-Buddy gerade von einem will.

Die Nutzung dieses Skripts beschränkt sich leider noch auf Linux Nutzer, die den Empathy Chat einsetzen (wobei die Anpassung an andere IM Klienten nicht besonders schwer ist). Eine Umsetzung der Idee mit einem kleinen C Programm könnte die Barriere für Windows Nutzer aufheben!

Zuerst wird mittels eines Java Programms, eine gegebene XML Empathy-Chat-Log Datei (.log), mit Hilfe von JDOM geparsed und der jeweils letzte Beitrag des befreundeten Kontakts ausgebeben.

import java.util.*;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class MainClass {
public static void main(String[] args) throws Exception {
String id;
Document doc = new SAXBuilder().build(args[0]);
Element books = doc.getRootElement();
List children = books.getChildren();
Element lastElement = (Element)children.get(children.size() - 1);
System.out.println(lastElement.getText());
}
}

Das kompilierte Programm, zusammen mit der jdom.jar wird dann in ein Bash-Skript eingebunden, das Änderungen der Chat-Logs überwacht und diese dann mit dem Google Dienst ausgibt!

#! /bin/bash

	inotifywait -mrq -e modify -e create --format %w%f $HOME"/.local/share/Empathy/logs/" | while read FILE
	do

		KON=$(java -classpath .:jdom.jar LogParser $FILE)
		KON=$(echo $KON | sed "s/ /+/g")
		mplayer "http://translate.google.com/translate_tts?tl=de&q="$KON

	done

Ein großer Nachteil des Konzepts sind undeutlich geschriebene Sätze / Anwendung von Slang, weil diese nicht vom Translate Service erkannt werden!

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s