20.11.2012 15:59:00

Sprachausgabe mit Ubuntu

Will man deutsche Texte unter Ubuntu in Sprache umwandeln, trifft man gleich auf zwei Probleme. Das eine ist die unübersichtliche Situation der Sprachausgabe unter Linux, das andere die deutsche Sprache.

Beides läßt sich aber einigermaßen lösen, so daß am Ende ein akzeptables Ergebnis steht.

Verwendete Software

Für die Sprachausgabe braucht es grundsätzlich diverse Werkzeuge, die die einzelnen Schritte ausführen:

  1. Umwandlung des Textes in Phoneme, also Laute
  2. Erzeugung des gesprochenen Textes mit einer Stimme
  3. Ausgabe des Ergebnisses

Für den ersten Schritt kommt espeak zum Einsatz, für den zweiten mbrola. Den dritten Schritt erledigt aplay für den Fall des Vorlesens. Will man z.B. ein mp3 speichern, muß man es entsprechend erzeugen.

Installation

  • aptitude install espeak, wird nur als Vorstufe für mbrola verwendet
  • http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip herunterladen und z.B. nach /usr/share/mbrola entpacken
  • Binary z.B. nach /usr/bin verlinken
  • Stimmen dazukopieren (ich verwende de2 für männlich, de5 für weiblich)
  • aplay ist im Paket alsa-utils

Anwendung

Ich habe mir drei Skripte geschrieben, die mir jeweils eine Datei vorlesen. Unterschied ist die verwendete Sprache und Stimme; sprechem und sprechew lesen mit männlicher bzw. weiblicher Stimme auf deutsch vor. Entsprechend liest speak auf englisch vor (mit männlicher Stimme).

Eine leichte Verbesserung der Qualität erreicht man durch Herabsetzen der Geschwindigkeit (Option -s 140 für espeak).

speak:

espeak -vmb-us2 -f $1 |mbrola -e /usr/share/mbrola/us2/us2 - - |aplay -r16000 -f S16_LE

sprechem:

espeak -vmb-de2 -f $1 |mbrola -e /usr/share/mbrola/de2/de2 - - |aplay -r16000 -f S16_LE

sprechew:

espeak -vmb-de5 -f $1 |mbrola -e /usr/share/mbrola/de5/de5 - - |aplay -r22050 -fS 16_LE


Posted by ingo | Permanent link

03.08.2012 00:01:55

R.I.P., Wordpress

Irgendwie muß alles dynamisch sein im Web 2.0. Also für einen Blog Wordpress mit PHP, MySQL und einem Haufen Javascript. Auch wenn man (wie ich) alle Schaltjahre mal was veröffentlicht.

Das Problem mit diesen dynamischen Anwendungen ist ihre Komplexität und damit sicherheitstechnische Anfälligkeit. In meinen Server ist zwar noch keiner durch die Wordpress-Tür eingestiegen, aber wohl war mir nicht dabei. Man bringt letztlich mehr Zeit damit zu, den Update-Verlauf im Auge zu behalten, als Inhalte zu erzeugen.

Und das Fazit: Statische HTML-Dateien. Ja, so war das früher - langweilig aber bombensicher. Mir kommt es einzig darauf an, Inhalte zu kommunizieren, also brauche ich das ganze Drumherum nicht. Die HTML-Seiten kann man natürlich hardcore-mäßig per Hand erzeugen. Dann noch CSS drumrum usw., und man ist genauso schlau wie vorher. Zum Glück bin ich auf Nanoblogger gestoßen.

Nanoblogger ist einfach eine Sammlung von gewieften Skripts, mit denen man seinen Blog komfortabel an der Konsole schreiben kann. Einfach im guten alten vi den Text eingegeben, und Nanoblogger kümmert sich um den Rest. Wie ich in meine Installation Versionierung mit Subversion und automatisches Hochladen auf den Webserver umgesetzt habe, kommt später.

Jetzt erstmal ESC-wq, dann noch taggen und fertig :-)


Posted by ingo | Permanent link | File under: web2_0, tooltips, linux

12.12.2011 14:49:00

Ubuntu auf dem Medion Akoya P4010 All-in-one-PC

Nach der Installation von Ubuntu 11.10 (amd64) von der Live-CD lief auf den ersten Blick alles bestens. Zwei kleine Probleme stellten sich dann aber doch heraus:

  1. Videos liefen mit einem Blaustich (zumindest in Totem)
  2. Ton kam nur aus der Kopfhörerbuchse an der Rückseite

Das erste Problem konnte ich recht schnell beheben, indem ich über das Hilfswerkzeug den “eingeschränkten Treiber” für die NVIDIA-Grafikkarte installierte.

Etwas länger dauerte es, den eingebauten Lautsprechern Ton zu entlocken… Das Problem liegt in der Vielfalt der onboard-Soundlösungen mit “Intel-HDA” Chip. Der ALSA-Treiber snd-hda-intel will nämlich sehr genau konfiguriert werden. Letztlich funktionierte die Option model=targa-2ch-dig, die in /etc/modprobe.d/alsa-base.conf einzutragen ist:

options snd-hda-intel model=targa-2ch-dig

Posted by ingo | Permanent link | File under: all-in-one-pc, linux, medion, ubuntu

22.07.2011 12:21:00

Den Attentäter zähmen

Zur Bekämpfung von Spam gibt es mehrere Methoden und viele Meinungen, welches die beste ist. Ich habe sehr gut Erfahrungen mit Spamassassin gesammelt, der allerdings auch Nachteile mit sich bringt.

Problem

Spamassassin ist sehr ressourcenhungrig und hat schon mehrfach meinen etwas schwachbrüstigen vServer in die Knie gezwungen. Ein Hauptprozess startet eine konfigurierte Anzahl von Kindprozessen, die dann die Arbeit verrichten. Das Hauptproblem ist dabei der Speicherbedarf, der kontinuierlich ansteigt. Vermutlich stimmt auch in der Implementierung etwas nicht…

Lösung

Zunächst habe ich die Kindprozesse auf zwei reduziert, dies hat aber dem Speicherproblem nicht abgeholfen. Auch ein regelmäßiger täglicher Neustart des Hauptprozesses half nicht weiter. Also habe ich mit monit einen “Aufseher” installiert, der den Speicherverbrauch beobachtet und bei Überschreiten einer Grenze den Prozeß neustartet.

Dabei habe ich allerdings anfangs den Fehler begangen, die Meßgröße mem zu verwenden, die aber nur den Verbrauch des Hauptprozesses mißt. Diese aber ist immer konstant und somit war auch dieser Ansatz wirkungslos. Erst der Umstieg auf die Meßgröße total brachte den gewünschten Erfolg; er mißt den Gesamtverbrauch aller Prozesse inklusive der Kindprozesse.


Posted by ingo | Permanent link | File under: linux, admin, mail, spamassassin

05.08.2010 11:38:00

WLAN-Sicherheit in der Wissenschaft

Gerade bin ich dabei, meine über die (letzten sieben) Jahre gesammelte Literatur zu sichten. Unter anderem habe ich zum Thema Einsatz von Handheld-Geräten (v.a. PDAs) in der Klinik gesammelt.

In der Hand habe ich den Artikel
Tassani S, Baruffaldi F, Testi D, et al. Personal Digital Assistant in an orthopaedic wireless ward: the HandHealth project. Comput Methods Programs Biomed. 2007;86(1):21-29. Available at: http://dx.doi.org/10.1016/j.cmpb.2006.12.009.
Die Autoren schreiben im Abschnitt 3.6. Network:

Wired Equivalent Privacy (WEP) combined to Lightweight Extensible Authentication Protocol (LEAP) was used to guarantee a secure data access.

Gnadenlos, mir fehlen die Worte. Wurde doch WEP bereits im Jahr 2005 (siehe z.B. Episode 11 vom Oktober 2005 von http://www.grc.com/securitynow.htm) als unsicher angesehen.


Posted by ingo | Permanent link | File under: wlan, forschung, wep

29.07.2010 17:25:00

Was ist OpenSocial?

Gleich zwei Artikel im aktuellen Computer-Magazin erwähnen den Begriff OpenSocial. Neugierig geworden habe ich die Referenzen verfolgt:

  • Alfred C. Weaver, Benjamin B. Morrison, “Social Networking,” Computer, pp. 97-100, February, 2008
  • T. Claburn, “Google’s iGoogle Goes from Protal to Platform,” Information Week, 16 Oct. 2008: http://www.informationweek.com/news/internet/google/showArticle.jhtml?articleID=211200991

Schnittstelle

Bei OpenSocial handelt es sich in der Tat um eine offene Schnittstellendefinition. Diese wird von Google in Form von orkut beta und iGoogle implementiert.

Wie für ein Baukastensystem üblich, werden Anwendungen immer nach dem gleichen Schema erstellt. Die Kommunikationsmöglichkeiten sowie die eingesetzten Präsentationstechniken (z.B. AJAX, Flash) erscheinen dabei sehr vielfältig.


Posted by ingo | Permanent link | File under: google, web2_0

18.07.2010 12:30:00

E-Mail-Verschlüsselung

Jeder Mensch benutzt heutzutage E-Mail, zumindest wenn man einen gewissen Altersbereich betrachtet. Die E-Mail ersetzt in weiten Teilen die Briefpost.

Allerdings sollte man die E-Mail nicht mit einem Brief vergleichen, sondern eher mit einer Postkarte. Würden Sie persönliche Informationen (wie z.B. die Bankverbindung) auf einer Postkarte verschicken? Ich nicht.

Die Informationen in einem verschlossenen Briefumschlag schützt das Briefgeheimnis; was aber schützt die E-Mail? Die Antwort lautet: E-Mail-Verschlüsselung.

Verschlüsselung wird landläufig so verstanden, daß niemand den übertragenen Inhalt mitlesen kann. E-Mail-Verschlüsselung beinhaltet aber noch einen zweiten Aspekt, nämlich die Absenderidentifikation. Damit kann man sicher gehen, daß die E-Mail auch wirklich von einem Absender stammt.

Um E-Mail-Verschlüsselung zu nutzen, ist spezielle Software nötig, die frei verfügbar ist. Man kann nach einer der vielen Anleitungen im Internet vorgehen, für die Einrichtung sollte circa eine Stunde veranschlagt werden.

Das Problem ist allerdings, daß beide Kommunikationspartner die Verschlüsselung unterstützen müssen, damit das System funktioniert. Nach meiner Meinung sollte E-Mail-Verschlüsselung genauso selbstverständlich werden wie die E-Mail selbst. Wenn wir alle jetzt damit anfangen, wird sich die Verschlüsselung auch verbreiten.

Beginnen wir also damit, die Welt ein klein wenig sicherer zu machen!

Dies ist ein Transkript einer Kurzrede, die ich im Rahmen eines Workshops gebaut habe.


Posted by ingo | Permanent link | File under: e-mail, persönliche-sicherheit

09.07.2010 14:21:00

Einfache und schnelle Versionierung mit Git

Mittels Git kann man “mal eben” ein Verzeichnis unter Versionskontrolle stellen. Dies ist allerdings eher als VC light zu verstehen, da das ganze offline arbeitet.

Vorgehen:

git init

git add . (oder Dateiliste...)

git commit

Fertig :-)


Posted by ingo | Permanent link | File under: tooltips, softwareentwicklung

09.07.2010 14:18:00

WLAN-Karte rtl8185 unter 64-bit Linux

Wer den proprietären Linux-Treiber von Realtek (die guten Gründe spare ich mir hier) für seine Karte mit 8185-Chip verwenden will, hat in einer 64-bit Umgebung ein Problem.

Durch einen Fehler im Quellcode schlägt die Installation (z.B. unter einem tagesaktuellen Ubuntu 10.04) mit folgendem Fehler fehl:

rtl8185_linux_26.1031.1207.2009.release/rtl8185/r8180_core.c:2065:

 error: implicit declaration of function ‘rdtsc_rtl’

Dies behebt eine Korrektur in der besagten Datei; die Zeile 2065 wird einfach auskommentiert:

prism_hdr[3]=htonl(stats.mac_time[0]);

// rdtsc_rtl(prism_hdr[5], prism_hdr[4]);

prism_hdr[4]=htonl(prism_hdr[4]);

Anschließend steht einem sudo make install nichts mehr im Wege…


Posted by ingo | Permanent link | File under: 64bit, realtek, treiber, wlan, linux

09.07.2010 14:05:00

Binary Diffs mit rdiff

Das Problem

Nimmt man an einer Datei kleine Änderungen vor und möchte diese verbreiten, so reicht es normalerweise (im Fall von Textdateien), nur die Änderungen (diff) zu verteilen. Diese werden dann auf die Originaldateien angewendet (patch). Klassisch läuft das mit den gleichnamigen Unix-Werkzeugen diff und patch.

Handelt es sich um Binärdateien (im Beispiel die ausführbare Datei eines Computerspiels), versagen die beiden jedoch leider Ihren Dienst. Gesucht ist also ein Werkzeug, das

  1. binäre diffs erzeugen kann,
  2. binärdateien mittels der diff-Datei patchen kann und
  3. unter Windows läuft.

Die Lösung

Das Paket rdiff gibt es sowohl für Linux als auch für Windows (mittels cygwin, genaueres siehe unten). Es ist in der Lage, Unterschiede von zwei binären Dateien platzsparend zu speichern.

Bedienung von rdiff

Zunächst wird von der Ursprungsdatei eine sogenannte Signatur gebildet:

rdiff signature original original.sig

Dann wird die Differenz zwischen der neuen Datei und der Signatur ermittelt:

rdiff delta neu original.sig original_neu.rdiff

Um schließlich das Patch auf die Originaldatei anzuwenden, lautet der Aufruf:

rdiff patch original original_neu.rdiff

Somit benötigt man zum Patchen nur die Delta-Datei, was die Anforderung erfüllt.

rdiff unter Windows

Damit nicht gleich cygwin komplett installiert werden muß, kann man einzelne Komponenten nutzbar machen, indem man die benötigten exe- und dll-Dateien extrahiert. Für rdiff werden folgende Dateien benötigt:

  • rdiff.exe
  • cygrsync-1.dll
  • cygwin1.dll
  • cygpopt-0.dll

Posted by ingo | Permanent link | File under: tooltips, windows, fifa98, diff, cygwin