Posts Tagged ‘German’

OT: German phonemes for “Depot”

Saturday, February 6th, 2010

As I told earlier, I want to give information about PLS dictionary development. At the moment, Ralf’s German dictionary 0.1.7 is available. Here is how I want to modify the dictionary:

I take a closer look at the XSLT style-sheet espeak2perfectipa.xsl. I didn’t improve this style-sheet during the last 4 months.

A few minutes ago, I made a slight modification to espeak2perfectipa.xsl (= XSLT style-sheet). These are the lines that modify the phonemes for Depot:

<xsl:when test="starts-with(grapheme, 'Depot')">
<xsl:for-each select="phoneme"><xsl:text>
</xsl:text><phoneme>
<xsl:variable name="sierra"><xsl:value-of select="."/></xsl:variable>
<xsl:variable name="sierra" select="replace($sierra, 'deːpɔt', 'deːpoː')"/>
<xsl:sequence select="$sierra"/></phoneme>
</xsl:for-each>
</xsl:when>

These are some lines from Ralf’s German dictionary 0.1.7 (= source XML document):

<lexeme role="Substantiv">
<grapheme>Depotbank</grapheme>
<phoneme>deːpɔtbaŋk</phoneme>
</lexeme>
<lexeme role="Substantiv">
<grapheme>Depotfett</grapheme>
<phoneme>deːpɔtfɛt</phoneme>
</lexeme>
<lexeme role="Substantiv">
<grapheme>Depotgebühr</grapheme>
<phoneme>deːpɔtgeːbyːʀ</phoneme>
</lexeme>
<lexeme role="Substantiv">
<grapheme>Depotgesetz</grapheme>
<phoneme>deːpɔtgeːzɛts</phoneme>
</lexeme>

These are the corresponding lines of the future version of the dictionary (= result XML document):

<lexeme role="Substantiv">
<grapheme>Depotbank</grapheme>
<phoneme>deːpoːbaŋk</phoneme>
</lexeme>
<lexeme role="Substantiv">
<grapheme>Depotfett</grapheme>
<phoneme>deːpoːfɛt</phoneme>
</lexeme>
<lexeme role="Substantiv">
<grapheme>Depotgebühr</grapheme>
<phoneme>deːpoːgeːbyːʀ</phoneme>
</lexeme>
<lexeme role="Substantiv">
<grapheme>Depotgesetz</grapheme>
<phoneme>deːpoːgeːzɛts</phoneme>
</lexeme>

You can see the concept: The XSLT style-sheet defines which modifications the result PLS dictionary should contain.

The whole process is invoked via the Ubuntu terminal:

am3msi@am3msi-desktop:~/Documents/201001/0.1.8$ saxonb-xslt -ext:on -s:german-dictionary-0.1.7.xml -xsl:espeak2perfectipa.xsl -o:prepare-0.1.8.xml

Let me explain:
- saxonb-xslt is the XSLT processor;
- german-dictionary-0.1.7.xml (= Ralf’s German dictionary 0.1.7) is the XML source document;
- espeak2perfectipa.xsl is the XSLT style-sheet;
- prepare-0.1.8.xml is the XML result document. It should become Ralf’s German dictionary 0.1.8 which I will release as soon as I have made substiantial progress.

I will document further steps of dictionary development here in this blog. I hope that I can convince some people out there to apply this concept to other PLS dictionaries. So my goal is to educate people in PLS dictionary development.

Julius dictionary; PLS: role attribute

Wednesday, January 20th, 2010

This blog post is about (A) Julius dictionary and (B) the import of a PLS dictionary.

A. Obviously, it is possible to import a Julius dictionary:

julius-vocabulary

I didn’t know that this kind of dictionary existed. What are the properties of this format? And what are the advantages?

B. I want to import Ralf's German dictionary (version 0.1.7; October 29, 2009). Great, simon now recognizes the role attribute:

adjektiv-substantiv

1. A few minutes ago, I imported Ralf's German dictionary into simon. I am offering 27 PLS dictionaries for 27 different languages. Choose the dictionary that suits your native language, and import it into simon.

2. Let’s take a look into the shadow dictionary.

3. The word kernchemischen is an Adjektiv. Let’s take a look at the specific entry in Ralf's German dictionary:

<lexeme role=”Adjektiv”>
<grapheme>kernchemischen</grapheme>
<phoneme>kɛʀnçeːmɪʃən</phoneme>
</lexeme>

You can see that the role attribute which is part of the <lexeme> element was imported by simon. Thanks for implementing that feature.

4. The word Kerndurchmesser is a Substantiv. The corresponding entry in the PLS dictionary:

<lexeme role=”Substantiv”>
<grapheme>Kerndurchmesser</grapheme>
<phoneme>kɛʀndʊʀçmɛsɐ</phoneme>
</lexeme>

You can see the strength of the simon import process: The last two letters Kerndurchmesser correspond with one single phoneme kɛʀndʊʀçmɛsɐ. Because such details are implemented, we can get a very good recognition rate as I showed in the video with 200 German words.

Why is Ralf's German dictionary good? Let me explain about the history of this dictionary:

a. The initial steps were done at Voxforge with the development of a German pronunciation dictionary. You can convince yourself: the script espeak2Phones.pl is great because it transforms eSpeak’s cryptic ASCII output into SAMPA. This approach is good for the German language.

b. Later, we used the dictionary acquistion project for the collection of about 8.000 pronunciations. Each single pronunciation was human-controlled. The phoneme concept follows the Wiktionary.

c. I used a German spelling dictionary from OpenOffice.org to get more words for the dictionary (Ubuntu terminal command: unmunch). With eSpeak I created the phonemes. With an XSLT style-sheet (Ubuntu terminal command: saxonb-xslt) I transformed the eSpeak phonemes into IPA phonemes. And I used the XSTL style-sheet for inserting the role attribute (Substantiv, Adjektiv, Zahlwort).

d. The result is the current version of Ralf's German dictionary. It would be nice if someone would help with the improvement. The real difficult work has been done. But it is necessary to fine-tune the dictionary. Let me give you a concrete example:

<lexeme>
<grapheme>stromsparen</grapheme>
<phoneme>ʃtʀɔmʃpaːʀən</phoneme>
</lexeme>
<lexeme>
<grapheme>stromsparend</grapheme>
<phoneme>ʃtʀɔmspaːʀənt</phoneme>
</lexeme>

What is wrong or could be improved? First, the role attribute is missing. stromsparen is a Verb. stromsparend is an Adverb. It would be good if someone added the missing role attributes. Second, there are small phoneme corrections necessary: ʃtʀɔmʃpaːʀən is OK because you speak “schtromschparen”. But ʃtʀɔmspaːʀənt is wrong because you don’t say “schtromsparent”.

You can see that improvements are necessary. Because Ralf's German dictionary is GPLv3, everyone is permitted to improve it.

For good recognition results, things like “schtromsparent” have to be fixed. It is possible that some dialects (e.g. Hamburg) speak “stromsparen” and not “schtromschparen”. I recommend that specific dialect dictionaries should be developed. This would be part of the fine-tuning, too. Ralf's German dictionary covers Standard German. You can use my dictionary for the development of a dialect dictionary that can be used by people who prefer to dictate in their own specific dialect.

By the way, did you notice the following detail? ʃtʀɔmspaːʀənt
ends with a “t” and not with a “d” because of the “Auslautverhärtung” (which is part of the German pronunciation). Such small details are implemented in the dictionary.

C. Conclusion: I know about the strengths of PLS, but I don’t know which advantages a Julius dictionary would have to offer.

Zuführungsdrähten: two pronunciations

Thursday, December 24th, 2009

I am now adding the word Zuführungsdrähten (which is part of the shadow dictionary):

zufuehrungsdraehten

You can see that there are two pronunciation alternatives. And this proves the strength of Ralf’s German dictionary: I am using an XSLT stylesheet to fix recurring pronunciation errors (eSpeak is not perfect), and to add alternate pronunciations (using replace: replace($ieren, 'tən', 'tn̩').

It would be great if someone would be willing to volunteer with the development of Ralf's German dictionary. My concept is as follows (compare with the XSLT concept):

xslt-concept
Image source: Wikipedia

Ralf’s German dictionary (current version) = XML input
espeak2perfectipa.xsl = XSLT code
saxonb-xslt (Ubuntu terminal) = XSLT processor
Ralf’s German dictionary (future version) = Result document

The development of Ralf's German dictionary is done outside and independent from simon. simon does a pretty good conversion during import from IPA to SAMPA. So there is no need to worry.

Ralf’s German dictionary has a lot of known weaknesses. It would be great if someone who is interested in the improvement of this dictionary would volunteer. It is not that difficult to get involved.

Everyone is permitted to improve Ralf’s German dictionary (and the corresponding XSLT code espeak2perfectipa.xsl) because both are GPLv3 licensed.

Ralf's German dictionary is the flagship. There are other dictionaries which need improvement:

A. Austrian German
Ralf’s Austrian German dictionary – it is a very small dictionary. The target group is very specific. This dictionary should contain only words that are not included in Ralf's German dictionary. So if you live in Austria, it is intended that you import two dictionaries:
1. Ralf's German dictionary (with 300.000 words);
2. Ralf's Austrian German dictionary (with specific words).

I don’t know much about Austrian German. You can get an impression of how Austrian German sounds when watching the simon video tutorial.

B. Swiss German
Maybe I will release a Swiss German dictionary. If someone from Switzerland is interested in the development of such a dictionary, I could create Ralf's Swiss German dictionary (I haven’t done that so far). I think that there is a GPL word list at OpenOffice.org available. So a volunteer would be welcome. I can help you with the first steps (unmunch, eSpeak, paste). The result would be a PLS dictionary with a vocabulary that only contains words that are specific to Swiss German.

The future Ralf's Swiss German dictionary is interesting for people who live in (or emigrated from Germany to) Switzerland. If you emigrated from Germany to Switzerland, you should get familiar with Swiss German. So Ralf's Swiss German dictionary would be interesting for German people who immigrate to Switzerland. If you want to stay in Switzerland, learn their language! simon / Ralf's Swiss German dictionary might help you to reach that goal.

C. Medical German
Ralf’s German medical dictionary is targeted at people who are interested in medical education. It is necessary to develop specialised medical dictionaries. The concept is easy:
1. Import Ralf's German dictionary into simon.
2. Import Ralf's German medical dictionary. Then you can train simon to recognize medical terms (e.g. LinsenchirurgielɪnzənçiːʀʊʀgiːEpilepsiebehandlungʔeːpiːlɛpsiːbeːandlʊŋ).
3. Develop specialised medical dictionaries: Human anatomy, pharmacology, genetics, etc..

simon could be used by medical students. So if you are a medical student (German language), you can improve Ralf's German medical dictionary. You can add words to this dictionary. Later, in a few years when you become a doctor, you might be able to use your experiences with simon / Ralf's German medical dictionary. Develop your own medical pronunciation dicitionary, and become a better doctor!

Of course, because we are in a very early stage of development, this is just something for medical students who have enough time.

D. Latin (German pronunciation)
Ralf’s Latin dictionary needs improvement. Latin has pronunciation rules that are different from German. The following way is possible: Improve Ralf's Latin dictionary with an XSLT stylesheet. I explained the concept above. The stylesheet needs information that are specific to the Latin language. Sometimes the Latin e is short (e.g. currere), sometimes it is long (e.g. dēbēre). These things need to be fixed.

And of course, 1.7 million Latin words is too much. The size of this dictionary has to be reduced because of performance issues. A dictionary with about 100.000 Latin words would be optimal at the moment. We don’t have yet a routine (compression algorithm) to handle dictionaries with e.g. 1.7 million words. This has to be developed (maybe someone could do that who is familiar with the unmunch command). But a dictionary with 100.000 Latin words would be a good start.

Latin is a “dead language”. But it should be possible – thanks to simon / Ralf's Latin dictionary to make the computer write down Latin words when you speak them into your microphone. From my point of view, Ralf’s Latin dictionary is something for Latin teachers (school or university). So the target group is very specific. I think that it can be fun for Latin students to use simon for the recognition of spoken Latin words.

E. Conclusion
The different dictionaries need improvement. Interested persons (people from Austria, Switzerland; medical students; Latin teachers) are encouraged to improve the specific dictionary on their own. My dictionaries are GPLv3 licensed. It is intended that someone improves them. This is my concept:

1. unmunch an OpenOffice.org spelling dictionary
2. generate phonemes with eSpeak
3. paste
4. convert eSpeak phonemes into IPA phonemes with XSLT
5. import the resulting PLS dictionary into simon
6. record a few words with simon
7. use simon for recognition (dictate e.g. into a gedit window)

This concept should work with dictionaries that use the German pronunciation (Austrian, Swiss, German medical, Latin). I didn’t test these dictionaries for training / recognition with simon. But the concept is the same. Since Ralf's German dictionary (flagship) works with simon, the other dictionaries with German pronunciation should work, too.

Ralf’s German dictionary

Saturday, September 12th, 2009

In this article, I will explain how to import Ralf’s German dictionary into simon, and you will read about some of the properties of this dictionary.

universal

1. Select Applications > Universal Access > simon.

import-dictionary

2. Press the Word list button.
3. Press Import Dictionary.

shadow-dictionary

4. You can select the target: shadow dictionary or active dictionary. What is the right choice? For dictionary development, I often choose active dictionary (so that I have a dictionary in HTK compatible format which I use in conjunction with sam). But let’s now choose the shadow dictionary as target.

5. Press the Next > button.

hadifix-htk-pls

6. You can choose between different lexicon types: Hadifix, HTK, PLS, and Sphinx. Select PLS.
7. Press the Next > button.

save-page

8. You are now here: http://script.blau.in/xml/german.xml
9. Save Page As... doesn’t work. I just tried that. If you choose this option, the page will be saved as html file. You have to choose a different way.

page-source

10. Select View Page Source.

lexeme-grapheme

11. You can now see the source of the page http://script.blau.in/xml/german.xml.

12. The encoding of the page is UTF-8. This encoding ensures that even languages like Hebrew can be processed correctly. You can imagine that UTF-8 is a very good standard for all languages.

13. Let’s take a look at the address of style sheet http://script.blau.in/xml/ralf-german-dictionary.xsl. This style sheet document changes the appearance of Ralf’s German dictionary when you view it with Firefox.

14. The license is GPL. It would be great if someone would expand the German dictionary.

15. The dictionary has a specific tree structure using the elements lexicon, lexeme, grapheme, phoneme.

16. Select Save Page As....

import

17. Choose the location of Ralf’s German dictionary that you downloaded a few moments ago. On my computer, the XML file is located here: /home/liberty/200909/german.xml.

finish

18. Ralf’s German dictionary has been imported successfully.
19. Press the Finish button.

maschine

20. To take a look at the imported dictionary, select Include unused words from the shadow lexicon.
21. Drag and drop the word Maschine into the white area.

train-selected

22. You want to train the word Maschine.
23. Press the button to start with the training.

add-maschine

24. Currently, the word Maschine is just part of the shadow lexicon. It is not part of the active lexicon. Press Yes to add it to the active lexicon.

sampa

25. You want to define the pronunciation of the word Maschine. The pronunciation is being displayed in SAMPA.
26. I find the concept with the terminals difficult, it is explained in the simon handbook. I am using the terminal Unknown.

OK, I am finishing here. If you want to know more about simon, please read in the simon handbook (PDF).

You should now be able to import Ralf’s German dictionary into simon.

Import PLS dictionary to active vocabulary

Sunday, August 23rd, 2009

I imported the whole PLS dictionary /home/liberty/200905/voxDE20090209.xml into the active vocabulary. This feature had been added to simon a few weeks ago:

“simon can now import dictionaries to the active lexicon.”

You know that my next goal is to hit the 1000 words mark. 1000 words should be recognized by simon. At the moment, I have major recognition problems. simon isn’t very responsive. It recognizes e.g. the word “abnahmen”, but when I dictate other words (that are of course part of the active vocabulary and had been successfully trained by me), simon doesn’t react. Maybe it is something with the confidence score? Or maybe while playing with sam the speech model has been changed?

Well, the active vocabulary now contains more than 8000 words. When I dictate, simon now recognizes words that I never had trained. And of course, it recognizes the wrong words. So I will have to do figure out how to adjust the speech model.

For example, I could record with Audacity lots of single words (not utterances because I find it difficult to define an appropriate grammar), and choose the Export Multiple... function. I am using Audacity in combination with my external USB sound card. This sound card only works with 22050 hertz, not with 16000 hertz under Ubuntu. This is the reason why I am using my on board sound card when dictating into simon directly (= recognition) or when recording words with simon (= training).

It is a bit complicated to explain. I prefer Audacity for recording because it allows me to record lots of training samples in a short amount of time. So if I record with Audacity in 22050 hertz, I have to resample the wav files with sox. I tested the command from the Sphinx guide. The following command allowed me to transform a 22050 hertz file successfully into 16000 hertz:

$ sox de27-02.wav -r 16000 -c 1 -s de27-02-test.wav

With Audacity, I could record all 8000 words that are now in my active vocabulary. Let’s say in packages of 100 words. Two years ago, Audacity allowed me to export just about 30 wav files at a time otherwise the application would crash. I will have to test the current version of Audacity. Probably, this issue has been fixed.

My main concern is that the words of my dictionary are often very similar. Here is an example:

DUTZEND [Dutzend] d U ts @ n t
DUTZEND [Dutzend] d U ts n= t
DUTZENDE [Dutzende] d U ts @ n d @
DUTZENDE [Dutzende] d U ts n= d @
DUTZENDEN [Dutzenden] d U ts @ n d @ n
DUTZENDEN [Dutzenden] d U ts n= d @ n
DUTZENDEN [Dutzenden] d U ts n= d n=
DUTZENDS [Dutzends] d U ts n= ts

Eight entries that are very similar. I think that this is very hard to train successfully. I will have to find out how I can achive my 1000 words goal. Maybe I should reduce the size of the active vocabulary from 8000 words to 1000 words? The result would be that I could use a set of words that aren’t too similar, and thus I would get better recognition results.

And I could sort out short words. Short words are harder to recognize than long words. It is a trick to only train long words, and to leave out the short ones.

I am interested in the following function:

“simon can now import prompts files through the import training data wizard.”

This is a very interesting function for me. I have recorded lots of utterances. They could be imported into simon. But I have one problem: I didn’t define an appropriate grammar. I could use a grammar that uses just one category of words (e.g. all words are marked as noun, it doesn’t matter what they really are; they can be adverbs, adjectives, verbs, etc.). So this could be the way to go.

I think that the 1000 mark goal could be hit with the present vocabulary of 8000 words. Julius allows 20.000 words dictation. So 1000 words is a reasonable goal. When I have reached that goal, I will have to think about the following question: How can I hit the 10.000 words mark? First, I need a bigger lexicon. I don’t want to use BOMP since it would be necessary to write them an email. I prefer to stick to free dictionaries.

Another solution could be that I switch from the German PLS dictionary to the English Voxforge dictionary. I could do the testing in English.

Video: I just recorded about 77 words

Monday, July 20th, 2009

I just recorded about 77 words. Most of them were recognized correctly (about 72 words). Some were recognized wrongly (about 5 words). The wrongly recognized are marked with an asterisk (*):

Geheimnissen Gehirns Geistern Geldern gemeinsam Genehmigungen Gerechtigkeit Gerichte geringem Geschichten Geschmacks Geschenken Generals Geschwindigkeiten Gewässern Gewinnern Gesetzgebers Geschäften Globalisierung Gestalten Gesprächen Glücks Großmutter Großvater Grundgesetz Grundschulen Gründern Gräbern Gymnasiums Gänge Gärtner Gästen Haaren Hafens Hamburgern Handlung Handwerker Hannovers Hauptbahnhof Hauptstadt Haushalten Heimat Herbst Hessens Herstellung Herzog Himmel Hochzeiten Hoffnungen Horizonten Hubschraubern Hunger Hälften Höfen Indonesiens Initiativen Instrumenten Jahrhundert Kalifornien Geistern* Erdbeben* niedrigem Fußbällen* optimistisch organisiert positives Professor Schauspieler Distanz* Technik Technologie Therapien Transport Grundschulen* zeichnet Zuschauer Zweifel

The lexicon contains about 159 entries (I didn’t dictate all of the entries). Maybe I should dictate all of them in a row, and publish a video about the result?

About 93 % of the words were recognized correctly.

And now, watch the video Dictating more than 70 words under Ubuntu (17.6 MB, 7:10 min).

Word recognized that is not in word list

Sunday, July 12th, 2009

Simon recognized a word that is not in the wordlist. I have 8 words in the active vocabulary:

atem

50 % were recognized correctly (marked with a ‘c’):

Aachen c
Abfahrt c
Atem f
Ordnung f
Aussicht c
Aussicht f
Ausstellung f
Ordnung c

The words marked with an ‘f’ (= false) were recognized wrong. But the word ‘Atem’ isn’t part of my active vocabulary. I had this word in my vocabulary, but removed it because of recognition problems.

Let’s take a look into the PLS dictionary. It seems to contain just one entry for Aachen – aːxn̩ – but the truth is that is contains three pronunciations for Aachen:

<lexeme>
<grapheme>Aachen</grapheme>
<phoneme>aːxn̩</phoneme>
<phoneme>aːxən</phoneme>
<phoneme>aːxŋ</phoneme>
</lexeme>

Why is just one pronounciation beeing displayed? Because of the stylesheet file http://script.blau.in/german/lexicon.xsl . Maybe I should adjust the file lexicon.xsl.

Well, let’s take a look into simon:

aachen

You can see that simon contains all three pronunciations for Aachen. They had been transformed from IPA to ASCII format during the import. This means that you can use three different pronounciations for Aachen with simon.

My grammar and my word list

Monday, May 25th, 2009

Take a look at my grammar:

noun-verb

It consists just of two possible solutions noun and noun verb. And take a look at my word list:

my-wordlist

My word list contains eight entries. Most of the words are nouns. Just abgeben is a verb. And abgenommen is marked as noun, but it should be a verb. I will try to fix that later.

Ubuntu: Importing the German PLS dictionary

Tuesday, May 5th, 2009

I want to import the current German PLS dictionary. I imported this dictionary before under Win XP. Now I am going to import it under Ubuntu 9.04. By the way, I think that this lexicon is encoded in UTF-8.

import-pls

To accomplish this goal, I had to
(1) click on ‘word list’,
(2) click on ‘Import Dictionary’,
(3) choose the previously downloaded XML PLS dictionary.

I want to use under Ubuntu 9.04 just the German PLS dictionary. I have a different hard drive with Ubuntu 8.10 (will upgrade in the near future) – this is for the English VoxForge dictionary.

Let’s take a look at the imported dictionary:

zustaendig

I filtered the lexeme “zuständig”. You can see that you get several entries. I think that the word “zuständigere” doesn’t exist in the German language. We can live with that for the moment. I know that the dictionary contains some words that don’t exist. It is (partially) my own fault because I submitted some non-existing German words. But keep in mind: The German PLS dictionary has been edited by humans, and the words haven’t been added automatically. So there shouldn’t be too much crap words inside the German PLS dictionary. It’s far from being perfect, but it should help us with the first steps. A lot of words are missing, but the most important words of the German language are implemented (really great work, Timo). When designing the German PLS dictionary we follow Zipf’s law.

By the way, it is intended that this PLS GPL dictionary may be edited to get German dialects (e.g. Austrian German). Personally, I focus on Standard German. Austrian German might be implemented in a separate XML PLS document. I don’t know exactly how it will be done in the future. But it is important to know: The first step is made by creating the German PLS pronouncing dictionary. A second step could be to make it compatible with Austrian German (e.g. by modifying the Standard German dictionary).

Because we are humans, we are using IPA when creating the PLS dictionary. Simon will transform it into ASCII internally. The IPA can be used to create a (separate?) Austrian German lexicon.

I am trying to stick to the following standards: PLS/XML, GPL, UTF-8, IPA. It is great to see that I can use these standards, and obviously simon is capable to handle it.

In the long term, I would like to have a button ‘Export Dictionary’. I don’t need this feature at the moment, but it might be useful. I just removed the word “zuständigere”:

remove

It isn’t possible to export the modified dictionary. Would such a function be useful? For me, it would be useful. But for the vast majority of people problably not.

OK, that’s all for now. I will try again later to train a few words with simon. First, I had to learn to optimize sound under Jaunty Jackalope. It is so complicated and pretty time consuming. But I have learned a lot about sound under Ubuntu. And I am confident that I should find a solution after a few trials.

Speaker independant german acoustic model

Tuesday, April 28th, 2009

Well, in my opinion we need a speaker independent German acoustic model. There are some training utterances collected by VoxForge. The question is: how can we process these German utterances with Simon? Is there a possibility to import utterances (automatically)?

I don’t want to train each word separately with Simon. I would like to import utterances that have been collected by VoxForge.

For me, it’s no problem to produce lots of training utterances. I have produced and published more than 10.000 training utterances in the German languange. If I just knew how to process them.

Let me give you a short insight how to produce training utterances: First, I dictate lots of utterances with DNS 9 Preferred in German (so there isn’t a problem with copyright since I am the author). Afterwards, I record these sentences with Audacity (File > Export Multiple). I am exporting about 25 utterances at a time. So this is a pretty productive approach to get lots of training material. But the problem is: How can I process this training material?

Importing the new German PLS dictionary

Monday, February 9th, 2009

A few hours ago, a new version of the German PLS dictionary has been released. The size is 670 kB. The previous version had 210 kB. I had imported the previous version into Simon.

dictionary-1.png
The shadow lexicon isn’t displayed, but available

Let’s import the new German PLS dictionary.
dictionary-2.png
Importing a dictionary with Simon

And now, you have to select the type of dictionary. You can choose between HADIFIX, HTK, PLS, and SPHINX. Let’s choose PLS.
dictionary-3.png
Selecting PLS as type of dictionary

You have to download the dictionary. Then you can import it.

dictionary-4.png
Import the PLS dictionary into Simon

Now you have to wait a few moments.

dictionary-5.png
Simon is importing the PLS dictionary

Let’s compare the XML version displayed by Firefox with the imported version.

dictionary-6.png
Compare the entry ‘Aachen’

The grapheme ‘Aachen’ has three possible pronounciations: aːxn̩ – aːxən – aːxŋ. All pronounciations are included in the Simon shadow dictionary in HTK compatible format.

So I am happy to see that we are making some progress. Thanks to Timo for releasing the new PLS dictionary.