Fün Fin Fir

Text to speech mit espeak und mbrola

Text to speech mit freier oder kostenloser Software ist anscheinend immer noch ein etwas düsteres Thema. Vor kurzem habe ich mich damit ein wenig beschäftigt und bin zu einigen Ergebnissen gekommen. Meine Anforderungen waren dabei, dass die Software komplett über Konsole bedienbar sein, aber mir nicht Bildschirminhalte vorlesen können muss.

1. espeak

Grundsätzlich benötigt man nur das Programm »espeak« (aufzufinden im community-Repository) um Text in Sprache umzuwandeln. Die Syntax ist dabei relativ einfach.

espeak -v [Sprache] “Auszugebender Text”

Die zur Verfügung stehenden Sprachen kann man unter /usr/share/espeak-data/voices finden, mit dem Parameter -f kann man espeak auch direkt mit einer Datei füttern. Weitere Parameter lassen sich der Hilfeseite entnehmen.

Das Problem bei espeak ist, dass die zur Verfügung stehenden Sprachen von nicht allzu guter Qualität sind. An dieser Stelle kommt mbrola ins Spiel.

2. mbrola

Mbrola ist ein Programm, welches phonetische Anweisungen in Sprache übersetzen kann. Dies geschieht mit einigen Stimmen relativ gut. Leider kann mbrola nicht direkt mit Text umgehen, dafür kann espeak Text in phonetische Anweisungen übersetzen. Es liegt nahe die beiden Programme aneinander zu binden.

Das Programm liegt unter dem Namen »mbrola« im AUR vor. Dieses, sowie die benötigten Stimmen wie »mbrola-voices-de2« müssen zur Benutzung installiert werden. Achtung 64bit-Nutzer! Im packagebuild muss manuell die Prozessorarchitektur eingetragen werden, was vom Maintainer noch nicht getan wurde. Die Pakete funktionieren dennoch einwandfrei. Leider ist mbrola auch nicht Open-Source, sondern nur Freeware.

Jetzt können wir mbrola mit espeak verbinden, das Ganze wird als *.wav gespeichert, oder wie hier im Beispiel direkt mit aplay abgespielt und wieder gelöscht:

espeak  -v mb-de5 “Auszugebender Satz” | mbrola -e /usr/share/mbrola/de5/de5  – /tmp/mbrola.wav; aplay -q /tmp/mbrola.wav; rm /tmp/mbrola.wav

Espeak verwendet hierfür besondere »Stimmen«, welche man im Ordner /usr/share/espeak-data/voices/mb finden kann. Leider gibt es nicht für jede mbrola-Stimme auch eine Datei, ebenso wie es nicht für jede espeak-Stimme im AUR eine eine mbrola-Stimme gibt. Die beste Erfahrung habe ich mit »de5« gemacht. Insgesamt klingt es etwas holprig, aber im Ganzen nicht mal schlecht.

Die Qualität kann zusätzlich noch verbessert werden, indem man in espeak die Abspielgeschwindigkeit etwas runterdreht (»-s 140«).

Warum nicht »festival« oder »txt2pho«?

Weil es für die reine Ausgabe zu kompliziert ist. Soweit ich es verstanden habe, muss festival für die deutsche Sprachausgabe speziell gepatcht werden und ist etwas kompliziert zu behandeln.

txt2pho liegt nur im AUR vor und hat sich von mir nicht ohne weiteres auf 64bit kompilieren lassen. Wie gesagt, espeak ist für meine Anforderungen zunächst ausreichend.

Und wie geht es weiter?

Im nächsten Schritt versuche ich, dem Computer durch Spracheingabe rudimentär bedienbar zu machen (»Voice Recognition«). Das soll wieder über die Konsole ablaufen und möglichst unkompliziert sein. Mein Ziel ist es lediglich, dass der Computer vordefinierte Befehle aufnehmen und umsetzen kann. Wenn mehr möglich ist, ist das natürlich auch sehr schön. Dazu habe ich bereits die Software »julius« gefunden, was auch über das AUR bezogen werden kann. Die Bedienung scheint jedoch nicht sonderlich trivial zu sein. Hat sich damit vielleicht schon mal jemand auseinandergesetzt?

Des weiteren existiert auch das viel versprechende Projekt »Simon«, was aber mit qt4-Oberfläche und einer nicht unerheblichen Komplexität nichts für meinen Anwendungsfall ist.

Ich würde mich sehr über Anregungen und Meinungen von euch freuen, vielleicht können wir ja mit gemeinsamen Wissen sogar das in dieser Beziehung etwas traurig aussehende Wiki etwas aufpolieren… (more…)

Tolle Internetseiten, Teil 1: nachosandwine.de

Und wiedereinmal erblickt eine neue Internetseite das Licht der Welt:

http://nachosandwine.de/

Dort gibt es äußerst subjektive Besprechungen zu alten, älteren und neuen Filmen, was jede Menge Spaß verspricht. Reinschauen sollte sich also auf jeden Fall mal lohnen!

(Davon mal abgesehen bin ich für die technische Umsetzung verantwortlich, mal so ganze ohne Eigenwerbung ;))

(more…)

Redesign: Die Browser und das neue CSS

Nach einem Facelift vor einiger Zeit habe ich dieser Seite nun endlich, nach fast einem Jahr, mal ein (zumindest meiner Meinung nach ;) ) vernünftiges, wenn auch konservativeres Design verpasst. Dabei kamen auch einige neue Eigenschaften von CSS3 zum Einsatz, namentlich @font-face, box-shadow und border-radius. An manchen Stellen hat es mich doch verwundert, wie die einzelnen Browser darauf reagieren. Insgesamt kann man die Browser auf ihre Renderingengines runterbrechen:

  • »Gecko« (Firefox, Thunderbird, Kazehakase, Liferea und einige weitere)
  • »Webkit« (Safari, Chrome/Chromium, seit letztem September Epiphany und weitere), KHTML lassen wir hier mal ohne Wertung außen vor
  • »Presto« (Opera)
  • ach ja, und »Trident« (Internet Explorer)

Gecko

Im aktuellen Firefox 3.5 werden alle neuen Eigenschaften bereits umgesetzt, wobei man box-shadow und border-radius mit dem Präfix »-moz-« ansprechen muss. Die Schrift (Navigation, Überschriften) wird sauber durch den eingebundenen Font ersetzt, Boxen (siehe Kommentare) werfen Schatten, das Hauptfenster ist oben abgerundet. Interessanterweise ist das untere Ende nicht abgerundet, da ein innen liegender Container eine eigene Hintergrundfarbe hat, und die Rundung somit überdeckt. Ein Fehler im Rendering tritt auf, wenn Container mit Rahmen und Abrundung einen Schatten werfen.

Ältere Versionen von Gecko stellen immerhin die abgerundeten Ecken dar.

Firefox scheint ein Problem mit transparenten PNGs und mit »position: fixed;« positionierten Elementen zu haben. Die Geschwindigkeit beim Scrollen ist stark vermindert, es ruckelt und fühlt sich zäh an. Dadurch wirkt alles etwas behäbiger und langsamer.

Webkit

Chromium stellt die Seite fast identisch dar. Das Fontrendering ist wie gewohnt etwas feingliedriger und weicher. Alle drei neuen Effekte werden umgesetzt, dafür ist jedoch ebenso wie bei Gecko das Präfix »-webkit-« nötig.

Der selbe Fehler wie bei Gecko tritt auch hier auf, runde Ecken, Schatten und farbige Rahmen sind keine guten Freunde. Im Gegensatz zum Screenshot beendet meine lokale Installation von Chromium (4.0.249.43) die Seite direkt nach dem Container mit dem Impressum.

Auffällig ist, dass die per »position: absolute;« verschobenen Gravatarbilder in den Kommentarboxen anscheinend Platz im Kopfteil einnehmen, was eigentlich nicht der Fall sein sollte.

Der Fehler aus Firefox mit zu langsamen Scrollen tritt hier nicht auf (eigentlich logisch), der Browser zeigt sich äußerst reaktionsfreudig.

Presto

Opera schneidet in Sachen CSS3 in diesem Fall leider nicht sehr gut ab, keine der drei neuen Technologien wird hier unterstützt. Der selbe »Fehler« mit den Avatarbildern tritt auch hier auf. Bei meiner lokalen Installation (10.10) werden auch noch alle Formatierungen in den Überschriften geschluckt, sodass sie aussehen wie Fließtext. Auch werden manche Buchstaben verschluckt. Gefühlt ist Opera beim Scrollen sogar noch ein wenig schneller und reaktiver als Chromium.

Trident

Erwartungsgemäß wird nichts von den neuen Eigenschaften unterstützt, aber im Bestehenden eigentlich auch nicht viel falsch gemacht. Sogar wirklich alte Versionen wie 4.01 machen bei umsichtiger Gestaltung nichts kapital falsch.

Für Internet Explorer halte ich das für absolut ausreichend, meine Zielgruppe liegt ja auch wo anders. Immerhin versuchen die Entwickler mit der kommenden Version 9 in einigen Bereichen aufzuholen.

Fazit

Kein Browser hat mich total enttäuscht, aber jeder hat seine Macken. Die neuen Funktionen von CSS3 sind toll und können jetzt schon produktiv eingesetzt werden. Die Meinung, dass eine Internetseite auf jedem Ausgabegerät gleich aussehen muss ist nicht umsonst schon länger überholt. Wenn ein Browser heute schon Schatten darstellen kann, dann ist das schön, aber absolut kein Muss. Letztendlich sollte es immer noch auf den Inhalt ankommen.

Anhang: 29 Screenshots unter vielen unterschiedlichen Umgebungen. Danke an browsershots.org!

(more…)

Typische Linuxschriften im Portrait ⅠⅠ

Nachdem seit dem ersten Teil des Vergleichs schon wieder einige Zeit vergangen ist, sind nun die Serifen– und Monospaceschriften dran.

Bitstream Vera und Deja Vu

Prinzipiell gilt hier das selbe wie bei den Grotesken, dank dem größeren Zeichensatz und dem etwas besseren Umgang mit Ligaturen in Firefox 3.5 und  geht die Empfehlung wieder an die Deja Vu–Familie. Leider enttäuschen beide Schriften im Umgang mit Ligaturen in OpenOffice 3.1. Ein automatisches Setzen von Ligaturen ist überhaupt nicht zu entdecken. Dennoch gibt sie eine schöne, wenn auch etwas weit laufende, Standardschrift ab.

Linux Libertine

Lange habe ich die Schrift nicht beachtet, war das ein großer Fehler, denn Linux Libertine ist ein wirklich toller Font. Wie der Groteskenbruder recht schmal in der Laufweite und sehr organisch und weich im Schriftbild. Leider konnte ich keine Mediävalziffern im Zeichensatz entdecken, ansonsten bin ich sehr begeistert. Ligaturen werden toll (Firefox) bis in Ordnung (OpenOffice) behandelt. Auch hier ist wieder das Versal-ẞ im Zeichensatz vorhanden. Rundum ist die Schriftart schön anzusehen und wird wohl zusammen mit Linux Biolinum meinen Standardschriftsatz in Naher Zukunft bilden.

URW Bookman L, URW Palladino L und Nimbus Roman No9 L

Diese Drei sind allesamt schöne und recht brauchbare Serifenschriften, wobei mir wohl einfach die Kompetenz fehlt um genauer auf die Unterschiede einzugehen.

Drei mal Monospace

Zum Schluss gibt es noch drei Monospaceschriften, wieder zwei Vertreter aus Bitstream Vera und Deja Vu, sowie eine aus der Nimbusfamilie.

Typischerweise laufen die Bitstreamschriften wieder sehr weit und verstehen sich ganz gut darin sehr grotesk und unmonospacig auszusehen. Diese Eigenart stört mich selbst bei der Arbeit in der Konsole, aber beim Programmieren finde ich es wieder recht angenehm einen natürlicheren Lesefluss zu haben.

Nimbus hat dieses geometrische, technischere Aussehen, mag in der Konsole aber trotzdem nicht wirklich gefallen. Sie wirkt unscharf und nicht optimiert. Um sie in der Textverarbeitung einzusetzen ist sie etwas zu schlacksig und passt nicht mal wirklich zu ihren Geschwistern in der Nimbusfamilie. Alleine benutzt ist sie jedoch schön schlank und platzsparend (wenn eine Monospaceschrift das jemals sein kann), und somit gut nutzbar für Merkzettel oder ähnliches.

Nimbus Mono in der Konsole

Und nochmal Monospace!

In dieser Sparte darf dann natürlich auch nicht Terminus als die Konsolenschrift fehlen. optimale Lesbarkeit und ein schönes Schriftbild sind toll umgesetzt und machen die Konsole noch benutzenswerter. Eine eindeutige Empfehlung.

Terminus in der Konsole

Soviel erst mal zu den Schriftarten an sich, weiter wird es gehen mit Fontmangement und dem einfacheren Setzen von typografisch besseren Zeichen (als man es von der Tastatur gewohnt ist). (more…)

Agave, GRuler und Gcolor2

Im Rahmen der Blogparade auf http://ubuntublog.ch möchte auch ich drei wahrscheinlich eher unbekannte Programme vorstellen. Gleich drei, weil es wirklich nur sehr kleine Programme sind und sie durchaus eine Sinneinheit ergeben.

Es handelt sich um Agave, Gcolor2 und GRuler, unter Ubuntu sowie Archlinux sind die ersten beiden in den Paketquellen unter den selben Namen aufzufinden, GRuler gibt es bei Arch im AUR, unter Ubuntu weiß ich es nicht.

Alle Programme sind für GTK-Oberflächen konzipiert worden, sollten aber auch auf Nicht-GTK-Oberflächen einwandfrei laufen. Ich selbst benutze Archlinux zusammen mit XFCE 4.6.1 (mittlerweile übrigens etwas zufriedener ;) ), zur Entwicklung benutze ich Geany. Vielleicht sind die Funktionen der drei Programme in größeren Umgebungen bereits abgedeckt, aber ich befolge hier einfach einen Teil der Linuxphilosophie „für jede Aufgabe ein Programm“.

Agave

Das Programm erzeugt Farbkombinationen, welche auf verschiedene Weise auswählbar sind:

  • Komplementäre Farben
  • zwei halb-komplementäre Farben
  • Dreiergruppe
  • Vierergruppe
  • sinngemäße Farben
  • Einfarbig

Hierbei kann man Farben aus einem vorher angegebenen Farbpool auswählen lassen:

  • GNOME Icon Palette
  • Tango Icon Theme Palette
  • Web-safe colors
  • Visibone

Die herausgesuchten Farben werden in ihrer Hexnotation, RGB und HSV angezeigt, es gibt verschiedene Möglichkeiten die Farben in Nuancen zu ändern (heller/dunkler; satter/weniger satt), ebenso ist eine exportierbare Favoritenliste vorhanden.

Agave

Besonders bei der Webseitengestaltung hat sich das Programm als nützlich erwiesen; man kann schnell gute Farbkombinationen finden und übernehmen, grundsätzlich ist es auch als erste Inspirationsquelle gut geeignet.

GRulerGRuler

Hierbei handelt es sich um ein Bildschirmlineal. Man kann es auf die Einheiten

  • Pixel
  • Zentimeter
  • Inch
  • Picas
  • Punkte/Inch
  • Prozent

einstellen, rotieren und die Länge verändern. Besonders für Webseitengestaltung und Bildbearbeitung finde ich dieses Werkzeug besonders hilfreich, um Abstände schnell nachzumessen und zu überprüfen ob sich Objekte wirklich auf der selben oder richtigen Höhe befinden. Wie auf dem Bild zu erkennen ist, kommt GRuler komplett ohne Fensterdekoration oder vergleichbares aus, es ist eben wirklich nur ein Lineal. Die „immer zuoberst“ Funktion kann trotzdem über das Menü (am linken Ende; erst sichtbar, wenn die Maus darüber liegt) von GRuler angewählt werden.

Gcolor2

Der GTK-Farbauswahldialog als eigenständiges Programm, inklusive Colorpicker und Favoritenliste. Dies ist quasi nochmal eine schlankere Variante von Agave, aber bei mir ständig in Benutzung um schnell eine Farbe zu finden oder eine schöne gesehene zu speichern.

Gcolor2

Zum Schluss…

…hoffe ich dem Einen oder Anderen mit diesem Beitrag geholfen zu haben und bedanke mich fürs Lesen.

Die Cheeseburgervergleichstheorie

Die Cheeseburgervergleichtheorie ist eigentlich ganz einfach. Deshalb zunächst cat-content.

cheezomnomnomnomburglar

Der Theorie wird zugrunde gelegt, dass ein Cheeseburger immer etwa 1€ kostet.

Mit diesem mathematischen Vorwissen kann man nun das hochabstrakte Medium “Geld” (auch ¢redits genannt) in ein greifbares, weil lebensnahes Muster zwängen. Ein Abend im Club ist selten so toll wie 50 Cheeseburger. Im Vergleich dazu ist ein Döner (2,5€; Berlin) ein guter Kauf. Aber wie immer muss man Obacht geben! Ein münchner Döner (3€; µ-klein) muss schon wieder wohlüberlegt sein. Eine Segelyacht für 1.000.000 (man gönnt sich ja sonst nichts) muss also so toll sein, dass man etwa 2739 Jahre lang jeden Tag einen Cheeseburger zu essen nicht besser ist. Versuch das mal.

Wie man sieht, man kann schwierige Situationen mit dieser Theorie schnell und handlich in einen einfach zu verstehenden Kontext bringen, der für jeden leicht Verständlich ist.

Das Bild kommt ganz dreist von Ack Ook unter cc-by-sa-2.0

(more…)

WordPress treibt mich in den Wahnsinn

Ich habe wirklich viele Blogsysteme und CMS ausprobiert, bevor ich diesen Blog aufgesetzt habe.

  • WordPress
  • Textpattern
  • Serendipididity Serendipity
  • Modx
  • cmsmadesimple
  • Drupal
  • typolight
  • Joomla

Immer hat mich irgend etwas gestört, WordPress kam aber noch am besten weg. Aber die Trägheit des Backends, der blöde Editor, die ständige Suche nach Plugins, die unkomfortable Templating Engine… Das macht alles keinen Spaß.

Deswegen habe ich jetzt angefangen selbst etwas zu entwickeln, was genau auf meine Ansprüche zugeschnitten ist. Textile, eine einfache Templating Engine (vLIB) und das KISS-Prinzip sollen zunächst die Grundpfeiler des Konzepts sein, Komfortfunktionen wie Trackback, Kommentare, Multilingualität und ein Medienmanager dürfen dabei nicht fehlen. Das Frontend ist schon fast fertig, die meisten Basisfunktionen eingebunden, das Backend in Arbeit. Mal schauen, ob und wann ich damit produktiv werden kann. (more…)