Spracheingabe und Sprachausgabe für mobile Serviceroboter

Größe: px
Ab Seite anzeigen:

Download "Spracheingabe und Sprachausgabe für mobile Serviceroboter"

Transkript

1 Fakultät für Elektrotechnik und Informatik Angewandte Informatik Forschungszentrum für Servicerobotik Spracheingabe und Sprachausgabe für mobile Serviceroboter Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science B.Sc von Julian Hochstetter 01. Oktober Dezember Betreuer: Prof. Dr. rer. nat., Dipl. Phys. Wolfgang Ertel 2. Betreuer: Prof. Klemens Ehret

2

3 Abstract Speech recognition and speech synthesis for mobile service robots This bachelor thesis created the opportunity to do speech recognition and synthesized speech output in a most easy and user-friendly way summarised up in only one program. This purpose was reached by the application of mature and reliable software in each case for speech recognition, language model generation and speech synthesis. One task was connecting these three software components by a graphical user interface, which allows the user to add self-defined phonetic inputs to the language model and by adding more voice recordings to extend this model so that the detection rate rise up to an optimal recognition rate. Zusammenfassung Spracheingabe und Sprachausgabe für mobile Serviceroboter Im Rahmen dieser Bachelor-Abschlussarbeit wurde die Möglichkeit geschaffen, auf möglichst einfache und dadurch benutzerfreundliche Weise sowohl Spracherkennung als auch Sprachausgabe zusammengefasst in einem Programm durchzuführen. Dieses Ziel wurde durch den Einsatz ausgereifter und zuverlässiger Software jeweils für Spracherkennung, Sprachmodellgenerierung und Sprachausgabe erreicht. Eine Aufgabe war, diese drei Softwarekomponenten durch eine grafische Bedienoberfläche zu verbinden, die es dem Benutzer erlaubt, selbst definierte Spracheingaben zu dem Sprachmodell hinzuzufügen und dieses durch weitere Sprachaufnahmen für eine optimale Erkennungsrate zu erweitern.

4 Julian Hochstetter Schützenstrasse Gießen Hiermit erkläre ich eidesstattlich, dass ich die von mir vorgelegte Arbeit in der vorgegebenen Zeit vom selbständig verfasst habe, dass ich die verwendeten Quellen, Internet-Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit einschließlich Tabellen, Karten und Abbildungen, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe. Weingarten, den 31. Dezember 2008 Julian Hochstetter

5 Danksagung Hiermit möchte ich mich bei meinem Betreuer Professor Dr. Wolfgang Ertel für seine stets großzügige Unterstützung und wertvolle Betreuung während der gesamten Zeit bedanken. Als verantwortlicher Teamleiter des Robocup und ZAFH Labors der Hochschule Ravensburg-Weingarten hat er mir diese interessante Bachelorarbeit in der Robocup Arbeitsgruppe ermöglicht. Auch bei meinem Zweitgutachter Professor Klemens Ehret möchte ich mich herzlich für seinen konstruktiven Beitrag für die Gestaltung der grafischen Bedienoberfläche bedanken. Des weiteren gilt mein Dank allen Mitgliedern der Robocup-Arbeitsgruppe. All denen, die diese Arbeit Korrektur gelesen haben und wertvolle Hinweise beigesteuert haben, spreche ich ebenfalls besonderen Dank aus. Zuletzt möchte ich mich auch bei meiner Freundin, meiner Familie und all meinen Freunden bedanken, die mir während dieser Arbeit verständnisvoll und unterstützend zur Seite standen.

6 Inhaltsverzeichnis 1 Einführung Motivation, Zielsetzung und Beitrag Einleitung Schwierigkeiten der menschlichen Sprache Aufbau und Kapitelübersicht Die Spracherkennung Einleitung Die Möglichkeiten der Spracherkennung Als Hilfe für behinderte Menschen In der Industrie Im Alltag Im Multimediabereich In der Medizin Übersetzender Sprachcomputer Herausforderung der Spracherkennung Der Mustervergleich Sprachsynthese Einleitung Die Möglichkeiten der Sprachsynthese Einsatz im Multimediabereich Einsatz für behinderte Menschen Einsatz als Kontrollwerkzeug Der Aufbau eines Sprachsynthese-Systems NLP (Natural Language Processing) DSP (Digital Speech Processing)

7 4 Software für Spracherkennung Kommerzielle Systeme IBM ViaVoice Philips FreeSpeech und Philips SpeechMagic Dragon NaturallySpeaking Open-Source Systeme CMU Sphinx Julius und das HTK Toolkit Software für Sprachsynthese Kommerzielle Systeme AT&T Natural Voices SDK FonixTalk 6.1 SDK Open-Source Systeme MBROLA BOSS - Bonn Open Synthesis System FreeTTS Festival und Festival Lite (Flite) espeak Das Sprachmodell Einleitung Lautschrift Phonem Bi- und Triphone Prosodie Akustikmodell Wörterbuch Julius Vokabular Julius Grammatik Trainingsdaten Eingesetzte Komponenten C Qt Advanced Linux Sound Architecture Julius, HTK und espeak Installation von espeak

8 7.5 Simon Listens Installation von HTK Installation von Julius Installation von Simon Julius Control Center Das Julius Control Center Die GUI - MainWindow Die Verwaltung TrainingView WordManager GrammarManager SampleManager ModelManager AddWordWizard Der Server - JuliusServer Der Clientsocket Das JuliusProtocol Der Spracherkenner - JuliusControl Der Synthesizer - Speaker Die Soundausgabe - SoundOutput WavRecorder Die Mikrofonregelung - MicControl Einstellungen dauerhaft speichern - Settings Weitere Dokumentation Die Benutzung des Programms Allgemeines Spracherkennung Training - Sprachmodell Training - Akustikmodell Training - Grammatik Training - Wort hinzufügen Sprachausgabe Einstellungen Schlussbetrachtung 88

9 Anhang 92 A Literaturverzeichnis B Tabellenverzeichnis C Abbildungsverzeichnis D Abkürzungsverzeichnis E Quellcode Verzeichnis F Beispieldaten

10

11 1 Einführung 1.1 Motivation, Zielsetzung und Beitrag Das Ziel dieser Bachelorarbeit ist es, für das Robocup Labor und die Forschungsgruppe AMSER (Autonome mobile Serviceroboter) der Hochschule Ravensburg-Weingarten ein System zur Spracheingabe und Sprachausgabe zu entwickeln. Einerseits soll es möglich sein, einem Roboter mit der Stimme des Bedienenden Befehle zu erteilen und anderseits soll der Roboter dem Menschen verbale Mitteilungen wie z.b. Statusmeldungen machen können. An der Hochschule wird eine universell einsetzbare Teaching-Box entwickelt, diese soll es in Zukunft ermöglichen, dass Serviceroboter ihr Verhalten selbst erlernen. Die in dieser Arbeit entwickelte Sprachsteuerung soll als weiteres Element in die Teaching-Box einfließen und es so ermöglichen, den Roboter bei seinem Lernvorgang mit der Stimme aktiv zu unterstützen, indem z.b. gesagt wird, ob die ausgeführte Handlung richtig oder falsch Abbildung 1.1: Pioneer P3- AT Roboter mit Katana Arm war Zum Einsatz soll etablierte, gut funktionierende Software kommen. Eine große Rolle dabei spielt, dass das System unter Linux lauffähig sein muss, da die gesamte Entwicklung des Roboters mit dem Betriebssystem Linux stattfindet. Während des Studiums habe ich bereits eine Projektarbeit im Labor für Roboter gemacht, welche dazu beigetragen hat, mich für dieses Thema zu begeistern. Ich wollte unbedingt einen weiteren Beitrag für das Labor leisten, aus diesem Grund habe ich zusammen mit Professor Dr. Ertel nach einem passendem Thema gesucht. 11

12 1.2. EINLEITUNG KAPITEL 1. EINFÜHRUNG Im Laufe der Entwicklung des Programms haben sich folgende Ziele herausgebildet: Sprecherunabhängige Spracherkennung Die sichere Einzelworterkennung hat gegenüber der Fließtexterkennnung Vorrang Die Echtzeitanforderung muss eingehalten werden und die Ressourcenlast darf nicht zu hoch sein Gut zu verstehende Sprachausgabe, die jedoch nicht zwingend natürlich klingen muss Vollständige Kompatibilität zu Linux Die Möglichkeit zu schaffen, das Programm fernzusteuern bzw Informationen mit einem fremden Programm auszutauschen Die Möglichkeiten des Betriebssystems Linux sind einfach unglaublich, dies hat mich schon sehr früh fasziniert und gefesselt. Da die Sprachsteuerung in naher Zukunft eine immer wichtigere Rolle spielen wird, ist dies eine gute Möglichkeit, sich jetzt mit dem Thema zu befassen. 1.2 Einleitung Die Sprache hat sich als Kommunikationsmittel über sehr lange Zeit hin als Kulturgut entwickelt. Sprache hat für den Mensch nicht nur eine Bedeutung als Informationsträger, ich betrachte sie jedoch im Zusammenhang meiner Arbeit ausschließlich im Hinblick auf eine mögliche Verwendung in der Kommunikation mit Computern. Im Besonderen wird die Problematik der Übertragbarkeit von geschriebenem Wort zu klingendem Wort und der umgekehrte Vorgang untersucht. Durch Spracherkennung, Sprachsynthese und Sprachsteuerung bieten sich Innovationen auf dem Gebiet der Angewandten Informatik. Statt manueller Bedieung wird es so möglich, mit verbalen Informationen, Anweisungen oder Kontrollen und Feedbacks zu arbeiten. 1.3 Schwierigkeiten der menschlichen Sprache Für das Projekt Spracherkennung-Sprachausgabe wird es sich zeigen, auf welche Weise die menschliche Sprache interaktiv durch den Computer genutzt 12

13 KAPITEL 1. EINFÜHRUNG 1.4. AUFBAU UND KAPITELÜBERSICHT werden kann. Menschliche Sprache vollzieht sich in ihrer Art als sehr komplexer Vorgang und unterscheidet sich als lebendig und sich weiterentwickelnt von den sogennanten Computersprachen. Die Programmiersprache C z.b. besitzt eindeutige, genaue, festgelegte Regeln, deshalb werden Programmiersprachen auch als formale Sprachen bezeichnet, sie haben eine beschränkte, genau Anzahl an Wörtern und eine ebenso festgelegte Grammatik. [Hrom07] Menschliche Sprache hingegen kennt Mehrdeutigkeiten, und mehrdeutige Worte können nur im Kontext verstanden werden, wie Präpositionen, z.b. vor, die sowohl räumliche als auch zeitliche Angaben machen. [Dude08] Zudem kann Sprache im Dialekt individuell sein, was in der Kommunikation unter Menschen für das Verständnis weniger Bedeutung hat. Da ein Spracherkennungssystem jedoch mit einer Art Mustervergleich arbeitet, sollte der Input der eingegebenen Datenbank des Wörterbuchs möglichst genau entsprechen. 1.4 Aufbau und Kapitelübersicht Das Ziel der Installation einer Spracherkennung und einer Sprachsynthese macht es für diese Arbeit erforderlich, sich zunächst einen Überblick darüber zu verschaffen, was Spracherkennung- und synthese bedeutet. Hierzu wird jeweils eine Einführung in die Geschichte der Entwicklung und die möglichen Einsatzgebietete in Kürze vorgstellt. Nachdem die Funktionsweise der Systeme Sprache-zu-Text und Textzu-Sprache bearbeitet ist, wende ich mich dem Thema der Software für Spracherkennung und Sprachsynthese zu, im die für das Projekt optimale herauszufinden. Ein weiteres Kapitel widmet sich der Zusammenstellung aller Benutzerdaten, dem sogenannten Sprachmodell. Es wird aus der allgemeinen Linguistik das Teilgebiet der Phonologie herangezogen. Ausßerdem wird das für das Projekt genutzte Wörterbuch und die Spracherkennungssoftware und die eingesetzte Technik der Hidden Markov Modelle vorgestellt. In einem weiteren Abschnitt werden die verwendeten Systemkomponenten vorgstellt. Schließlich wird das Julius Control Center, des im Rahmen dieser Arbeit entstandenen Programms in der Nutzung dargestellt. 13

14 1.4. AUFBAU UND KAPITELÜBERSICHT KAPITEL 1. EINFÜHRUNG 14

15 2 Die Spracherkennung 2.1 Einleitung Die automatische Spracherkennung hat eine über fünfzigjährige Forschungsgeschichte hinter sich, schon in den 60er Jahren des 20. Jahrhunderts war es möglich, Einzelwörter maschinell zu erkennen. Es wurden Filter eingesetzt, um die spektralen Eigenschaften der menschlichen Sprache zu gewinnen. Die daruch erhaltenen Muster wurden mit gespeicherten Mustern verglichen. Schon damals wurde eine Erkennungsrate von bis zu 90% erreicht. [RJ04] Abbildung 2.1: Spektrogram einer 9-Kanal Filterbankanalyse des Wortes three und zwei mal des Wortes eight. Es ist deutlich zu sehen, dass die zwei Wörter von eight ihrer Struktur nach ähnlich sind, abgesehen von der viel kürzeren Lücke und dem längeren Burst für [t] bei der unteren Äußerung. Aus [Holm91] 15

16 2.1. EINLEITUNG KAPITEL 2. DIE SPRACHERKENNUNG Einige Jahre später wurde die Technik der dynamischen Programmierung entdeckt. Diese Technik beruht auf dem Verfahren der nichtlinearen zeitlichen Anpassung, auch DTW(Dynamic T ime W arping) genannt. Abbildung 2.2: Verlauf eines DP(Dynamische Programmierung) Pfades zwischen zwei Äußerungen des Wortes eight. Eine zeitliche Verschiebung wird nicht bestraft und die Pfadsuche in den einzelnen Punkten ist begrenzt( pruning ). Der optimale Pfad (dicke Linie) wurde durch Rückverfolgung ausgehend von der rechten oberen Ecke gewonnen. Aus [Holm91] Bei diesem Verfahren wurde versucht, durch dynamische Programmierung einen Pfad von der linken unteren Ecke zur rechten oberen Ecke zu finden. Umso gerader der Verlauf ist, desto geringer ist der Abstand der beiden Muster, also desto ähnlicher sind die Muster sich. [Zink97] Durch dieses Verfahren konnte man bereits bis zu 1000 Einzelwörter mit einer Erkennungsrate von bis 100% erkennen. Durch mehrere parallel laufende DTW- Algorithmen erreichte man die Erkennung von Wortketten. [RJ04] 16

17 KAPITEL 2. DIE SPRACHERKENNUNG 2.1. EINLEITUNG Abbildung 2.3: Ergebnis des Versuchs, zwei ungleiche Wörter ( three und eight ) mit demselben DP-Algorithmus wie in Abb. 2.2 zuzuordnen [... ]. Der mit Kreuzen markierte Verlauf zeigt den stark abweichenden Pfad, der sich bei Ausschluss des letzten Frames im Vergleichsmuster als optimal erwiesen hätte. Aus [Holm91] In der Abbildung 2.3 ist ein Negativnbeispiel dargestellt. Hier wurde versucht, zwei ungleiche Muster zu vergleichen. In den 80er Jahren des 20. Jahrhunderts wurde durch die Technik der Hidden- Markov-Modelle (HMM) die Möglichkeit geschaffen, eine ganz neue Art der Spracherkennung zu ermöglichen. Mit Hilfe dieser statistischen HMM Modelle und stochastischen Sprachmodellen wurde schließlich die Erkennung von kontinuierlicher Sprache erreicht. Es wurden auch verschiedene Versionen von neuronalen Netzen zur Spracherkennung eingesetzt, diese konnten jedoch nicht die Ergebnisse der HMM- Technik erreichen. 17

18 2.2. DIE MÖGLICHKEITEN DER SPRACHERKENNUNG KAPITEL 2. DIE SPRACHERKENNUNG 2.2 Die Möglichkeiten der Spracherkennung Die Sprachsteuerung wird in naher Zukunft immer häufiger anzutreffen sein, ihr kann als zusätzliches Bedienungselement große Bedeutung zukommen. Die intuitive und komfortable Bedienung, die dadurch möglich wird, ist für viele Bereiche von besonderem Interesse. Ein Beispiel für den Einsatz einer solchen Bedienung ist das Ziel dieser Arbeit: die Steuerung eines Serviceroboters. Dieser Serviceroboter soll mit der Stimme so zu bedienen sein, dass er Befehle entgegen nehmen kann und diese dann auch entsprechend ausführt Als Hilfe für behinderte Menschen Ein wichtiger Einsatz von Sprachsteuerung kann zur Erleichterung des gesamten Lebens von körperlich beeinträchtigten Menschen führen. Wenn die motorische Steuerung erschwert oder ganz unmöglich ist, kann durch eine sprachliche Steuerung eine Selbständigkeit in der Nutzung von Geräten wie z.b. Rollstühlen oder auch Computern erreicht werden In der Industrie Aber auch in der Industrie, z.b. der Automobilindustrie kann Sprachsteuerung hilfreich sein. Hier kann mit einer Sprachsteuerung die Sicherheit erhöht werden, wenn der Bedienende nicht mehr an Knöpfen steuern oder regeln muss. Zudem können manuelle und verbale Bedienung zeitgleich stattfinden, was den Arbeitsprozess optimieren kann Im Alltag Ein weiteres Anwendungsfeld ist das Texterfassen durch Diktiersysteme. Ärtze oder Juristen z.b. können von diesen Systemen profitieren, da ein großer Teil der Tätigkeitsdokumentation sprachlich wesentlich schneller und einfacher abzuwickeln ist als durch textverarbeitende Schreibprogramme. Auch das Autoradio z.b. kann mit der Stimme bedient werden, was zur Sicherheit beim Fahren beitragen kann. 18

19 KAPITEL 2. DIE SPRACHERKENNUNG 2.2. DIE MÖGLICHKEITEN DER SPRACHERKENNUNG Im Multimediabereich Spracherkennung ist besonders hilfreich an Stellen, wo der Mensch mit der Stimme kommuniziert, z.b. am Telefon. Die Nummer des Gesprächspartners muss dann nicht eingegeben werden, sondern das Telefon sucht und wählt automatisch, wenn man den gewünschten Gesprächspartner nennt. Mit einer besonderen Form von Spracherkennung ist jeder von uns schon einmal in Berührung gekommen, mit dem Telefoncomputer einer Hotline. Jedes moderne Call-Center setzt diese Telefoncomputer ein, um den Anzurufenden an den richtigen Sachbearbeiter durchzustellen. Viele Banken bieten auch Telefonbanking an. Hier kann der Anrufende Bankgeschäfte am Telefon durchführen. Mittels Stimmmuster-Erkennung könnte sogar der Teilnehmer verifiziert und die Sicherheit erhöht werden In der Medizin Auch im Operationssaal kommen solche Sprachsteuerungen schon zum Einsatz. Wenn der operierende Arzt das Operationsbesteck in der Hand hält, kann er sehr schwer, z.b. den Bildausschnitt seines Mikroskopes verändern oder die Schärfe nachstellen. Er kann in diesem Moment keinen Hand- oder Fußschalter zum Bedienen des Operationsmikroskopes einsetzen. Die Steuerung mit der Sprache vereinfacht auch hier wieder die Arbeit des Benutzers. 19

20 2.3. ÜBERSETZENDER SPRACHCOMPUTER KAPITEL 2. DIE SPRACHERKENNUNG 2.3 Übersetzender Sprachcomputer Das bis heute wohl beeindruckenste Projekt im Bereich der Spracherkennung ist das Verbmobil. Ins Leben gerufen wurde das Projekt im Jahr 1993 und wurde in 2 Phasen bis ins Jahr 2000 durchgeführt. Das Verbmobil ist eine Software zur Erkennung von Spontansprache, die einzelne Wörter oder Sätze analysiert, übersetzt und letztlich wieder ausspricht. Es erkennt dabei auch Fehler, Korrekturen und Ähs und gibt diese wieder. Das Verbmobil wurde im Rahmen eines Forschungsprojekts des BMBF (Bundesministerium für Bildung und Forschung) in Kooperation mit namhaften Firmen aus der Industrie entwickelt, insgesamt hatte das Projekt ein Budget von 166,7 Millionen DM zur Verfügung. Anwendung findet dieses System z.b. in Tourismusbüros oder Hotels. Der Anrufende kann in seiner Muttersprache mit dem fremdsprachigen Gegenüber kommunizieren. Das Gespräch wird dazu über einen Sprachserver geleitet, dort werden die Wörter analysiert, zu einem Satz geformt und übersetzt. Damit die Gegenstelle nun die Übersetzung hören kann, wird diese noch synthetisiert. Dieses beeindruckende Ergebnis ist dadurch möglich, dass die Software eine einzigartige Prosodieerkennung benutzt. Diese versucht die Satzmelodie zu erkennen und den Bedeutungszusammenhang zu extrahieren. Dieser Schritt ist eine Vorstufe des Übersetzens, denn nur so kann gewährleistet werden, dass die Emotionen und der Inalt der Übersetzung auch richtig sind. Die Wortfehlerrate lag am Schluss einer Übersetzung vom Deutschen in das Englische nur noch bei ca. 14%. Mit dem Verbmobil ist es dem DFKI (Deutsches Forschungszentrum für Künstliche Intelligenz) gelungen, ein interdisziplinäres Leitprojekt ins Leben zu rufen. Aus dem Projekt, welches mittlerweile abgeschlossen ist, gingen 800 wissenschaftliche Publikationen hervor, zahlreiche Arbeitsplätze entstanden und dem Projekt wurde 2001 sogar der Zukunftspreis des Bundespräsidenten verliehen. [Verb00], [Wahl00] 20

21 KAPITEL 2. DIE SPRACHERKENNUNG 2.4. HERAUSFORDERUNG DER SPRACHERKENNUNG 2.4 Herausforderung der Spracherkennung In der Spracherkennung wird nach den Anforderungen an die Spracherkennung klassifiziert. Zum einen wird unterschieden ob das System sprecherabhängig oder sprecherunabhängig arbeiten soll. Mit unterschiedlichen Sprechern zurechtzukommen, ist schon die erste Schwierigkeit für die Spracherkennung. Unterschiedliche Sprecher haben ein sich unterscheidendes Sprechmuster, der eine spricht langsam, klar und deutlich, ein anderer spricht vielleicht viel schneller und undeutlicher. Für uns Menschen ist dies kein sonderlich großes Problem, wir können uns im Hörvständnis auf den Kommunikationspartner und auf schwierige Situationen individuell und spontan einstellen, für den Computer ist das allerdings nicht so einfach. Eine weitere Schwierigkeit für das System ist, ob es nur einzelne Wörter, Wortketten oder zusammenhängenden, kontinuierlichen Text erkennen soll. Aus Kombinationen der oben genannten Schwierigkeiten ergibt sich nun die Anforderung an das Spracherkennungsprogramm. Einfach Schwierig Sprechweise Einzelne Wörter Sätze Wortschatz Kleiner Wortschatz Großer Wortschatz Benutzerkreis Sprecherabhängig Sprecherunabhängig Tabelle 2.1: Anforderungen und Schwierigkeitsgrad an eine Software für Spracherkennung. Aus [Eule06] Ein weiterer kritischer Punkt ist die akustische Umgebung. Jedes kleinste Störgeräusch beeinflusst die Erkennungsrate des Systems. Der Mensch kann im Hörvorgang feinste Differenzierungen aus einem Ganzen selektieren, wir können auf bestimmte Qualitäten fokussieren, z.b. eine Einzelstimme aus einem Stimmengewirr heraushören. Der Computer benötigt jedoch für die Spracherkennung einen möglichst eindeutigen Input. 21

22 2.5. DER MUSTERVERGLEICH KAPITEL 2. DIE SPRACHERKENNUNG 2.5 Der Mustervergleich Die Spracherkennung kann man mit einem Mustervergleich verdeutlichen. Wenn man die Spracherkennung auf das Erkennen von einzelnen Wörtern reduziert, kann man dies folgendermaßen darstellen: Nehmen wir an, es gibt einen Vorrat von N zu erkennenden Wörtern. Weiter haben wir zu jedem Wort W 1...W N eine Referenz R 1...R N. Nun wird ein unbekanntes, zu erkennendes Wort Y mit jeder Referenz vergleichen. Dazu benötigen wir die Vergleichsfunktion D. Diese Vergleichsfunktion D misst die Differenz, also die Ähnlichkeit der beiden Wörter Y und R. D(Y,R) > 0 und D(Y,Y) = 0 Im folgenden ist eine Tabelle mit einem Mustervergleich dargestellt. Wort Muster Abstand D Eins R 1 2,1234 Zwei R 2 1,4353 Drei R 3 1,6532 Vier R 4 4, Neun R 9 5,3234 Tabelle 2.2: Beispiel eines Mustervergleichs In diesem Beispiel findet man bei dem Wort Zwei den kleinsten Abstand zur Referenz. Anhand dieser Feststellung kann davon ausgegangen werden, dass es sich um das gesuchte Wort handelt. Man bemerkt jedoch auch, dass das Wort Drei, auch einen sehr kleinen Wert hat. Dies ist abhängig von der großen phonetischen Ähnlichkeit der Wörter Zwei und Drei. Falls das System keine feinere Unterscheidung vornimmt, würde es annehmen, dass der Benutzer zwei gesagt hat. Um die Erkennungswahrscheinlichkeit zu erhöhen, könnte man den zweitkleinsten Abstand heranziehen. Ist der Abstand zwischen dem kleinsten und zweitkleinsten, hier zwischen Zwei und Drei zu klein, kann man annehmen, dass die erfolgreiche und richtige Erkennung unwahrscheinlich ist, es kann nicht sichergestellt werden, welche Äußerung nun richtig ist. Aus diesem Grund werden häufig mehrere Vergleichsmuster gespeichert. Hier wird dann die Äußerung mit allen gespeicherten Referenzmustern verglichen und die Abstände der gleichen Worte über einen Mittelwert ermittelt. 22

23 KAPITEL 2. DIE SPRACHERKENNUNG 2.5. DER MUSTERVERGLEICH Abbildung 2.5: Eine typische Spracherkennung, anhand eines Mustervergleichs Das Eingangssignal wird zu allererst digitalisiert und einer kleinen Vorverarbeitung unterzogen. Bei dem Schritt, die Merkmale (oft engl. features) zu extrahieren, werden zuerst die Grenzen der Äußerung ermittelt. Dies geschieht meistens mittels einer einfachen Detektion der Lautstärke. Danach werden blockweise die Merkmale gewonnen. Dazu wird meistens ein Block mit einer Größe von 20ms gewählt und daraus die Merkmale extrahiert und gespeichert, die Blöcke überlappen sich dabei. Diese gewonnen Merkmale beschreiben die Äußerung mit Informationen, die zur Spracherkennung herangezogen werden. Meistens werden diese Merkmale mit einer Form der Spektralanalyse gewonnen und typischerweise mit Hilfe der sogenannten Mel-Frequenz-Cepstrum-Koeffizienten (MFCC) gespeichert. Die vorliegenden Vergleichsmuster werden nun herangezogen, um das aktuell berechnete Muster mit jedem einzelnen Referenzmuster zu vergleichen. Diese wurden ebenfals mit dem oben beschriebenen Verfahren gewonnen und lassen sich nun durch einfache Vergleichsmuster miteinander vergleichen. Das am besten passende Muster gewinnt. Häufig wird jedoch nicht nur auf die Ähnlichkeit von Äußerungen vertraut, es werden auch Wahrscheinlichkeiten für das Auftreten von Äußerungen benutzt. Der Extremfall hierbei ist, wenn vorgegebene Grammatiken benutzt werden und so nur bestimmte Wortfolgen erlaubt werden, denn so kann der Wortschatz für das zu erwartende Wort erheblich reduziert werden. 23

24 2.5. DER MUSTERVERGLEICH KAPITEL 2. DIE SPRACHERKENNUNG 24

25 3 Sprachsynthese 3.1 Einleitung Schon seit der zweiten Hälfte des 18. Jahrhunderts wurde versucht, die menschliche Sprache künstlich zu erzeugen. Damals versuchte Wolfgang von Kempelen (23. Januar März 1804) eine Maschine zu bauen, die menschliche Sprachlaute erzeugen kann. [Schr93] Abbildung 3.1: Nachbau der Sprechmaschine von Kempelen Die Funktionsweise dieser Sprechmaschine basiert auf der möglichst naturgetreuen Nachbildung der menschlichen Sprechorgane. Dabei wird die Lunge durch einen Blasebalg und der Mund durch einen Gummitrichter simuliert. Zwei zusätzliche kleine Rohre sollten die Nase ersetzen, diese wurden verschlossen, außer wenn Nasale oder Nasalvokale hervorgebracht werden sollten. Durch Veränderung der Abdeckung des Gummitrichters ließen sich sowohl unterschiedliche Vokale sowie auch gewisse Konsonanten erzeugen. In den Anfängen der Computertechnik wurde mittels von Formantsynthetisatoren die Sprache erzeugt. Diese Technik ist ein analoges Quelle-Filter-Modell. Die Quelle ist ein Signalgenerator, der ein periodisches, impulsförmiges Signal als Eingangssignal für den Filter liefert. Dieser Filter simuliert und modelliert den menschlichen Vokaltrakt, indem er lautcharakteristische Spektren aufmischt. 25

26 3.2. DIE MÖGLICHKEITEN DER SPRACHSYNTHESE KAPITEL 3. SPRACHSYNTHESE Erst später wurde versucht, eine Verkettung menschlich klingender, natürlicher Sprachsignalelemente zu erzeugen. Begonnen wurde mit dem Diphonansatz und später, als die Rechen- und Speicherkapazität zunahm, setzte man auf korpusbasierte Systeme (engl. unit selection synthesis). Bei korpusbasierten Systemen wird aus einer Datenbank mit vorhandenen Formanten durch spezielle Suchalgorithmen und gewichtete Entscheidungsbäume eine Reihe möglichst langer, gespeicherter Äußerungen gebildet. Die Qualität synthetischer Sprache wird durch zwei erhebliche Punkte bestimmt. Zum Einen muss synthetische Sprache gut zu verstehen sein (Verständlichkeit) und zum Anderen muss diese auch angenehm klingen, sie muss natürlich klingen, es darf nicht unangenehm sein, einer künstlichen Sprache zuzuhören. Die Verständlichkeit synthetisch erzeugter Sprache kann inzwischen als sehr gut eingestuft werden. Ein immer noch offenes Problem ist jedoch die Natürlichkeit künstlich erzeugter Sprache. Ein Teil dieser Arbeit wird sein, existierende Sprachsynthesesysteme für die deutsche Sprache zu analysieren, eines auszuwählen, um es anschließend als Gegenstück zur Spracherkennung in eine Software zu implementieren, sodass ein Dialogsystem entsteht. 3.2 Die Möglichkeiten der Sprachsynthese Einsatz im Multimediabereich Auch hier gibt es eine Vielzahl von Einsatzmöglichkeiten, z.b kann man sich ein Lernsystem für eine Fremdsprache vorstellen, in dem die Software die korrekte Aussprache des fremdsprachigen Wortes vorliest. Im Internet ist heute schon sehr häufig die Funktion zu finden, sich z.b. einen Artikel vorlesen lassen zu können. Dienste, die mit sensiblen oder privaten Daten wie Bankkonten in Berührung kommen, können ebenfalls von der Anwendung eines Sprachsynthesesystems profitieren. Navigationssysteme können Steckenanweisungen während der Fahrt verbal übermitteln und machen das Kartenlesen überflüssig, was die Sicherheit des Autofahrens erhöht. 26

27 KAPITEL 3. SPRACHSYNTHESE 3.3. DER AUFBAU EINES SPRACHSYNTHESE-SYSTEMS Einsatz für behinderte Menschen Für blinde Menschen kann die Technik der synthetischen Sprache sehr wertvoll sein. Da sie keine visuellen Displays benutzen können, müssen sie auf eine Braillezeile zurückgreifen, oder eben eine Software einsetzen, die ihnen den Bildschirminhalt akustisch übermitteln kann. Auch Sprechbehinderte oder Taubstumme profitieren von einem TTS-System (T ext to Speech) und können so leichter mit anderen Menschen kommunizieren Einsatz als Kontrollwerkzeug Audiovisuelle Rückmeldungen von kritischen Systemen sind auf jeden Fall immer dann sehr wertvoll, wenn der agierende Mensch sich auf eine Tätigkeit konzentrieren muss und keine Zeit findet, Kontrollen durchzuführen. So wird es in zahlreichen Industriezweigen oder auch z.b. im Cockpit eines Flugzeugs Situationen geben, wo ein Feedback in Form von einem Sprachkommando sehr nützlich sein kann. 3.3 Der Aufbau eines Sprachsynthese-Systems Sprachsynthese-Systeme bestehen immer aus zwei Komponenten, sie werden häufig NLP und DSP genannt. Abbildung 3.2: Ein typischer Aufbau eines Sprachsynthesesystems NLP (Natural Language Processing) Unter NLP versteht man die Transformation von Text in Lautschrift und Prosodie- Beschreibung. Hier wird ein Text als Eingabe aufgefasst, alle Abkürzungen und Zahlen werden aufgelöst und durch Wörter ersetzt. Der so entstandene durchgängige Text wird nun in Lautschrift konvertiert und es wird versucht, durch zusätzliche Informationen den Rhythmus, die Intonation, die Lautdauer und weitere Parameter zu beschreiben. Hierbei wird versucht, den Sachverhalt zu bestimmen und die Betonung auf bestimmte Teile zu setzen, denn durch die Betonung wird das Verständnis erheblich bestimmt. 27

28 3.3. DER AUFBAU EINES SPRACHSYNTHESE-SYSTEMS KAPITEL 3. SPRACHSYNTHESE DSP (Digital Speech Processing) Die DSP Komponente besitzt die Aufgabe den phonetisch beschriebenen Text des NLP Moduls nun akustisch zu synthetisieren. Dieses DSP Modul arbeitet in der Regel mit einem der drei folgenden Hauptverfahren: Formant Synthese: Das Sprachsignal wird anhand physikalischer Modelle berechnet. Diese Technik ist sehr flexibel und hat geringste Ressourcen-Anforderungen. Dieses System benötigt sehr viele komplexe Regeln, welche die Laute genau beschreiben, in welchem Kontext sie vorkommen und wie die Übergänge zu anderen Lauten sind. Dieses Verfahren bringt jedoch einen Nachteil mit sich, die so produzierte Sprache klingt nicht sehr natürlich, wodurch die Akzeptanz eines solchen Systems sinkt. Diphon Synthese: Das Sprachsignal wird durch Verkettung von Diphonen (Nachbarlaut Kombinationen), die im Vorfeld aufgenommen wurden, erzeugt. Die Prosodie- Anpassung geschieht durch Signal-Manipulation. Die Diphon-Datenbank ist eine Sammlung von Diphonen von zerlegten und phonologisch ausgewogenen Testsätzen, die von einem Sprecher aufgenommen wurden. Eine Diphonsynthese ist somit automatisch personalisiert. Diese Technik benötigt ebenfalls sehr wenig Ressourcen und eignet sich damit auch für embedded Anwendungen, klingt jedoch ebenso wie die Formant Synthese nur wenig natürlich. Non-uniform unit selection: Die Idee von Non-uniform unit selection ist, die Datenbank so zu erweitern, dass ganze Lautketten und sogar ganze, häufig verwendete Wörter in der Datenbank auftauchen. Denn umso weniger Verkettungen benötigt werden, desto natürlicher klingt die Sprache. Es wird immer der längste vorhandene und prosodisch passende Teil genommen und mit dem nächsten verkettet. Falls kein großer Baustein vorhanden ist, wird auf einen kleineren zurückgegriffen und dabei über eine doppelte Kostenfunktion minimiert: die Stücke sollen gut aneinander passen und die Vorgaben der Ziel-Prosodie erfüllen. Aufgrund der sehr großen Datenbank war früher nur eine servergestützte Synthese möglich. Inzwischen ist es aber unter den kommerziellen Sprachsynthesesystemen zu einem Quasi-Standard geworden, da die so produzierte Sprache sehr natürlich klingt. 28

29 4 Software für Spracherkennung In der Betrachtung des Marktes der Spracherkennungssoftware kristallisieren sich vier erfolgreiche Systeme heraus: IBM ViaVoice basierende Systeme wie Philips FreeSpeech oder VoicePro von linguatec Dragon NaturallySpeaking Version 10 von der Firma Nuance Sphinx von der Carnegie Mellon University, Pittsburgh, Pennsylvania, USA Julius des Nagoya Institute of Technology, Nagoya, Japan, in Verbindung mit dem HTK Toolkit der Cambridge University, UK Sphinx und Julius sind plattformübergreifende Open-Source Lösungen, welche sich daher für meine Bachelorarbeit sehr gut eignen. Die beiden kommerziellen Systeme ViaVoice und Dragon NaturallySpeaking sind leider reine Microsoft Windows TM Lösungen, die nur mit erheblichen Aufwand unter Linux lauffähig werden, indem z.b. Microsoft Windows TM virtualisiert, oder wenn Wine, ein Windows TM -Emulator verwendet wird. 29

30 4.1. KOMMERZIELLE SYSTEME KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG 4.1 Kommerzielle Systeme IBM ViaVoice IBM ViaVoice wird schon seit den frühen 70er Jahren entwickelt. [IBMHistory] Schon damals war es das Ziel, eine Software zu entwickeln, die dem Anwender ermöglicht, Geräte mit der Sprache zu steuern. Erst 1984 wurde aus dem Forschungsprojekt bei IBM die erste Software für den Benutzer vorgestellt. Sie benötigte jedoch noch einen 4341 Mainframe Rechner. Abbildung 4.2: IBM 4341 Mainframe Rechner mit 233MHz Bereits wenige Jahre später wurde nicht mehr dieser raumfüllende Mainframe Rechner benötigt, jetzt konnte die Spracherkennung an jedem Personal Computer mit einer besonderen Hardware Adapter Karte durchgeführt werden. Auf dieser Adapter Karte war ein Mikrofoneingang und ein Chip für die Spracherkennung vorhanden. Mitte der 90er Jahre führte IBM die Software VoiceType für das kürzlich erschienene Microsoft Windows TM 95 und das hauseigene Betriebssystem OS/2 ein. Diese Software wurde bis in das Jahr 2005 weiterentwickelt, es wurden Versionen für Microsoft Windows TM, aber auch teilweise kostenpflichtige und proprietäre Versionen für Linux und Apples Mac OS X angeboten. IBM gab den Vertrieb von ViaVoice ab und veröffentlichte ein SDK (Software Development K it) für Entwickler. Dieses SDK erlaubte es, auf embedded Geräten, wie einem Navigationssystem oder einem Handy Spracherkennung durchzuführen. Linguatec und Philips haben auf ViaVoice aufgesetzt und eigene 30

31 KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG 4.1. KOMMERZIELLE SYSTEME Produkte auf den Markt gebracht. Aus ViaVoice ging jedoch leider nie eine aktuelle Spracherkennung für Linux hervor. Heute, im Jahr 2008, muss man, wenn man das Betriebssystem Linux einsetzt, entweder auf Sphinx der Carnegie Mellon University oder auf das HTK Toolkit der Cambridge University zurückgreifen Philips FreeSpeech und Philips SpeechMagic Philips FreeSpeech ist eine umfangreiche Software im Bereich der Spracherkennung. Sie unterstützt viele Sprachen und ist zudem mehrbenutzerfähig. Die Software ermöglicht nach einem kurzem Training eine genaue Spracherkennung. Des weiteren ist in diese Spracherkennungssoftware ein Korrekturprogramm integriert, welches das gleichzeitige Korrigieren eines gerade diktierten Textes möglich macht, indem man mit speziellen Schlüsselwörtern das Programm steuert. Die primäre Zielgruppe dieser Software richtet sich vorallem an den Management-Sektor großer Firmen Dragon NaturallySpeaking Dragon NaturallySpeaking von der Firma Nuance, ist das meist verkaufte Spracherkennungsprogramm auf dem Markt. Die Beliebtheit hat mehrere Gründe, Nuance hat durch Zukäufe, beispielsweise von der Firma ScanSoft, eine Monopolstellung in diesem Marktsektor erreicht. Dragon NaturallySpeaking funktioniert zudem sehr gut, laut Spezifikation hat das Programm eine Erkennungsrate von bis zu 99%, was eine sehr gut trainierte Datenbank voraus setzt. Die Spracherkennungssoftware von Nuance wird hauptsächlich von Rechtsanwälten und Medizinern verwendet, da Nunace den Wortschatz auf diese Zielgruppe hin optimiert hat. Ein besonderes Feature ist die Möglichkeit, während des Diktierens den Satzbau zu ändern und so den schon gesprochenen Satz zu korrigieren. Es lässt sich mit diesem Programm jedoch nicht nur diktieren, man hat zudem die Möglichkeit, den Computer selbst durch Sprache zu steuern. Es lassen sich bestimmte Befehle anlernen, die dann bei erfolgreicher Spracherkennung ausgeführt werden, so kann kinderleicht z.b. der Web-Browser mit der Stimme 31

32 4.1. KOMMERZIELLE SYSTEME KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG navigiert werden. Das Programm ist leider jedoch nicht unter Linux lauffähig, es setzt zwingend ein aktuelles Windows TM Betriebssystem vorraus. Auch die 1GB Arbeitsspeicher, welche in den benötigten Systemressourcen genannt werden, lassen vermuten, dass das Programm sehr ressourcenintensiv arbeitet. 32

33 KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG 4.2. OPEN-SOURCE SYSTEME 4.2 Open-Source Systeme CMU Sphinx Sphinx ist ein Open-Source Softwarepaket der renommierten, amerikanischen Carnegie Mellon University, welches mit der BSD Open-Source Lizenz vertrieben, oder besser gesagt angeboten wird. Diese Lizenz besagt, dass jeder die Software benutzen und sogar verkaufen darf, es muss jedoch erkenntlich gemacht werden, dass es sich um eine Software der CMU handelt. Die Sphinx Software ist ein aus einem DARPA (Defense Advanced Research Projects Agency) finanzierten Projekt hervorgegangen. Aktuell wird das Projekt an der CMU weiterentwickelt und erhält z.b. von SUN Microsystems Unterstützung. [LHR90] Im Grunde ist Sphinx ein sprecherunabhängiges System zur Spracherkennung mit großem Vokabular, bei dem HMM (Hidden Markov Modelle) zum Einsatz kommen. Eine Besonderheit ist die Möglichkeit zur Erstellung eigener Sprachmodelle. So ist es für den Anwender möglich, ein persönliches Sprach- und Akustikmodel für seine individuelle Sprache und auch für seine individuelle Stimme zu erstellen. Derzeit werden zwei unterschiedliche Versionen von Sphinx entwickelt: Sphinx 3 Diese Version ist für eine höchstmögliche Erkennungsrate ausgelegt. Allerdings sind die verwendeten Algorithmen so komplex, dass die Erkennung, auch mit aktueller Hardware, nicht in Echtzeit erfolgen kann. Sphinx 4 Aufgrund der enormen Hardware Anforderungen und der entstandenen Unflexibilität von Sphinx3, wurde die Software in der Version 4 komplett redesigned und in Java neu geschrieben. Aber auch Sphinx4 ist sehr Ressourcen raubend, einfache Demo Anwendungen benötigen bereits eine Java Virtual Machine mit 1GB Speicher. Sphinx4 ist aber auch sehr modular aufgebaut, so dass sich Plugins zur Laufzeit einbinden und auch wieder lösen lassen. Durch die Modularität kann man in Zukunft sehr flexibel auf Neuerungen reagieren. [WLK+04] 33

34 4.2. OPEN-SOURCE SYSTEME KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG Julius und das HTK Toolkit Julius Julius ist eine LVCSR(Large V ocabulary Continuous Speech Recognition)-Engine für Diktate mit einem großen Vokabular. Julius ist dafür ausgelegt, aus einem sehr großen Vokabular Sprache zu erkennen, dabei nicht nur einzelne, sondern auch zusammenhängende Wörter, die zu einem Satz geformt sind. Dies ist ein wichtiger Aspekt, denn so schafft es Julius, die Erkennungsrate zu steigern. Denn durch vorgegebene Satzstrukturen können die möglichen Treffer reduziert werden. Ein großes Vokabular bedeutet hier, Wörter. Julius schafft es, durch ein 2-schichtiges System in Echtzeit Sprache aus solch einem großen Vokabular zu erkennen. Julius wird seit 1997 ständig weiterentwickelt und von vielen namhaften Organisationen unterstützt. Ursprünglich wurde die Software für die Japanische Sprache entwickelt, es hat sich aber gezeigt, dass sich die Software durch ihre vielfältige Unterstützung von Standards, wie HMM Modellen, DFA Grammatiken und N-Gram Modellen auch sehr gut für anders aufgebaute Sprachen eignet. Mit Julius ist es also möglich, anhand eines vorhandenen Sprachmodells die Sprache zu erkennen und das mit unglaublicher Geschwindigkeit und Präzision. [KLTI+04] Wie entsteht jedoch solch ein benötigtes Sprachmodell? Dies geschieht mit Hilfe einer Sammlung von Werkzeugen für Hidden Markov Modelle dem HTK Toolkit. HTK Toolkit Das HTK Toolkit ist eine Sammlung von Werkzeugen zum Erstellen und Modifizieren von HMMs. Es kann nicht nur dazu benutzt werden, um Sprachmodelle zur Spracherkennung anzufertigen, sondern HTK ist in der Lage jegliche Art von Modellen zur Mustererkennung, so wie auch die Spracherkennung eine ist, zu erstellen. So wird das HTK Toolkit z.b. auch dazu eingesetzt, eine DNA- Sequenzanalyse durchzuführen. Das HTK Toolkit erstellt hier in unserem Fall das Sprachmodell. Eingabe-Daten sind zum einen die Sprachaufnahmen für die Referenzmuster, zweitens benötigt HTK eine Liste aller in den Mustern vorkommender Phoneme. Als drittes 34

35 KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG 4.2. OPEN-SOURCE SYSTEME braucht das HTK Toolkit als Input eine Zuordnungstabelle der jeweiligen Wörtern und Phonemen zu den entsprechenden Sprachaufnahmen. Intern erstellt das HTK Toolkit noch eine Liste der Triphone. [Youn94] Beispieldaten sind im Anhang zu finden. Hidden Markov Modelle In diesem Abschnitt möchte ich kurz auf die eingesetzte Technik der Hidden Markov Modelle eingehen und diese anhand eines Beispiels darstellen. Das Hidden Markov Model (kurz: HMM), welches nach dem russischen Mathematiker Andrej Andrejewitsch Markov benannt, ist eine Darstellungsform, ein statistisches Modell zu repräsentieren. Dieses Modell beschreibt einen der verbreitetsten und auch sichersten Suchalgorithmen. Der Nachteil bei diesem Algorithmus ist jedoch der hohe Rechenaufwand. Für einen kompletten Durchlauf eines Wortes mit n Phonemen und der Länge T würde der Rechenaufwand bei 2T 2 n liegen. Da selbst bei einer kleinen Anzahl von Werten enorme Rechenzeit benötigt wird, bricht man das Verfahren vorzeitig ab und setzt spezielle Optimierungsalgorithmen (Viterbi-Algorithmus, Forward-Backward-Algorithmus, Baum-Welch-Optimierungs-Regeln) ein, um die Verschlechterung des Ergebnisses durch vorzeitigen Abbruch zu eliminieren. Dadurch wird aber eine Echtzeitberechnung erst möglich. 35

36 4.2. OPEN-SOURCE SYSTEME KAPITEL 4. SOFTWARE FÜR SPRACHERKENNUNG In der Spracherkennung wird das gesuchte Wort als eine Markov Kette beschrieben. Jedes Phonem wird als ein Zustand in der Markov-Kette dargestellt. Abbildung 4.7: Beispiel einer Markov Kette In diesem Beispiel sind die Phoneme O, F, E, N, T in einer Markov-Kette dargestellt. Die gerichteten Kanten x1...e12 beschreiben die Lautübergänge von dem einen zum nächsten Phonem. In Abbildung 4.7 sind nur für dieses Beispiel relevante Kanten abgebildet, denn eigentlich besitzt jedes Phonem Kanten zu jedem Phonem. Die Endzustände y1...y5 beschreiben das erkannte Wort. In dem Beispiel in der Abbildung 4.7 kann das erkannte Wort z.b. Ofen sein, falls der Endzustand y4 ist, oder es kann auch das Wort Oft sein, falls der Endzustand y5 ist. Es könnte passieren, dass der Sprecher das e nicht ausspricht, also Ofn sagt, so wie es umgangssprachlich sehr gern gemacht wird. Das Modell würde trotzdem den richtigen Endzustand y4 für das das Wort Ofen erreichen. Jeder Zustand besitzt auch eine Kante auf sich selbst, so können lang ausgesprochene Phoneme auch erkannt werden. Wenn der Sprecher das E in die Länge ziehen würde, welches Ofen zu Ofe:n macht, dann wird auch diese Situation ebenfalls durch dieses Modell abgedeckt und das richtige Wort Ofen erkannt. Jeder Zustand hat Wahrscheinlichkeiten, in den nächsten Zustand überzugehen. Dabei sind diese gewichtet, z.b. ist die Wahrscheinlichkeit, dass auf ein e ein r folgt sehr viel höher, als dass auf ein s ein r folgt. 36

37 5 Software für Sprachsynthese In dieser Arbeit wird das Verwenden des Betriebssystems Linux sowie der Open-Source Software angestrebt, weshalb in folgender Marktübersicht nur wenig auf proprietäre und oder auch kommerzielle Software eingegangen wird. In diesem Sektor gibt es für Windows TM wesentlich mehr Software, freie und gute Produkte für Linux zu finden, ist leider nicht so einfach. 5.1 Kommerzielle Systeme AT&T Natural Voices SDK Natural Voices TM von AT&T ist ein Text-zu-Sprache System. Entstanden ist dieses System aus einem Forschungsprojekt der AT&T Inc. Forschungsabteilung. Die Software wirbt damit, das beste Text-zu-Sprache System mit der verständlichsten Sprache zu sein. Leider ist das SDK(Software Development K it) nur kommerziell, für $300 zu beziehen FonixTalk 6.1 SDK FonixTalk ist ein mehrsprachiges Text-zu-Sprache System, welches kommerziell von fonix vertrieben wird. Glücklicherweise ist aber ein SDK für Linux verfügbar und könnte somit ideal für das Projekt der Bachelorarbeit verwendet werden. FonixTalk erzeugt sehr natürlich klingende Sprache und das äußerst ressourcenschonend, sodass FonixTalk auch auf embedded Geräten laufen kann, was für dieses Projekt sehr nützlich ist. Die Sprachausgabe kann sehr genau bestimmt werden, es gibt zahlreiche Parameter, z.b. für Pausen oder Emotionen, 37

38 5.2. OPEN-SOURCE SYSTEME KAPITEL 5. SOFTWARE FÜR SPRACHSYNTHESE ebenso können auch Fremdwörter in der richtigen Sprache ausgegeben werden, da das System selbsändig zwischen verschiedenen Sprachen wechseln kann. 5.2 Open-Source Systeme MBROLA Ein Beispiel für Open-Source Software ist MBROLA(Multi Band Resynthesis Overlap and Add), ein Synthesizer für mehr als 20 Sprachen. Entwickelt wird das System an der Universität in Mons, Belgien. Die Software ist proprietär,wird jedoch kostenlos für nicht kommerzielle Zwecke für sehr viele, auch exotische Plattformen angeboten. Die Technik hinter MBROLA besteht aus der Verkettung von Diphonen. Jedoch ist MBROLA nicht ein Text-zu-Sprache System, denn es wird ein Textvorverarbeiter benötigt. Der Input von MBROLA ist eine Liste von Phonemen mit zusätzlichen Informationen zur Länge der einzelnen Phoneme und eine Beschreibung der Tonhöhe der Phoneme. Daraus generiert das System eine gut klingende Sprachausgabe BOSS - Bonn Open Synthesis System Das Bonn Open Synthesis System (BOSS) ist ein freies Open-Source Sprachsynthese-System. Das BOSS-System basiert auf einer Client-Server-Architektur, die von Entwicklern und Forschern verwendet werden kann, um eigene Text- To-Speech- oder Content-To-Speech-Systeme zu entwickeln. Das BOSS-System verwendet den Non-Uniform-Unit-Selection-Ansatz und ist so in der Lage, eine gute Sprachqualität mit hoher Natürlichkeit zu erzielen FreeTTS FreeTTS ist eine in Java TM geschriebene Programmbibliothek, die zur Sprachsynthese dient. Wenn jemand eine Sprachausgabe in sein Java TM Programm integrieren möchte, ist FreeTTS die erste Wahl. Auch FreeTTS verfolgt den 38

39 KAPITEL 5. SOFTWARE FÜR SPRACHSYNTHESE 5.2. OPEN-SOURCE SYSTEME Ansatz der Diphon Synthese. Da FreeTTS aus dem FestVox Projekt entstand, sind die daraus verfügbaren Sprachen auch hier verwendbar, ebenso können die MBROLA Sprachen verwendet werden Festival und Festival Lite (Flite) Festival Speech Synthesis Systems wurde in einem Forschungslabor der Edinburgh University Ende der 90er Jahre entwickelt. Festival ist nicht nur ein Text-zu-Sprache Synthesizer auf Basis von Diphonen, die durch HTS(Hidden Markov Model Based Synthesis) zusammengesetzt werden, sondern auch eine Sammlung von Werkzeugen, um ein eigenes Sprachpaket zu erstellen. So könnte der Computer mit der eigenen Sprache sprechen. Leider ist trotz dieser Möglichkeit keine frei verfügbare deutsche Sprache für Festival verfügbar. Für Festival gibt es eine mächtige C++ Bibliothek und die Möglichkeit, mittels der Scriptsprache Scheme während Laufzeit das Stimmbild zu beeinflussen. Flite ist, wie der Name sagt eine light-version des großen Bruders Festival. Flite ist sehr schneller, reiner Text-zu-Sprache Synthesierer. Flite kann sogar auf embedded Geräten, wie einem Palm, Sprache in Echtzeit synthesieren. In Kombination mit HTS (HMM-based Speech Synthesis System) ist Flite in der Lage, eine mit einem Hidden Markov Modell trainierte Sprachdatenbank zu synthesieren und liefert so eine sehr gute Qualität espeak espeak, der Nachfolger der schon sehr früh entwickelten Software speak, ist ein Open Source Projekt des Software Entwicklers Jonathan Duddington. espeak ist ein sehr kleines Programm für Sprachsynthese und kommt mit nur ca. 700Kb Speicher aus. Das Programm nutzt keine Diphon-Synthese, die auf einer Datenbank vorhandener Samples basiert, sondern erzeugt das Signal rein durch Signalmodellierung, ähnlich einer Formanten-Synthese. Aus diesem Grund hört sich espeak nicht so natürlich und flüssig an, es ist jedoch durchaus klar und verständlich. espeak stellt zudem eine Bibliothek für C und C++ bereit, um espeak in die eigene Software mit einzubauen. Die API dieser Bibliothek ist sehr einfach gehalten, trotzdem lassen sich verschiedene Parameter, wie die Sprache oder auch die Sprechgeschwindigkeit einstellen. 39

40 5.2. OPEN-SOURCE SYSTEME KAPITEL 5. SOFTWARE FÜR SPRACHSYNTHESE 40

41 6 Das Sprachmodell 6.1 Einleitung Ein Spracherkennungssystem analysiert den Sprachinput, indem es ihn mit dem Sprachmodell vergleicht. Um beste Ergebnisse zu erhalten, sollte das Sprachmodell eine möglichst genaue Repräsentation der menschlichen Stimme darstellen. Ein gutes Sprachmodell in Verbindung mit einer schlechten Software erzielt trotzdem weitaus bessere Ergebnisse, als ein schlechtes Sprachmodell mit guter Software. Aus diesem Grund sollte natürlich dafür gesorgt werden, dass das Sprachmodell qualitativ möglichst gut ist. Ein Sprachmodell besteht aus einer Zusammenstellung mehrerer Dateien. Im folgenden wird ein Überblick der Elemente gegeben, aus denen sich die Daten der Sprachmodells zusammensetzen. Ziel des Sprachmodells ist die möglichst genaue Repräsentation der möglichen Satz-Konstrukte auf Laut-Ebene. Wie bereits im Abschitt 2.5 (Mustervergleich) dargestellt, basiert die Spracherkennung auf einer Statistikrechnung. Diese Statistikrechnung vergleicht den aktuellen Input mit einem Set an Daten - dem Sprachmodell. 6.2 Lautschrift Ein erster Schritt für ein Sprachmodell kann die Bestimmung der Lautschrift sein, die die Daten der Transkription liefert. Mit der Zeit haben sich unterschiedliche Lautschriftsysteme entwickelt, mit dem Ziel, die Aussprache von Lauten möglichst exakt zu beschreiben. Lautschriften spielen besonders beim Erlernen von Fremdsprachen eine große Rolle, aber auch hier in der Computerlinguistik und der Phonetik dienen diese Lautschriftsysteme zum detailierten Beschreiben der exakten Aussprache. Es gibt unterschiedliche Lautschriftsysteme. Weltweit wird die sogenannte IPA 41

42 6.2. LAUTSCHRIFT KAPITEL 6. DAS SPRACHMODELL (International Phonetic Alphabet) Notation eingesetzt. Die IPA-Zeichentabelle nutzt Buchstaben des lateinischen und griechischen Alphabets, teilweise in abgewandelter Form und andere Symbole für weitere Aussprachedetails. Jedes Zeichen bezeichnet dabei einen Laut oder beschreibt einen bereits angegebenen Laut näher. So finden sich für den Buchstaben A mehrere Lautschriftzeichen, die jeweils einen anderen phonetischen Charakter haben: a offenes, kurzes a, Beispiel Kamm [k h am] 5 dumpfes, etwas helles a, zwischen a und ae, Beispiel besser ["bes5] A dunkles, langes a, Beispiel Bad [bat] 6 dunkles, gerundetes a, Beispiel engl. flop [fl6p] æ offenes, etwas hells a zwischen a und ä, Beispiel engl. axe [æks] ã nasaliertes a, Beispiel Orange [o"rã:z@] 2 dunkles, ungerundetes a, Beispiel engl. butter [b2t Unter den Symbolen bedeutet z.b. das Zeichen :, dass das vorangestellte Zeichen lang ausgesprochen wird. Die Sonderzeichen dieses IPA-Alphabets sind in dem Unicode-Zeichensatz enthalten. Dies ist ein internationaler Standard für jedes sinntragende Schriftzeichen. Alle Schrift- oder auch andere Zeichen sind mit UTF-8 codiert. Dies ist die am weitesten verbreitete Methode, Unicode-Schriftzeichen zu speichern. Die IPA-Notation wird vor allem in der Erstellung und Archivierung von Druckerzeugnissen verwendet. Das HTK Toolkit und somit auch Julius arbeiten aber der ASCII Codierung. Zwischen 1987 und 1989 wurde SAMPA(Speech Assessment Methods Phonetic Alphabet) entwickelt, um die phonemischen Transkriptionen der offiziellen Sprachen der Europäischen Gemeinschaft elektronisch übermitteln und verarbeiten zu können. Das SAMPA Alphabet wurde von dem britischen Phonetiker John C. Wells als Auszug des IPA maschinenlesbar und tastaturfreundlich codiert und kann per 7-Bit ASCII dargestellt werden veröffentlichte John C. Wells die Erweiterung X-SAMPA (Extendet Speech Assessment Methods Phonetic Alphabet), in der alle IPA-Zeichen dargestellt werden können. X-SAMPA wird seither zunehmend weltweit verwendet, vor allem auch, für Spracheingabe- und Sprachausgabe-Systeme sowie für lexikographische Datenbanken. 42

43 KAPITEL 6. DAS SPRACHMODELL 6.3. PHONEM Der Unterschied von IPA zu X-SAMPA wird an dem Wort Sprache deutlich: In der IPA Notation würde so geschrieben werden: S p ö a: In der X-SAMPA Notation folgendermaßen: S p r a: Wenn erforderlich, gibt auch Methoden, diese unterschiedlichen Zeichen von IPA und X-SAMPA jeweils in das andere Format zu konvertieren. [XSP2IPA], [Wiki]: SAMPA, X-SAMPA, IPA, Liste_der_IPA_Zeichen 6.3 Phonem So wie der Buchstabe als Zeichen im Schrifttext steht, so werden in der Lautschrift die einzelnen Phoneme dargestellt. Ein Ziel der Phonologie ist, ein Inventar der Phoneme und ihrer Varianten einer Sprache zu erstellen. Definiert wird das Phonem als die kleinste, bedeutungsunterscheidende Einheit der Sprache, es gilt als Abstraktion einer konkreten Lautäußerung. Die Realisierung des Phonems, also das Hörbarmachen, wird Allophon genannt. Für manche Phoneme gibt es Regeln, die durch die Abhängigkeit der Lautumgebung bestimmen, mit welchem Allophon das Phonem hörbar gemacht wird. Beispiel: Das Schriftzeichen ch wird je nach Laut-Kontext mit [C] oder [x] angegeben. Als Regel: [x] steht nur nach /a/, /o/, /u/, /au/. Zwei Wörter, die sich nur in einem Phonem unterscheiden, nennt man ein Minimalpaar (Beispiel: Tanne / Kanne oder Miete / Mine). Phoneme werden außerdem eingeteilt in Merkmale wie konsonantisch oder sonorantisch, sie unterscheiden sich in stimmhaften und aspirierten Merkmalen. Verschiede Eigenschaften der Phoneme werden auch durch Merkmale aus der Akustik und der Artikulation bezeichnet. Die Stellung oder die Bewegung der Sprachorgane bestimmt die artikulatorischen Eigenschaften der Phoneme. Man unterscheidet: Zungenstellung (vorn, neutral, hinten) Mundöffnung (offen, halboffen, geschlossen) Lippenrundung (gerundet, ungerundet) Nasalität (nasal, oral) Artikulationsort (labial, inderdental, dental, alveolar, palatal, velar, uvular, laryngal) Artikulationsart (Verschluss, Verschluss mit Reibung, Reibung, nasal, lateral, Schwingung) 43

44 6.3. PHONEM KAPITEL 6. DAS SPRACHMODELL Stimmbeteiligung (stimmhaft, stimmlos) Quantität (kurz, lang) Aus der Formantenstruktur der komlexen Schallwellen ergibt sich eine bestimmte akustische Phonem-Eigenschaft. (Als Formant wird in der Akustik die akustische Energie in einem bestimmten Frqeuenzbereich bezeichnet.) Das Phonem /u/ kennzeichnet sich z.b. durch einen niedrigen ersten und einen niedrigen zweiten Formanten. Wie aus der Abbildung 6.1 zu entnehmen ist, hat das Phonem /u/ durch die beiden Formantenmerkmale einen dünnen und dunklen Klang. [FIGGEUDO] Abbildung 6.1: Darstellung zweier Formanten für die Bestimmung akustischer Phonemeigenschaften. Aus [FIGGEUDO] 44

45 KAPITEL 6. DAS SPRACHMODELL 6.4. BI- UND TRIPHONE 6.4 Bi- und Triphone Da ein Sprachmodell, das nur aus einzelnen Phonemen besteh, noch sehr ungenau ist, verwendet man Phonemkombinationen. Jedes Phonem wird je nach vor- und nachfolgendem Phonem anders ausgesprochen. (Das Phonem /m/ im Wort Mama klinkt am Anfang anders als in der Mitte.) Diese verknüpften Informationen werden als Bi- und Triphone auch in unserem Sprachmodell verwendet. Als Beispiel wieder das Wort Sprache, nun als Triphonkombination in X-SAMPA Lautschrift: +-S-p, S-p-r, p-r-a:, r-a:-x, Durch die fiktiven Phoneme + und * an Wortanfang oder -ende wird jedes Phonem zu einem Triphon, einer Kombination aus 3 Phonemen. Wie man erkennen kann, wird diese Transkription zwar komplexer, versieht aber jeden Laut mit Kontextinformationen. Ein r-a:-x Triphon repräsentiert trotzdem nur den Laut a: und nicht r a: x. Durch die erhöhte Laut-Differenzierung steigert wird die Erkennungsrate erheblich gesteigert. All diese Informationen werden in dem HMM (Hidden Markov Modell) gespeichert. Da theoretisch jedes Phonem an jedes gereiht werden kann, wären extrem viele Trainingsdaten notwendig, um alle Kombinationen verlässlich abzudecken. Deshalb werden Phoneme in Gruppen zusammengefasst. Beispielsweise können alle nasalen Phoneme gruppiert werden. Dies nennt man clustering. Dabei werden die Gruppen der Phoneme von dem HTK Tool HHed zusammengefasst und geclustert. [YEG+06] 6.5 Prosodie Außer den Phonemen ist Prosodie (griechisch: das Hinzugesungene) maßgeblich für die Spracherkennung. Die Prosodie stellt die spezifischen sprachlichen Eigenschaften wie der Akzent im Silben-, Wort-, Phrasen- und Satzakzenten mit Unterschieden in Lautstärke und / oder Tonhöhe. Auch Intonation, Sprechtempo, Sprechrythmus und -pausen werden durch die Prosodie unterschieden. Die Schriftauszeichnungen wie fett, kursiv, Schriftgröße geben auf ihre Art prosodische Merkmale wieder. So korreliert die Interpunktion mit dem Sprecherythmus und den Pausen. Z.B. werden Fragezeichen und Rufzeichen so durch die Intonation markiert, Pausen korrelierern mit Komma oder Punkt. 45

46 6.5. PROSODIE KAPITEL 6. DAS SPRACHMODELL Die Prosodie beinhaltet ebenfalls die Klangfarbe verschiedener Emotionen, sie kann personalisierte Merkmale wie Herkunft, Geschlecht, Alter unterscheiden. Mehrdeutigkeiten können ausgelöst werden durch bestimmte Akzentuierung, auch wichtige Informationen werden dadurch hervorgehoben. Prosodische Merkmale haben als Teil der Sprache auch akustisch messbare Eigenschaften diese können zu Merkmalen für eine Mustererkennung weiterverarbeitet werden. Eine durch die Sprachsynthese erzeugte Stimme kann nur natürlich klingen, wenn sie auch prosodische Merkmale beinhaltet. 46

47 KAPITEL 6. DAS SPRACHMODELL 6.6. AKUSTIKMODELL 6.6 Akustikmodell Das Akustikmodell repräsentiert für die Spracherkennungssoftware die Stimme des Menschen. Es stellt den individuellen Klang der aufgenommenen Stimme in den einzelnen Laute dar. Das Akustikmodell wird aus Sprachaufnahmen erstellt, indem es in ein HMM Modell konvertiert wird. Dieser Vorgang erfordert mehrere Schritte. Angefangen bei der Filterung der Sprache, wobei die akustischen Grenzen der Äußerung bestimmt werden und eine Konvertierung in eine spektrale Darstellung der Aufnahme durchgeführt wird. In einem nächsten Schritt werden die Merkmale (features) extrahiert und in sogennanten MFCC (Mel F requency Cepstral Coefficients) gespeichert. Zum Schluss werden die so gewonnen Daten in ein HMM Modell konvertiert. Als Beispiel hier das Phonem a: aus einem HMM Modell. ~h " a : " <BEGINHMM> <NUMSTATES> 5 <STATE> 2 ~s "ST_a : _2_1 " <STATE> 3 ~s "ST_a : _3_1 " <STATE> 4 ~s "ST_a : _4_1 " <TRANSP> e e e e e e e e e e e e e e e e e e e e e e e e e+00 <ENDHMM> Für das Sprachmodell wird eine Liste aller Sprachaufnahmen und den darin enthaltenen Worten in der Datei prompts gespeichert. Das Programm selbst speichert die Sprachaufnahmen mit dem ganzen, absoluten Pfad und den darin enthaltenen Wörtern in der Datei user.samples. 47

48 6.7. WÖRTERBUCH KAPITEL 6. DAS SPRACHMODELL 6.7 Wörterbuch Durch Akustikmodell wird das Spracherkennungssystem an eine bestimmte Stimme gebunden. Im weiteren geht es um die Auswahl eines Aussprachewörterbuchs. Im Rahmen dieses Projektes wurde das BOMP (kurz für Bonn Machine- Readable Pronunciation Dictionary ) Wörterbuch der Universität Bonn verwendet. Das BOMP ist ein Aussprachewörterbuch für sehr viele deutsche Wörter, insgesamt ca Das Wörterbuch verwendet die X-SAMPA-Notation, so wie wir es für das HTK Toolkit benötigen. Da das Wörterbuch darf nicht verbreitet werden, muss man es per bei der Universität Bonn anfragen, und in der Regel erhält man einen Downloadlink. [BOMP] Das BOMP Wörterbuch enthält neben dem deutschen Wort und der Übersetzung in die Lautschrift für die Aussprache die Kategorie des Wortes, den sogenannten Terminal des Wortes. Diese Kategorie gibt an, um welche Wortart es sich handelt, z.b. NOM für Substantiv (Nomen) oder VRB für ein Verb. Die Datei ist wie eine Tabelle aufgebaut und wird auch so gespeichert. Die einzelnen Spalten werden mit einem Tabulator (\t) getrennt. Wort Kategorie Aussprache Sprache NOM Spra:x@ Sprachebene NOM Spra:x,?e:b@n@ Sprachen NOM Spra:x@n Sprachfamilie NOM Spra:xfa,mi:li@ Sprachfamilien NOM Spra:xfa,mi:li@n Sprachlosigkeit NOM Spra:x,lo:zICkaIt Sprachlosigkeiten NOM Spra:x,lo:zICkaIt@n Tabelle 6.1: Aufbau des BOMP Wörterbuchs Ziel dieser Arbeit ist, es dem Benutzer zu erleichtern, das sehr komplex aufgebaute Sprachmodell selbst zu erstellen. Das Spracherkennungssystem erkennt eine Auswahl an Wörtern, alle neuen Wort müssen angelernt werden. Das BOMP Wörterbuch wird nun dazu verwendet, eine Liste an Übersetzungen in die X-SAMPA Lautschrift bereit zu halten. Nun kann der Benutzer auch ohne die Kenntnis der X-SAMPA Lautschrift weitere Wörter auswählen und zum Sprachmodell hinzufügen. Die gewählten Wörter werden in der Datei model.lexicon und in der Datei user.words gespeichert. 48

49 KAPITEL 6. DAS SPRACHMODELL 6.8. JULIUS VOKABULAR 6.8 Julius Vokabular Die vom Benutzer aus dem Aussprachewörterbuch gewählten Wörter, oder eigens definierte Wörter werden in einem speziellen Format für Julius bzw HTK gespeichert. Das Julius Vokabular wird nicht in Tabellenform gespeichert, vielmehr wird hier eine Liste mit Abschnitten verwendet. Jeder Abschnitt ist durch die Kategorie, bzw Terminal mit führendem % gekennzeichnet, die Sortierung spielt dabei keine Rolle. % NOM Sprache Spra:x@ Sprachfamilie Spra:xfa,mi:li@ % VRB sprechen SprE C@n zeigen tsai g@n Tabelle 6.2: Aufbau einer Julius Vokabeldefinition 6.9 Julius Grammatik Die Julius Grammatik definiert mögliche Wortfolgen in Form ihrer Kategorie. S:NS_B: Kategorie Kategorie NS_E Tabelle 6.3: Aufbau einer Julius Grammatikdefinition Jeder Satz wird mit S: eingeleitet. NS_B und NS_B sind zusätzliche Satzstart- und Satzstop-Kennzeichnungen. So wird aus dem Satz Das ist ein Test folgende Julius Grammatikdefinition: S:NS_B ART:PRO VRB ART:NUM:QAV:TME NOM NS_E Tabelle 6.4: Beispiel einer Julius Grammatik Definition Mehrdeutige Wörter sind durch ein : getrennt. So wird deutlich, dass das Wort Das sowohl ein Artikel (ART), als auch ein Pronomen (PRO) sein kann. Die Funktionsweise dieser Grammatikverwaltung ist im Abschnitt GrammarManager erklärt. 49

50 6.10. TRAININGSDATEN KAPITEL 6. DAS SPRACHMODELL 6.10 Trainingsdaten Die Trainingsdaten sind RIFF-Wave Aufnahmen mit einer Samplerate von 16kHz und einer Bitrate von 16Bit. Diese Sprachaufnahmen bestimmen die Qualität des Sprachmodells. Umso besser diese Aufnahmen sind, desto besser funktioniert die Spracherkennung. Es sollten jegliche Hintergrundgeräusche vermieden werden, jede Art von Störung wie z.b. ein vorbeifahrendes Auto bei offenem Fenster, sollten nicht in diesen Aufnahmen vorkommen. Auch Hall ist nicht erwünscht, die Aufnahmen klingen dann nicht mehr klar und natürlich, und dies hat zur Folge, dass es die Erkennungsrate des Programms verschlechtert. Auch wenn der Hall in den Aufnahmen nicht zu hören ist, ist er trotzdem vorhanden. Hall entsteht, wenn die Schallwellen von glatten Flächen zurückgeworfen werden. Aus diesem Grund sollte darauf geachtet werden, dass alle großen und glatten Flächen im Raum reduziert werden. Hilfsmittel hierfür sind Teppiche, Vorhänge für die Fenster, die ebenfalls sehr viel Hall erzeugen, und Möbel oder Pflanzen. In jedem Fall muss für eine schallabsorbierende Oberfläche gesort werden. Jedoch nicht nur die Räumlichkeit, sondern auch das Mikrofon spielt eine sehr große Rolle. Bei Mikrofonen unterscheidet man zwischen gerichteten und ungerichteten Mikrofonen. Die Richtcharakteristik spielt vor allem bei den Hintergrundgeräuschen eine wichtige Rolle. Ungerichtete Mikrofone weisen eine Kugelcharakteristik auf. Das heißt, sie nehmen den Schall von allen Seiten gleich stark auf. Nebengeräusche werden gleichwertig in die Aufnahme mit aufgenommen, weshalb diese Mikrofone in der professionellen Audiotechnik wenig verwendet werden. Das Richtmikrofon ist ein Mikrofontyp, der Schall aus einer gewissen Richtung viel stärker aufnimmt als Schall aus allen anderen Richtungen. So kann gewährleistet werden, dass in einer Sprachaufnahme der Sprecher am besten zu hören ist. 50 Abbildung 6.2: Ungerichtetes und gerichtetes Mikrofon

51 KAPITEL 6. DAS SPRACHMODELL TRAININGSDATEN Sennheiser Headset Um nun selbst hochqualitative Sprachaufnahmen durchführen zu können und um auch in Zukunft die Spracherkennung am Roboter machen zu können wurde ein passendes Mikrofon gesucht. Die Eigenschaften dieses gesuchten Mikrofons sollten sein, dass es eine gerichtete Charakteristik aufweisen soll, so dass nur wenig Nebengeräusche zu hören sind. Um nun auch gleichzeitig die Sprachausgabe hören zu können schien es sinnvoll, ein Headset zu benutzen. In einem Headset sind Mikrofon und Kopfhörer kombiniert und durch die Form, die ein Headset mit sich bringt, ist das Mikrofon sehr dicht vor dem Mund positioniert und somit weist es ein wenig den Charakter eines gerichteten Mikrofons auf. Sennheiser ist ein Produzent von professioneller Audiotechnik wie Mikrofonen und Kopfhörer. Durch die langjährige Forschung und Entwicklung von Mikrofonen kann man sich auf die Zuverlässigkeit und die Qualität dieser Produkte verlassen, dies wurde mit dem Kauf eines Headsets bestätigt. Abbildung 6.4: Verwendetes Sennheiser Mikrofon, PC136 51

52 6.10. TRAININGSDATEN KAPITEL 6. DAS SPRACHMODELL 52

53 7 Eingesetzte Komponenten 7.1 C++ C++ ist eine höhere Programmiersprache. Da das Team des Labors der Hochschule ebenfalls sehr viele Anwendungen mit dieser Sprache entwickelt und ich bereits Erfahrung mit C++ gesammelt habe, entschloss ich mich das Programm mit dieser Sprache zu schreiben. Es gibt jedoch einige weitere Gründe sich für C++ zu entscheiden, es ist eine sehr weit verbreitete, ausgereifte Programmiersprache mit sehr wenig Overhead. Die Objektorientiertheit dieser Sprache macht sie zudem sehr Modular 7.2 Qt Qt ist ein Toolkit zur Entwicklung mit der Sprache C++. Es hat eine sehr simple und konstante API und deckt sehr viele Bereiche ab. Der Hauptvorteil liegt aber bei der sehr einfachen Möglichkeit der Gestaltung der grafischen Bedienungsoberfläche. Mit Qt lassen sich sehr viele Dinge vereinfachen. Man kann unter anderem sehr einfach Threads, Netzwerkkommunikation und Observer Pattern durch Signals und Slots mit Leichtigkeit verwenden. Der Slogan von Trolltecs Qt beschreibt das Toolkit treffend: Code less. Create more. Bei dieser Arbeit musste ich mich auf ein etabliertes und frei verfügbares Toolkit verlassen können, so dass ich mich ganz auf die Entwicklung des Programms konzentrieren konnte, außerdem wird gewährleistet, dass in der weiteren Verwendung und Weiterentwicklung dieses Programms auf die einfache Handhabung und die gute Dokumentation von Qt zurückgegriffen werden kann. 53

54 7.3. ADVANCED LINUX SOUND ARCHITECTURE KAPITEL 7. EINGESETZTE KOMPONENTEN 7.3 Advanced Linux Sound Architecture ALSA (Advanced Linux Sound Architecture) ist die am weitesten verbreitete Soundarchitektur für Linux. ALSA stellt dabei eine Abstraktionsebene zur Hardware dar, die zusätzlich direkt in den Kernel von Linux integriert ist. Dem Programmierer werden zahlreiche Schnittstellen zur Soundhardware angeboten, über die er nicht nur Sound abspielen und aufnehmen, sondern auch z.b. Lautstärke abfragen und einstellen kann. Diese Low-Level API bringt jedoch auch seine Schwierigkeiten mit sich, so erfordern selbst die simpelsten Aufgaben unzählige Methodenaufrufe. Nach der Prüfung von Phonon, Portaudio und Pulseaudio habe ich mich trotzdem für ALSA entschieden, da die weite Verbreitung und die Mächtigkeit dieser Bibliothek unschlagbar ist. 7.4 Julius, HTK und espeak Da dieses Projekt mit der Sprache C++entwickelt werden sollte war klar, dass Sphinx nicht in Frage kommt, da die aktuelle Version 4 von Sphinx mit der Sprache Java entwickelt wurde. Als Spracherkennungs-System kommt nun Julius zum Einsatz und mit Hilfe des HTK Toolkits wird das Sprachmodell erstellt, welches Julius für die Erkennung benötigt. Die Erstellung des Sprachmodells ist ein sehr komplexer und aufwendiger Vorgang und mit Simon hatte ich die Möglichkeit, diesen Schritt extern durchführen zu lassen. So musste ich nur die Input-Daten vorbereiten und an Simon übergeben und nicht die vielzähligen Schritte zum Sprachmodell selbst durchführen. Für die Sprachsynthese habe ich mich für espeak entschieden. Die leicht zu bedienende Bibliothek hat mich von Anfang an überzeugt und da die Verständlichkeit als Kriterium ausreichend ist und die Natürlichkeit der klingenden Sprache in unserem Fall nicht so erheblich ist, konnte auf kommerzielle Software (z.b. Fonix) verzichtet werden. 54

55 KAPITEL 7. EINGESETZTE KOMPONENTEN 7.5. SIMON LISTENS Installation von espeak espeak kann bei den meisten Linux Distributionen über die Softwareverwaltung installiert werden. Falls dies nicht der Fall ist, kann espeak auf der Projektseite auf SourceForge heruntergeladen, entpackt und installiert werden Prompt cd /usr/local/src wget unzip espeak source.zip cd espeak source/src && make && make install 7.5 Simon Listens Simon Listens ist ein Projekt, welches behinderten Menschen den Umgang mit Computern erleichtern soll. Simon bietet als Spracherkennungs- Suite dem Benutzer die Möglichkeit, sich ein eigenes Sprachmodell zu erstellen und zu dieses auch zu verwenden. Bedient wird Simon über eine sehr einfache grafische Benutzeroberfläche. Der Anwender hat hier die Möglichkeit, Wörterbücher zu importieren, eigene Wörter hinzuzufügen und die Wörter zu trainieren. Simon fungiert als Vorbild dieser Arbeit, denn beide Projekte haben ein ähnliches Ziel. Es soll ein Spracherkennungs-Programm mit Hilfe von Julius entstehen. Viele der in Simon verfügbaren Features sind auch in diesem Projekt wiederzufinden. Dadurch, dass Simon sehr modular aufgebaut ist, hat es eigene Bibliotheken, z.b. zum Erstellen der Sprachmodelle oder zum Anfertigen von Aufnahmen. Durch das Vorhandensein dieser Bibliotheken hatte ich die Möglichkeit, Simon für das aufwendig zu erstellende Sprachmodell zu nutzen. Der ModelCompilationManager der Teil von Simon, der das Modell für Julius generiert wird in diesem Projekt verwendet, um die Wort- und Aufnahmedaten in das HMM Modell zu konvertieren. Bevor Simon installiert werden kann, müssen das HTK Toolkit und Julius installiert werden, da dies Abhängigkeiten sind, ohne diese Simon nicht gelinkt werden kann. 55

56 7.5. SIMON LISTENS KAPITEL 7. EINGESETZTE KOMPONENTEN Installation von HTK Wie bemerkt, wird das HTK Toolkit wird zwingend benötigt. Nicht nur Julius nutzt es für die Spracherkennung, auch Simon verwendet das Toolkit zum Erstellen der Sprachmodelle. Die Installation dieses Toolkits ist denkbar einfach, da es keine weiteren Abhängigkeiten besitzt, es kann nach einer kurzen Registrierung auf der Homepage, heruntergeladen werden. [HTK] Prompt cd /usr/local/src wget wget tar -zxf HTK-3.4.tar.gz tar -zxf HTK-samples-3.4.tar.gz cd htk &&./configure && make && make install Installation von Julius Die Spracherkennungs-Engine Julius zu installieren, nimmt ein wenig mehr Zeit in Anspruch. Es müssen zuerst einige Abhängigkeiten aufgelöst werden. Julius benötigt zum einwandfreien Betrieb neben dem HTK Toolkit einige Bibliotheken und Headerfiles. Diese sind, neben den Betriebssystem gängigen: libiconv, libsndfile und flex. Julius muss mindestens in der Version installiert werden, diese kürzlich erschienene Version ist auf der Homepage von Julius zu finden. [Julius] Prompt cd /usr/local/src wget cd julius4 &&./configure && make && make install Installation von Simon Die Quellen von Simon sind frei verfügbar und können von der Projektseite auf SourceForge herunter geladen werden. [Simon] Da Simon sich an dem Entwicklungsstand von KDE Version 4.1 orientiert, müssen viele Komponenten dieser grafischen Benutzeroberfläche für Linux installiert werden. Diese unterscheiden sich je nach Betriebssystem. 56

57 KAPITEL 7. EINGESETZTE KOMPONENTEN 7.6. JULIUS CONTROL CENTER Für Ubuntu und andere Debian Derivate können mit folgendem Befehl die fehlenden Pakete nachinstalliert werden: Prompt sudo apt-get install \ kdebase-bin kdebase-data kdebase-runtime \ kdebase-workspace kdelibs-bin kdelibs5 kdelibs5-data kdelibs5-dev \ portaudio19-dev libportaudio2 Wenn als Betriebssystem opensuse TM von Novell eingesetzt wird, muss mindestens die Version opensuse 11.1 installiert sein, dann sind alle Abhängigkeiten für Simon im Vorraus erfüllt. Als Nutzer von Fedora in der Version 9 hat man die Möglichkeit, passende Pakete für KDE 4.1 zu installieren. Falls Version 10 eingesetzt wird, kann man diesen Schritt überspringen. [FCKDE4] Für die Installation von Simon läd man die Sourcen von SourceForge herunter, entpackt diese und kompiliert anschließend Simon mit folgenden Befehlen: [Simon] Prompt cd /usr/local/src wget tar -jxf simon-0.2-beta-1-source.tar.bz2 cd simon/simonsource &&./build.sh 7.6 Julius Control Center Nach der Installation aller benötigten Teile kann nun das Julius Control Center installiert werden. [JCC] Prompt cd /usr/local/src wget tar -jxf jcc-1.0.tar.bz2 cd jcc &&./build.sh Mit diesen Befehlen wird das Archiv, in welchem das Julius Control Center enthalten ist, heruntergeladen, entpackt und kompiliert. Auch benötigte Skripte für die Erstellung des Sprachmodells mittels HTK sind enthalten und werden in das Dateisystem an den entsprechenden Platz installiert. Die ausführbare Datei, also das Programm befindet sich nach dem Kompiliervorgang im Unterverzeichnis jcc/bin und wird in den $PATH unter /usr/local/bin verlinkt, so dass das Programm von überall aus gestartet werden kann. 57

58 7.6. JULIUS CONTROL CENTER KAPITEL 7. EINGESETZTE KOMPONENTEN 58

59 8 Das Julius Control Center Das Julius Control Center ist in erster Linie eine grafische Bedienoberfläche für Julius die Spracherkennungs-Software. Neben der Spracherkennung kann dieses Programm auch Sprache ausgeben synthetisieren. Die Hauptaufgaben dieses Programms sind, dem Benutzer die Möglichkeit zu geben, auf einfache Art und Weise vorhandene Wörter und Sprachaufnahmen zu verwalten und Wörter und Sprachaufnahmen zur Datenbank hinzuzufügen. Die gesammelten Informationen, Sprachaufnahmen, Wörter und Grammatiken werden dann mit Hilfe von Simon zu einem Sprachmodell umgewandelt. Das so entstandene Modell benutzt Julius dann für die Spracherkennung. Für die Sprachausgabe wird mit Hilfe der espeak Bibliothek beliebiger Text in Sprache gewandelt. Über das Julius Control Center ist es möglich, viele Parameter der auszugebenden Sprache einzustellen. Damit das Programm auch mit anderen Programmen kommunizieren kann, gibt es die Möglichkeit, sogar über das Netzwerk das Julius Control Center zu steuern. Auf den folgenden Seiten werden die Klassen, das Programm und seine Architektur dargestellt. In der sehr ausführlichen DoxyGen Dokumentation sind viele weitere nützliche Informationen zu finden, dort sind alle Klassen, Methoden und Member beschrieben. Für die Weiterentwicklung der Software, die im Rahmen dieser Arbeit entstanden ist, kann diese Dokumentation neben dieser Arbeit eine weitere Anlaufstelle sein. Zu finden ist diese Dokumentation im Verzeichnis doc/ des Hauptverzeichnisses dieses Programms oder auf der Internetseite dieses Projektes. [JCC] 59

60 8.1. DIE GUI - MAINWINDOW KAPITEL 8. DAS JULIUS CONTROL CENTER 8.1 Die GUI - MainWindow Der Mainthread, also das Hauptprogramm, ist eine Instanz von MainWindow. Das ist auch der einzige Thread, der auf der GUI (Graphical User Interface) zeichnen darf. Aus diesem Grund müssen alle Interaktionen mit dem Benutzer in dieser Klasse bzw in diesem Thread stattfinden. In dieser Klasse werden auch alle benötigten Objekte erstellt. Dazu gehören nicht nur GUI Elemente, wie z.b. das TrayIcon sondern auch alle anderen Objekte, die benötigt werden. Beispiele hierfür sind, der Textsynthesizer (Speaker) oder der JuliusServer, welcher Clientverbindungen entgegen nimmt. Das TrayIcon wird bei Programmstart erstellt und sorgt dafür, dass das Programm in die Systray minimiert werden kann. Immer wenn man versucht das Programm über das X zu schließen, wird es in die Systray minimiert und kann über einen Klick auf das Symbol wieder in den Vordergrund geholt werden. Wenn das Programm entgültig geschlossen werden soll, muss man über das Menü den Punkt Datei Beenden anwählen. In MainWindow werden die erzeugten Instanzen nun mit einem so genannten Signal/Slot Konzept verbunden. Dies realisiert einen ereignisgesteuerten Programmabfluss zwischen Objekten. Das ursprüngliche Konzept kann man als spezielle Form des Observer Design Pattern betrachten. Der Signal/Slot Mechanismus in Qt lässt sich mit den häufig eingesetzten Callback Funktionen vergleichen. Es gibt einen Sender und ein oder auch mehrere Empfänger von Nachrichten, möglich ist jedoch auch, dass es einen Empfänger gibt, der durch mehrere Sender benachrichtigt wird. Oft werden diese Signale und Slots eingesetzt, um GUI Elemente miteiner zu verbinden, z.b. wenn ein Button gedrückt wird, sodass eine bestimmte Funktion ausgeführt wird. Die meisten Einstellungen und Aktionen werden in der Klasse MainWindow behandelt. Ausgenommen davon ist die Trainings-Ansicht. Diese Klasse kann man als Erweiterung der MainWindow Klasse sehen, auch wenn sie nicht direkt von dieser abgeleitet ist. Da in dem Teild er Trainings-Ansicht sehr viel Logik gefordert ist, ist diese in einem separaten Teil, dem TrainingView ausgelagert. 60

61 KAPITEL 8. DAS JULIUS CONTROL CENTER 8.2. DIE VERWALTUNG 8.2 Die Verwaltung Die Verwaltung des Sprachmodells geschieht in 3 Tabs. Jeder Tab repräsentiert eine der drei Komponenten des Sprachmodells. Diese sind in den folgenden Abschnitten erläutert TrainingView Die Klasse TrainingView ist so gesehen eine Ergänzung zu MainWindow. Alle Interaktionen mit dem Benutzer in der Ansicht des Trainings- Tabs werden in dieser Klasse behandelt. Im Konstruktor der Klasse werden alle benötigten Instanzen erzeugt, wobei alle Operationen auf Dateien über ein globales Semaphor, bzw Mutex abgesichert sind. GUIReimplementations Hier wurden GUI Elemente neu definiert. Es war notwendig, eigene Operationen wie z.b. Drag & Drop Aktionen auslösen zu können. So ist es nun möglich, Elemente aus einer Tabelle in eine einzelne Textzeile zu ziehen oder durch einen Doppelklick diese zu der Textzeile hinzuzufügen. Die erweiterten GUI Elemente kommen in der Ansicht der Grammatik und im AddWordWizard zum Einsatz, hier können aus einer Liste Elemente bzw hier Worte per Drag & Drop oder per Doppelklick zu einem Satz zusammengesetzt werden. Abbildung 8.2: Reimplementierung von QTreeWidget und QLineEdit 61

62 8.2. DIE VERWALTUNG KAPITEL 8. DAS JULIUS CONTROL CENTER WordManager Die Klasse WordManager ist dafür zuständig, die vom Benutzer gewählten Wörter zu verwalten. Die Singleton-Instanz von WordManager hält zur Laufzeit alle Wörter mit ihren dazugehörigen Lautschrift und Kategorie in einer Liste bereit. Diese einzelnen Komponenten sind mit einem Tabulator getrennt und können so über Stringfunktionen wie split zerlegt werden. Dieses Format wurde gewählt, da mit dem gleichen Format auch die Dateien gespeichert werden. Der WordManager speichert seine Daten in user.words (alle vom Benutzer gewählten Wörter) und user.lexicon (das importierte Bomp-Wörterbuch). Für die Erstellung Abbildung 8.3: Die Klasse WordManager des Sprachmodells hält der WordManager die Dateien model.lexicon und model.voca bereit. Der WordManager hat zudem die Funktion das Wörterbuch dem Benutzer anzubieten. Dies hat den Vorteil, dass der Benutzer nur dem Wörterbuch unbekannte Wörter selbst in die X-SAMPA Lautschrift übersetzen muss. Das zu importierende Wörterbuch (BOMP) enthält bereits über deutsche Wörter. Falls nun aber z.b. ein englisches Wörterbuch eingebunden werden soll, geschieht dies am besten indem man die Klasse WordManager erweitert. Codeauszug 8.1: Beispiel von WordManager 1 // Erzeugen bzw holen der Instanz von WordManager 2 WordManager * wm = WordManager :: theinstance (); 3 // Holen des Pointers der benutzerdefinierten Woerter 4 QStringList * words = wm - > getwords (); 5 // Holen des Pointers des Lexikons 6 QStringList * lexicon = wm - > getlexicon (); 7 8 // Neues Wort : Apfel 9 QString word = new QString (" Apfel \t apf@l \t NOM "); if(wm -> addword ( word )) { 12 // Hinzufuegen des Wortes Apfel war erfolgreich 13 // Das Wort ist nicht schon vorhanden. 14 } 15 wm -> savewords (); 16 // ermitteln der Position des Wortes Apfel in der Liste 17 int pos = words -> indexof ( word ); 18 if(pos!= -1 && wm -> removeword (words ->at(pos ))) { 19 // Entfernen des Wortes Apfel war erfolgreich 20 } 21 // Loeschen der Instanz wm 22 wm - > destroytheinstance (); 62

63 KAPITEL 8. DAS JULIUS CONTROL CENTER 8.2. DIE VERWALTUNG GrammarManager Die Klasse GrammarManager ist dafür zuständig, die vom Benutzer gewählten Grammatiken zu verwalten. Auch hier kommt wieder die Singleton- Designwahl zum Einsatz um mögliche Doppelinstanzierungen dieser Klasse zu vermeiden. Der GrammarManager verwaltet alle vom Benutzer gewählten Sätze zur Laufzeit in einem speziellen Container und speichert diese Daten in die Datei user.grammar sowie für die Modellerstellung in die Datei model.grammar. Der Benutzer kann Abbildung 8.4: Die Klasse hier selbst Satzstrukturen erstellen und muss keine Kenntnis des Terminals des Wortes haben, er kann aus einer Liste GrammarManager aller bekannten Wörter wählen und sich so den gewünschten Satz konstruieren. Die Umsetzung und Konvertierung in das Format für HTK bzw Simon übernimmt der GrammarManager. Durch die Verwendung einer speziellen Liste (QMap<QString, QString>) gibt es die Möglichkeit Wertepaare unterschiedlichen Typs zu speichern. Die Besonderheit ist, dass alle Worte einer Kategorie zu finden sind, weitaus interessanter ist es aber, ein und das selbe Wort in verschiedenen Kategorien zu speichern. Dies hat den Vorteil, dass nicht mittels einer Stringvergleichsfunktion gearbeitet werden muss, sondern dass die gewünschten Werte direkt aus dieser Liste geholt werden können. Dies ist besonders bei sehr großen Listen platzsparend und zudem sehr schnell. Codeauszug 8.2: Beispiel von GrammarManager 1 // Erzeugen bzw holen der Instanz von GrammarManager 2 GrammarManager * gm = GrammarManager :: theinstance (); 3 // Holen des Pointers auf die Saetze 4 QStringList * sentences = gm - > getsentences (); 5 // Holen der QMap mit der Grammatik 6 QMap < QString, QString > * grammar = gm -> getgrammar (); 7 // Hole alle Nomen, die GrammarManager kennt. 8 QStringList nomen = grammar -> values (" NOM "); 9 // Hole alle Kategorien bzw Terminale, die GrammarManager zu " Ein " kennt : NOM : NUM : QAN 10 QStringList cats = grammar -> keys (" Ein "); 11 if(gm -> addgrammarsentence (" Nehme ein Apfel ", " VRB NUM NOM ")) { // Hinzufuegen der Gram. VRB NUM NOM war erfolgreich Der Satz war noch nicht aufgenommen 12 } 13 int pos = sentences -> indexof (" Nehme ein Apfel \ tvrb NUM NOM "); 14 if( gm - > deletegrammar ( pos ) { // Entfernen des Satzes war erfolgreich 15 } 63

64 8.2. DIE VERWALTUNG KAPITEL 8. DAS JULIUS CONTROL CENTER SampleManager Die Klasse SampleManager ist dafür zuständig, die Sprachaufnahmen zu verwalten. Immer wenn ein neues Wort zum Sprachmodell hinzugefügt wurde, wird die Sprachaufnahme und die darin enthalten Wörter an den SampleManager übergeben (insertsample(qstring path, QString words)). Die eigentliche Aufgabe des Sample- Managers ist, für das Sprachmodell die Datei prompts bereit zu halten und die Möglichkeit anzubieten vorhandene Sprachaufnahmen zu löschen. Abbildung 8.5: Die Klasse SampleManager Codeauszug 8.3: Beispiel von SampleManager 1 // Erzeugen bzw holen der Instanz von SampleManager 2 SampleManager * sm = SampleManager :: theinstance (); 3 // Holen des Pointers auf die Sprachaufnahmen. In dieser Liste sind die vollstaendigen Pfade zu den Wave Aufnahmen gespeichert. 4 QStringList * wavs = sm - > getsamples (); 5 // Die Aufnahme / tmp / wavrec1. wav, die die Woerter " Nehme Ein Apfel " enthaelt in die Verwaltung aufnehmen 6 sm -> insertsample ("/ tmp / wavrec1. wav "," Nehme Ein Apfel "); 7 // Instanz loeschen und Speicher freigeben 8 sm - > destroytheinstance (); 64

5. SCITOS Robot (TTS): Pilot Status Message

5. SCITOS Robot (TTS): Pilot Status Message 5. SCITOS Robot (TTS): Pilot Status Message SCITOS gibt Status des Piloten über Sprachausgabe aus: fahre zum Ziel, Ziel erreicht, ich komme nicht weiter M.Eker & C.Handel Agenda Aufgabenstellung Motivation

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11 Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Woche 1: Was ist NLP? Die Geschichte des NLP.

Woche 1: Was ist NLP? Die Geschichte des NLP. Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten

Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten Bachlor-Abschlussarbeit Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten im Studiengang Informatik der Fakultät IV - Wirtschaft und Informatik Sommersemester 2009 Burim

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

WAS finde ich WO im Beipackzettel

WAS finde ich WO im Beipackzettel WAS finde ich WO im Beipackzettel Sie haben eine Frage zu Ihrem? Meist finden Sie die Antwort im Beipackzettel (offiziell "Gebrauchsinformation" genannt). Der Aufbau der Beipackzettel ist von den Behörden

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Anlegen eines DLRG Accounts

Anlegen eines DLRG Accounts Anlegen eines DLRG Accounts Seite 1 von 6 Auf der Startseite des Internet Service Centers (https:\\dlrg.de) führt der Link DLRG-Account anlegen zu einer Eingabemaske, mit der sich jedes DLRG-Mitglied genau

Mehr

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Behindert ist, wer behindert wird

Behindert ist, wer behindert wird Behindert ist, wer behindert wird Alle Menschen müssen lernen, dass Menschen mit Behinderungen gleichberechtigt sind Auf der ganzen Welt leben sehr viele Menschen mit Behinderungen: über 1 Milliarde Menschen

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Java Script für die Nutzung unseres Online-Bestellsystems

Java Script für die Nutzung unseres Online-Bestellsystems Es erreichen uns immer wieder Anfragen bzgl. Java Script in Bezug auf unser Online-Bestell-System und unser Homepage. Mit dieser Anleitung möchten wir Ihnen einige Informationen, und Erklärungen geben,

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05

Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05 Fragebogen zur Evaluation der Vorlesung und Übungen Computer Grafik, CS231, SS05 Dozent: Thomas Vetter Bitte Name des Tutors angeben: Liebe Studierende, Ihre Angaben in diesem Fragebogen helfen uns, die

Mehr

Konventionen. Danksagung

Konventionen. Danksagung Einleitung Konventionen Im Folgenden möchte ich Sie mit ein paar Konventionen vertraut machen, die Ihnen bei der Lektüre des Buches helfen sollen. Namen von neu im Text eingeführten Programmen, Produkten

Mehr

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Anleitung Konverter Letzte Aktualisierung dieses Dokumentes: 14.11.2013 Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Wichtiger Hinweis: Der Konverter

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features. Inhalt 1 Übersicht 2 Anwendungsbeispiele 3 Einsatzgebiete 4 Systemanforderungen 5 Lizenzierung 6 Installation 7 Key Features Seite 2 von 11 1. Übersicht MIK.mobile for ipad ist eine Business Intelligence

Mehr

MetaQuotes Empfehlungen zum Gebrauch von

MetaQuotes Empfehlungen zum Gebrauch von MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

A1.7: Entropie natürlicher Texte

A1.7: Entropie natürlicher Texte A1.7: Entropie natürlicher Texte Anfang der 1950er Jahre hat Claude E. Shannon die Entropie H der englischen Sprache mit einem bit pro Zeichen abgeschätzt. Kurz darauf kam Karl Küpfmüller bei einer empirischen

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen Inhalt Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen 2.2 Installation von Office 2013 auf Ihrem privaten PC 2.3 Arbeiten mit den Microsoft

Mehr

Internet online Update (Internet Explorer)

Internet online Update (Internet Explorer) Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Internetexplorer und gehen auf unsere Internetseite:

Mehr

1. Was ihr in dieser Anleitung

1. Was ihr in dieser Anleitung Leseprobe 1. Was ihr in dieser Anleitung erfahren könnt 2 Liebe Musiker, in diesem PDF erhaltet ihr eine Anleitung, wie ihr eure Musik online kostenlos per Werbevideo bewerben könnt, ohne dabei Geld für

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler

Mehr

Simulation LIF5000. Abbildung 1

Simulation LIF5000. Abbildung 1 Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Informationen zum neuen Studmail häufige Fragen

Informationen zum neuen Studmail häufige Fragen 1 Stand: 15.01.2013 Informationen zum neuen Studmail häufige Fragen (Dokument wird bei Bedarf laufend erweitert) Problem: Einloggen funktioniert, aber der Browser lädt dann ewig und zeigt nichts an Lösung:

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Tutorial In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Zu Beginn müssen wir uns über die gewünschten Sprachen Gedanken machen. Zum einem, da eine professionelle

Mehr

Technische Dokumentation: wenn Englisch zur Herausforderung wird

Technische Dokumentation: wenn Englisch zur Herausforderung wird Praxis Technische Dokumentation: wenn Englisch zur Herausforderung wird Anforderungsspezifikation, Requirements-Engineering, Requirements-Management, Terminologieverwaltung www.sophist.de Über Englischkenntnisse

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

Bilder Schärfen und Rauschen entfernen

Bilder Schärfen und Rauschen entfernen Bilder Schärfen und Rauschen entfernen Um alte Bilder, so wie die von der Olympus Camedia 840 L noch dazu zu bewegen, Farben froh und frisch daherzukommen, bedarf es einiger Arbeit und die habe ich hier

Mehr

Mobile Intranet in Unternehmen

Mobile Intranet in Unternehmen Mobile Intranet in Unternehmen Ergebnisse einer Umfrage unter Intranet Verantwortlichen aexea GmbH - communication. content. consulting Augustenstraße 15 70178 Stuttgart Tel: 0711 87035490 Mobile Intranet

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Titel der Stunde: TELEFONIEREN, HÖFLICHKEIT

Titel der Stunde: TELEFONIEREN, HÖFLICHKEIT Titel der Stunde: TELEFONIEREN, HÖFLICHKEIT Ziele der Stunde: Sicherlich benutzt jeder von euch häufig das Handy oder den Festnetzanschluss und telefoniert mal lange mit Freunden, Bekannten oder Verwandten.

Mehr

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG von Urs Schaffer Copyright by Urs Schaffer Schaffer Consulting GmbH Basel www.schaffer-consulting.ch Info@schaffer-consulting.ch Haben Sie gewusst dass... >

Mehr

Was ist neu in Sage CRM 6.1

Was ist neu in Sage CRM 6.1 Was ist neu in Sage CRM 6.1 Was ist neu in Sage CRM 6.1 In dieser Präsentation werden wir Sie auf eine Entdeckungstour mitnehmen, auf der folgende neue und verbesserte Funktionen von Sage CRM 6.1 auf Basis

Mehr

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen. HACK #39 Hack Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.»verschlüsseln Sie Ihren Temp-Ordner«[Hack #33] hat Ihnen gezeigt, wie Sie Ihre Dateien mithilfe

Mehr

Installationsanleitung CLX.PayMaker Home

Installationsanleitung CLX.PayMaker Home Installationsanleitung CLX.PayMaker Home Inhaltsverzeichnis 1. Installation und Datenübernahme... 2 2. Erste Schritte Verbindung zur Bank einrichten und Kontoinformationen beziehen... 4 3. Einrichtung

Mehr

Gutes Leben was ist das?

Gutes Leben was ist das? Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper) Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4

Mehr

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE:

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE: Einrichten eines POP-Mailkontos unter Thunderbird Mail DE: Ein E-Mail-Konto können Sie am einfachsten über den integrierten Assistenten einrichten. Dieser führt Sie Schritt für Schritt durch alle Einstellungsmöglichkeiten

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Kaufkräftige Zielgruppen gewinnen

Kaufkräftige Zielgruppen gewinnen Kaufkräftige Zielgruppen gewinnen Wie Sie Besucher auf Ihre Webseite locken, die hochgradig an Ihrem Angebot interessiert sind 2014 David Unzicker, alle Rechte vorbehalten Hallo, mein Name ist David Unzicker

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1): Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils

Mehr

Pflegende Angehörige Online Ihre Plattform im Internet

Pflegende Angehörige Online Ihre Plattform im Internet Pflegende Angehörige Online Ihre Plattform im Internet Wissen Wichtiges Wissen rund um Pflege Unterstützung Professionelle Beratung Austausch und Kontakt Erfahrungen & Rat mit anderen Angehörigen austauschen

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Folgeanleitung für Klassenlehrer

Folgeanleitung für Klassenlehrer Folgeanleitung für Klassenlehrer 1. Das richtige Halbjahr einstellen Stellen sie bitte zunächst das richtige Schul- und Halbjahr ein. Ist das korrekte Schul- und Halbjahr eingestellt, leuchtet die Fläche

Mehr

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung

Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung Forschungsprojekt: Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung Leichte Sprache Autoren: Reinhard Lelgemann Jelena

Mehr

Installation von Updates

Installation von Updates Installation von Updates In unregelmässigen Abständen erscheinen Aktualisierungen zu WinCard Pro, entweder weil kleinere Verbesserungen realisiert bzw. Fehler der bestehenden Version behoben wurden (neues

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

IBM Software Demos Tivoli Provisioning Manager for OS Deployment Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,

Mehr

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Dezernat 6 Abteilung 4 Stand: 14.Oktober 2014 Inhalt 1. Einleitung 3 2. Räume & gemeinsame Termine finden 3 3. Rüstzeit 8 4. FAQ: Oft gestellte

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS Analyse zum Thema: Laufzeit von Support-Leistungen für Axel Oppermann Advisor phone: +49 561 506975-24 mobile: +49 151 223 223 00 axel.oppermann@experton-group.com Januar 2010 Inhalt Summary und Key Findings

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Überprüfung der digital signierten E-Rechnung

Überprüfung der digital signierten E-Rechnung Überprüfung der digital signierten E-Rechnung Aufgrund des BMF-Erlasses vom Juli 2005 (BMF-010219/0183-IV/9/2005) gelten ab 01.01.2006 nur noch jene elektronischen Rechnungen als vorsteuerabzugspflichtig,

Mehr

4. In dem Kurs lernt sie, was zu tun ist, wenn etwas Schlimmes passiert.

4. In dem Kurs lernt sie, was zu tun ist, wenn etwas Schlimmes passiert. 1 Hören: Thema lebenslanges Lernen Lesen Sie die Aussagen. Hören Sie dann Track Nr. 1.26 von der Lehrbuch-CD und kreuzen Sie an: richtig oder falsch? r f 1. Herr Schubert ist mit seiner Ausbildung fertig.

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr