<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- 20091024 -->
<!--    This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 3 of the License, or
        (at your option) any later version.
        
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
        
        You should have received a copy of the GNU General Public License
        along with this program; if not, write to the Free Software
        Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
        MA 02110-1301, USA. -->

<!-- (4) create one single grapheme; deprecated -->
<xsl:template name="create-grapheme"><xsl:text>
  </xsl:text>
 <xsl:element name="grapheme">
  <xsl:variable name="current-grapheme"><xsl:value-of select="normalize-space(grapheme)"/></xsl:variable>
  <xsl:if test="$current-grapheme=''"> <xsl:text>          </xsl:text>  </xsl:if>
  <xsl:if test="not($current-grapheme='')"><xsl:sequence select="$current-grapheme"/></xsl:if>
</xsl:element>
</xsl:template>

<!-- (4*) will replace 4 -->
<xsl:template name="grapheme-outside">
 <xsl:variable name="current-grapheme"><xsl:text>
  </xsl:text>
  <xsl:element name="grapheme">
   <xsl:value-of select="normalize-space(grapheme)"/>
  </xsl:element>
 </xsl:variable>
 <xsl:sequence select="$current-grapheme"/>
</xsl:template>

<!-- use (1) create-phoneme-fast # OR (2) create-phoneme-espeaktoipa OR (3) create-phoneme -->
<xsl:template name="create-phoneme-fast">
 <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text><xsl:element name="phoneme">
  <xsl:variable name="sierra"><xsl:value-of select="."/></xsl:variable>
  <xsl:sequence select="$sierra"/></xsl:element>
 </xsl:for-each>
</xsl:template>

<!-- (1*) create-phoneme-variable-outside -->
<xsl:template name="create-phoneme-variable-outside">
 <xsl:variable name="sierra">
  <xsl:for-each select="phoneme"><xsl:text> <!-- distinct-values()/phoneme -->
1-outside   </xsl:text>
   <xsl:element name="phoneme">
    <xsl:value-of select="."/>
   </xsl:element>
  </xsl:for-each>
 </xsl:variable>
 <xsl:sequence select="$sierra"/>
</xsl:template>


<!-- (2) 20091023; probably deprecated -->
<xsl:template name="create-phoneme-espeaktoipa">
 <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text><xsl:element name="phoneme">
  <xsl:variable name="sierra"><xsl:value-of select="."/></xsl:variable>
<!-- 20091018 convert eSpeak to SAMPA -->
<xsl:variable name="sierra" select="replace($sierra, '3', 'ɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'A', 'a')"/>
<xsl:variable name="sierra" select="replace($sierra, '_!', 'Q')"/>
<xsl:variable name="sierra" select="replace($sierra, '_\|', 'Q')"/>
<xsl:variable name="sierra" select="replace($sierra, 'pF', 'pf')"/>
<xsl:variable name="sierra" select="replace($sierra, 'W', 'œ')"/>
<xsl:variable name="sierra" select="replace($sierra, '_\^_', '')"/>
<xsl:variable name="sierra" select="replace($sierra, '@-', '')"/>
<xsl:variable name="sierra" select="replace($sierra, ',', '')"/>
<xsl:variable name="sierra" select="replace($sierra, ';', '')"/>
<xsl:variable name="sierra" select="replace($sierra, 'Y:', 'øː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'E2', 'ɛ')"/>
<xsl:variable name="sierra" select="replace($sierra, '_:_:', '')"/>
<xsl:variable name="sierra" select="replace($sierra, '\*', 'ʀ')"/>
<!-- convert SAMPA to IPA -->
<xsl:variable name="sierra" select="replace($sierra, 'aU_', 'aʊ̯')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'aI_', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'EI_', 'ɛɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aɪ̯_', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɛɪ_', 'ɛɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɔɪ_', 'ɔɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aʊ̯_', 'aʊ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'au̯', 'aʊ̯')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'aU', 'aʊ̯')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'aI', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɔY', 'ɔɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ai̯', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'OI_', 'ɔɪ̯')"/>

<xsl:variable name="sierra" select="replace($sierra, 'n=', 'n̩')"/>
<xsl:variable name="sierra" select="replace($sierra, 'm=', 'm̩')"/>
<xsl:variable name="sierra" select="replace($sierra, 'N=', 'ŋ̩')"/>

<xsl:variable name="sierra" select="replace($sierra, 'S', 'ʃ')"/>
<xsl:variable name="sierra" select="replace($sierra, '@', 'ə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'N', 'ŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'Q', 'ʔ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'E', 'ɛ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'O', 'ɔ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'C', 'ç')"/>
<xsl:variable name="sierra" select="replace($sierra, 'I', 'ɪ')"/>
<xsl:variable name="sierra" select="replace($sierra, '9', 'œ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'U', 'ʊ')"/>
<xsl:variable name="sierra" select="replace($sierra, '6', 'ɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'r', 'ʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'Z', 'ʒ')"/>
<!-- normalize space -->
<xsl:variable name="sierra" select="normalize-space($sierra)"/>
<xsl:variable name="sierra" select="replace($sierra, ' ', '')"/>
<!-- convert more SAMPA characters to IPA -->
<xsl:variable name="sierra" select="replace($sierra, 'Y','ʏ')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'l̩', 'l')"/> <!-- this is a workaround to be simon compatible -->
<xsl:variable name="sierra" select="replace($sierra, 'a:', 'aː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'e:', 'eː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'i:', 'iː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'o:', 'oː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'u:', 'uː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɛ:', 'ɛː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'y:', 'yː')"/>
<xsl:variable name="sierra" select="replace($sierra, '2:', 'øː')"/>
  <xsl:sequence select="$sierra"/></xsl:element>
 </xsl:for-each>
</xsl:template>

<!-- (2*) 20091023 currently in use; seems to be OK -->
<xsl:template name="espeaktoipa-outside">
 <xsl:variable name="sierra-outside">
  <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text>
   <xsl:element name="phoneme">
    <xsl:variable name="sierra">
     <xsl:value-of select="."/>
    </xsl:variable>
<!-- 20091018 convert eSpeak to SAMPA -->
<xsl:variable name="sierra" select="replace($sierra, '3', 'ɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'A', 'a')"/>
<xsl:variable name="sierra" select="replace($sierra, '_!', 'Q')"/>
<xsl:variable name="sierra" select="replace($sierra, '_\|', 'Q')"/>
<xsl:variable name="sierra" select="replace($sierra, 'pF', 'pf')"/>
<xsl:variable name="sierra" select="replace($sierra, 'W', 'œ')"/>
<xsl:variable name="sierra" select="replace($sierra, '_\^_', '')"/>
<xsl:variable name="sierra" select="replace($sierra, '@-', '')"/>
<xsl:variable name="sierra" select="replace($sierra, ',', '')"/>
<xsl:variable name="sierra" select="replace($sierra, ';', '')"/>
<xsl:variable name="sierra" select="replace($sierra, 'Y:', 'øː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'E2', 'ɛ')"/>
<xsl:variable name="sierra" select="replace($sierra, '_:_:', '')"/>
<xsl:variable name="sierra" select="replace($sierra, '\*', 'ʀ')"/>
<!-- convert SAMPA to IPA -->
<xsl:variable name="sierra" select="replace($sierra, 'aU_', 'aʊ̯')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'aI_', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'EI_', 'ɛɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aɪ̯_', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɛɪ_', 'ɛɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɔɪ_', 'ɔɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aʊ̯_', 'aʊ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'au̯', 'aʊ̯')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'aU', 'aʊ̯')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'aI', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɔY', 'ɔɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ai̯', 'aɪ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'OI_', 'ɔɪ̯')"/>

<xsl:variable name="sierra" select="replace($sierra, 'n=', 'n̩')"/>
<xsl:variable name="sierra" select="replace($sierra, 'm=', 'm̩')"/>
<xsl:variable name="sierra" select="replace($sierra, 'N=', 'ŋ̩')"/>

<xsl:variable name="sierra" select="replace($sierra, 'S', 'ʃ')"/>
<xsl:variable name="sierra" select="replace($sierra, '@', 'ə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'N', 'ŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'Q', 'ʔ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'E', 'ɛ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'O', 'ɔ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'C', 'ç')"/>
<xsl:variable name="sierra" select="replace($sierra, 'I', 'ɪ')"/>
<xsl:variable name="sierra" select="replace($sierra, '9', 'œ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'U', 'ʊ')"/>
<xsl:variable name="sierra" select="replace($sierra, '6', 'ɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'r', 'ʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'Z', 'ʒ')"/>
<!-- normalize space -->
<xsl:variable name="sierra" select="normalize-space($sierra)"/>
<xsl:variable name="sierra" select="replace($sierra, ' ', '')"/>
<!-- convert more SAMPA characters to IPA -->
<xsl:variable name="sierra" select="replace($sierra, 'Y','ʏ')"/> 
<xsl:variable name="sierra" select="replace($sierra, 'l̩', 'l')"/> <!-- this is a workaround to be simon compatible -->
<xsl:variable name="sierra" select="replace($sierra, 'a:', 'aː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'e:', 'eː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'i:', 'iː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'o:', 'oː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'u:', 'uː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɛ:', 'ɛː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'y:', 'yː')"/>
<xsl:variable name="sierra" select="replace($sierra, '2:', 'øː')"/>
 <xsl:sequence select="$sierra"/>

   </xsl:element>
  </xsl:for-each>
 </xsl:variable>
 <xsl:sequence select="$sierra-outside"/>
</xsl:template>

<!-- (3)  -->
<xsl:template name="create-phoneme">

<xsl:for-each select="phoneme"><xsl:text>
   </xsl:text><phoneme>
<xsl:variable name="sierra"><xsl:value-of select="."/></xsl:variable>


<!-- replace several phonemes --> 
<xsl:variable name="sierra" select="replace($sierra, 'manaːgɐ', 'mɛnəʒɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'teːaːm', 'tiːm')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɪlhəlmshavən', 'vɪlhɛlmshaːfən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɪlhəlm', 'vɪlhɛlm')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɛtbeːvɐbs', 'vɛtbeːvɐps')"/>
<xsl:variable name="sierra" select="replace($sierra, 'toːdəʀnst', 'toːdɛʀnst')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐtʀaːgs', 'fɐtʀaːks')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɪnziːdɐ', 'ɪnzaɪ̯dɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'miːliːtɛʀ', 'miːliːtɛːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'geːaɪ̯mdiːnst', 'gəhaɪ̯mdiːnst')"/>
<xsl:variable name="sierra" select="replace($sierra, 'liːtsənts', 'liːtsɛnts')"/>
<xsl:variable name="sierra" select="replace($sierra, 'paʀtyːs', 'paʀtiːs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀbeːʀaɪ̯tʊŋ', 'fɔʀbəʀaɪ̯tʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ənspiːl', 'ənʃpiːl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'thəsə', 'theːsə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'statʀaːt', 'ʃtatʀaːt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'statsɪoːn', 'ʃtatsɪoːn')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɪntɛʀviːv', 'ɪntɛʀvɪuː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃʊtsgeːzɛts', 'ʃʊtsgəzɛts')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kaʀtəl', 'kaʀtɛl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kaʀstat', 'kaʀʃtat')"/>
<xsl:variable name="sierra" select="replace($sierra, 'zɛʀviːkɛ', 'zœʀvɪs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'viːdɐstand', 'viːdɐʃtand')"/>
<xsl:variable name="sierra" select="replace($sierra, 'geːʀɛçt', 'gəʀɛçt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gəʀɛːteː', 'gəʀɛːtə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'veːʀaɪ̯nɪgʊŋ', 'fəʀaɪ̯nɪgʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'stʀaːsə', 'ʃtʀaːsə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gɛstɛlt', 'gəʃtɛlt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'eːtapɛn', 'eːtapən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'geːzɛlʃaft', 'gəzɛlʃaft')"/>
<xsl:variable name="sierra" select="replace($sierra, 'naːmɛstɛlə', 'naːməʃtɛlə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'meːdaɪ̯lən', 'meːdaɪ̯jən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐvaltʊŋ', 'fɐvaltʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'moːbiːliːn', 'moːbiːliːən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bətsuːgs', 'bətsuːks')"/>
<xsl:variable name="sierra" select="replace($sierra, 'halbkuːgəl', 'halpkuːgəl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'stuːdɪoː', 'ʃtuːdɪoː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gəfɛʀbt', 'gəfɛʀpt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'teːaːm', 'tiːm')"/>
<xsl:variable name="sierra" select="replace($sierra, 'styk', 'ʃtyk')"/>
<!-- <xsl:variable name="phoneme-cdu" select="replace($phoneme-stueck, 'seːdeːuː', 'tseːdeːuː')"/> -->
<xsl:variable name="sierra" select="replace($sierra, 'vɐhøːʀ', 'fɐhøːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'handbʊx', 'handbuːx')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀzɪts', 'fɔʀzɪts')"/>

<!-- 20090930 -->
<xsl:variable name="sierra" select="replace($sierra, 'kʊltʊʀ', 'kʊltuːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'zydlɛndɐ', 'zyːdlɛndɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'klɔstɐ', 'kloːstɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɛnbeːaːʃtaːʀ', 'ɛnbeːEI_staːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kɔmpuːtɐ', 'kɔmpjuːtɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'viːdeːʀɛʀʀɪçtʊŋ', 'viːdəʀɛʀɪçtʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'koːpeːʀiːʀ', 'koːOpeːʀiːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'laɪ̯tsɪs', 'laːiːtsɪs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fɛʀzɛlpstɛndɪçt', 'fɛʀzɛlpʃtɛndɪçt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aktiːn', 'aktiːən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'natʊʀgeːvalt', 'natuːʀgeːvalt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fluːgvɐkeːʀ', 'fluːkfɐkeːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'tabəlɛn', 'tabɛlɛn')"/>
<xsl:variable name="sierra" select="replace($sierra, 'naɪ̯və', 'naːiːvə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bʊndeːzanvalt', 'bʊndəsanvalt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'apiːtuːʀ', 'abItuːʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'lɔstsuːvəʀdən', 'loːstsuːvɛʀdən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aʊ̯ftʀagzaɪ̯ŋɛŋə', 'aʊ̯ftʀaːksaɪ̯ngɛŋə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'lœst', 'løːst')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fluːgbəntsɪn', 'fluːkbɛntsiːn')"/>
<xsl:variable name="sierra" select="replace($sierra, 'jɔŋliːʀt', 'dʒɔŋliːʀt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'nɔʀdfʀiːslant', 'nɔʀtfʀiːslant')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fluːghøːə', 'fluːkhøːə')"/>

<xsl:variable name="sierra" select="replace($sierra, 'meːʀhaɪ̯tzaɪ̯gnɐ', 'meːʀhaɪ̯tsaɪ̯gnɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bɔksənstɔp', 'bɔksənʃtɔp')"/>
<xsl:variable name="sierra" select="replace($sierra, 'apiːtʊʀ', 'abiːtʊʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'jaːʀbʊx', 'jaːʀbuːx')"/>
<xsl:variable name="sierra" select="replace($sierra, 'dʀʊmheːʀʊm', 'dʀʊmhəʀʊm')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃtʀasənspɛʀə', 'ʃtʀaːsənspɛʀə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'anneːgʀət', 'annəgʀeːt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'flʊtvɛlə', 'fluːtvɛlə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gʀɔsbaʊ̯stɛlə', 'gʀoːsbaʊ̯ʃtɛlə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐhɛltnɪs', 'fɐhɛltnɪs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'datənbazɪs', 'daːtənbaːzɪs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'zɛlpstɛndɪç', 'zɛlpʃtɛndɪç')"/>
<xsl:variable name="sierra" select="replace($sierra, 'beːœʀdə', 'beːhœʀdə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kɔʀʊptsɪoːnzafɛːʀə', 'kɔʀʊptsɪoːnsafɛːʀə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gɛʃɪçtə', 'gəʃɪçtə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gɛʃɛft', 'gəʃɛft')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vandeːʀʊŋ', 'vandəʀʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'pʀoːtseːs', 'pʀoːtsɛs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'altags', 'altaks')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃʊldspʀʊk', 'ʃʊltʃpʀʊx')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃtaːtzanvalt', 'ʃtaːtsanvalt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vaxstʊm', 'vakstuːm')"/>
<xsl:variable name="sierra" select="replace($sierra, 'tʀɔstʀʊndə', 'tʀoːstʀʊndə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'namənsçɪld', 'namənsʃɪld')"/>
<xsl:variable name="sierra" select="replace($sierra, 'baɪ̯çteːn', 'baɪ̯çtən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'juːgəndbeːgeːgnʊŋ', 'juːgəntbeːgeːgnʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gəvɛʀbeːamt', 'gəvɛʀbəamt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aktsɪoːnɛʀsçytsəʀ', 'aktsɪoːnɛʀsʃytsəʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gəvɛʀbeː', 'gəvɛʀbə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bəʃtmøːglɪç', 'bəstmøːglɪç')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fɛʀpœntə', 'fɛʀpøːntə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'toːdɛsçytsə', 'toːdəsʃytsə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gɔlfstʀoːm', 'gɔlfʃtʀoːm')"/>
<xsl:variable name="sierra" select="replace($sierra, 'duːɪsbʊʀg', 'dyːsbʊʀk')"/><!-- this is not good -->
<xsl:variable name="sierra" select="replace($sierra, 'diːbstaːl', 'diːpʃtaːl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vøːgəl', 'føːgəl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'pʊŋktspiːl', 'pʊŋktʃpiːl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀstəlʊŋ', 'fɔʀstəlʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀʃlɛːgə', 'fɔʀʃlɛːgə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbandəs', 'fɐbandəs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀlaːgə', 'fɔʀlaːgə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀhaːbən', 'fɔʀhaːbən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐzɔʀgɐ', 'fɐzɔʀgɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɑ̃gaʒəmɑ̃ː', 'OgaʒəmO')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bʀɑ̃ːʃ', 'bʀOʃ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ɛʀfɔlgs', 'ɛʀfɔlks')"/>
<!-- 20091004 -->
<xsl:variable name="sierra" select="replace($sierra, 'fɛʀtʀags', 'fɛʀtʀaːks')"/>
<xsl:variable name="sierra" select="replace($sierra, 'voːgəl', 'foːgəl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'aŋeːøːʀɪ', 'aŋeːhøːʀɪ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'glaɪ̯çstəlʊŋ', 'glaɪ̯çʃtɛlʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀtaɪ̯l', 'fɔʀtaɪ̯l')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐboːt', 'fɐboːt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbʀɛçɐ', 'fɐbʀɛçɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kyçə', 'kʏçə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kyndɪgʊŋ', 'kʏndɪgʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀbəʀaɪ̯tʊŋ', 'fɔʀbəʀaɪ̯tʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'çampjoːnsleːaguːə', 'tʃɛmpjoːnsliːk')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀstant', 'fɔʀstant')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bʊndɛs', 'bʊndəs')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bʊndeːzan', 'bʊndəsʔan')"/>
<xsl:variable name="sierra" select="replace($sierra, 'kɛːzeː', 'kɛːzə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbʀɛnʊŋ', 'fɐbʀɛnʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'spʀaːxə', 'ʃpʀaːxə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'stʀəkən', 'ʃtʀɛkən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'viːdɐstant', 'viːdɐʃtant')"/>
<xsl:variable name="sierra" select="replace($sierra, 'stɔɪ̯ɐ', 'ʃtɔɪ̯ɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃaʊ̯spiːl', 'ʃaʊ̯ʃpiːl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'stuːdɛnt', 'ʃtuːdɛnt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'iːʀt', 'iːɐ̯t')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fɛʀiːtaːbl', 'veːʀiːtaːbl')"/>
<xsl:variable name="sierra" select="replace($sierra, 'eːʀt', 'eːɐ̯t')"/>
<xsl:variable name="sierra" select="replace($sierra, 'veːʀaɪ̯nə', 'fɛʀaɪ̯nə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'oːʀtsuː', 'oːɐ̯tsuː')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐfaːʀən', 'fɐfaːʀən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃtuːdiːn', 'ʃtuːdiːən')"/>
<xsl:variable name="sierra" select="replace($sierra, 'zyntəsə', 'zynteːzə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbant', 'fɐbant')"/>
<xsl:variable name="sierra" select="replace($sierra, 'oːʀtʀ', 'oːɐ̯tʀ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'eːʀlɪç', 'eːɐ̯lɪç')"/>
<!-- 20091008 -->
<xsl:variable name="sierra" select="replace($sierra, 'yːʀt', 'yːɐ̯t')"/>
<xsl:variable name="sierra" select="replace($sierra, 'iːʀg', 'iːɐ̯g')"/>
<xsl:variable name="sierra" select="replace($sierra, 'iːʀs', 'iːɐ̯s')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbɪndʊŋ', 'fɐbɪndʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'bɛstant', 'bəʃtant')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʊntɐlɛgʃaɪ̯bə', 'ʊntɐleːkʃaɪ̯bə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'fʀageː', 'fʀaːgə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'geːbiːt', 'gəbiːt')"/>
<xsl:variable name="sierra" select="replace($sierra, 'gɛspʀɛçə', 'gəʃpʀɛːçə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'ʃtʀəkə', 'ʃtʀɛkə')"/>
<xsl:variable name="sierra" select="replace($sierra, 'tʀansfɐ', 'transfeːɐ̯')"/>
<xsl:variable name="sierra" select="replace($sierra, 'veːʀaʀbaɪ̯tʊŋ', 'fɛʀaʀbaɪ̯tʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɔʀgaŋ', 'fɔʀgaŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'mɛsvɐt', 'mɛsveːɐ̯t')"/>
<xsl:variable name="sierra" select="replace($sierra, 'spʀɪts', 'Spʀɪts')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbɛsəʀɐ', 'fɐbɛsəʀɐ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐbɛsəʀʊŋ', 'fɐbɛsəʀʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'vɐmɪtlʊŋ', 'fɐmɪtlʊŋ')"/>
<xsl:variable name="sierra" select="replace($sierra, 'foːtoːxeːmɪʃ', 'foːtoːCeːmɪʃ')"/>

<xsl:sequence select="$sierra"/></phoneme>
</xsl:for-each>
</xsl:template>

<!-- (5) create lexeme .. -->
<xsl:template name="create-lexeme"><xsl:text>
 </xsl:text>
 <xsl:element name="lexeme">
  <xsl:call-template name="test-grapheme"/><xsl:text>
 </xsl:text></xsl:element>
</xsl:template>

<!-- (6) .. with role -->
<xsl:template name="create-lexemewithrole">
 <xsl:param name="rolevalue"></xsl:param><xsl:text>
 </xsl:text>
 <xsl:element name="lexeme">
  <xsl:attribute name="role" select="$rolevalue"/>
  <xsl:call-template name="test-grapheme"/><xsl:text>
 </xsl:text>
 </xsl:element>
</xsl:template>

<!-- (7) -->
<xsl:template name="create-different-phonemes">
     <xsl:param name="iieren"></xsl:param>
     <xsl:variable name="different">
      <xsl:for-each select="phoneme">
       <xsl:value-of select="string-join((., $iieren), ' ')"/><xsl:text> </xsl:text>
      </xsl:for-each>
     </xsl:variable> 
     <xsl:variable name="different" select="tokenize(($different), ' ')"/>
     <xsl:for-each select="distinct-values($different)">
<xsl:if test="not(.='')">
<xsl:text>
   </xsl:text>
       <xsl:element name="phoneme">
        <xsl:value-of select="."/>
       </xsl:element>
</xsl:if>
     </xsl:for-each>
</xsl:template>

<!-- (8) will continue to use this version-->
<xsl:template name="test-grapheme">
 <xsl:call-template name="grapheme-outside"/>
<!-- <xsl:call-template name="espeaktoipa-outside"/>-->

  <xsl:choose>
  <xsl:when test="ends-with(grapheme, 'verkehr')"> <!-- modify phoneme if grapheme ends-with .. -->
    <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, 'vɐkeːʀ', 'fɐkeːɐ̯')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'fɐkeːʀ', 'fɐkeːɐ̯')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'verkehr')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'vɐkeːʀ', 'fɐkeːʀ')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'fɐkeːʀs', 'fɐkeːɐ̯s')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'fɐkeːʀz', 'fɐkeːɐ̯s')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'vɐkeːɐ̯', 'fɐkeːɐ̯')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'fɛʀkeːʀz', 'fɐkeːɐ̯s')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'fɛʀkeːʀs', 'fɛʀkeːɐ̯s')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'clownesk')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'klɔvnɛsk', 'klaU_nɛsk')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Dehydr')"> <!-- modify phoneme if grapheme contains .. -->
    <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ːydʀ', 'deːhydʀ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'ieren')"> <!-- compute-phoneme "ieren"-->
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'iːʀən')">
      <xsl:variable name="ieren" select="replace($ieren, 'iːʀən', 'iːɐ̯n')"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="not(ends-with($ieren, 'iːʀən'))">
      <xsl:variable name="ieren" select="$ieren"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'stelle')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'stɛlə', 'Stɛlə')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Schulter')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'ʃuːltɛʀ', 'ʃUltɛʀ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'ierb')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'iːʀb', 'iːɐ̯b')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'ierk')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'iːʀk', 'iːɐ̯k')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'ierj')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'iːʀj', 'iːɐ̯j')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'ierl')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'iːʀl', 'iːɐ̯l')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'sschl')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'sçl', 'sʃl')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Leitungs')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'laɪ̯tʔʊngs', 'laɪ̯tʊngs')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Lüftung')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'lyftʊŋ', 'lʏftʊŋ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Haarsp')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'haːʀsp', 'haːʀʃp')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Lügner')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'lygn', 'lyːgn')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'gier')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'giːʀ', 'giːɐ̯')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Geldg')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'gɛldg', 'gɛltg')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'unglück')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'ʊŋlyk', 'ʊnglʏk')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'glück')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'glyk', 'glʏk')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'gründung')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'gʀyndʊŋ', 'gʀʏndʊŋ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'gründe')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'gʀyndə', 'gʀʏndə')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'spitze')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'spɪtsə', 'ʃpɪtsə')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'verknappung')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'vɐknapʊŋ', 'fɐknapʊŋ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Ressourcen')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'ʀɛsuːʀkɛn', 'ʀɛsuːʀsən')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'ressourcen')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'ʀɛsuːʀkɛn', 'ʀɛsuːʀsən')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'ors')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'oːʀs', 'oːɐ̯s')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'or')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'oːʀ', 'oːɐ̯')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'ehrm')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'eːʀm', 'eːɐ̯m')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Mehrk')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'meːʀk', 'meːɐ̯k')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Panzer')"> <!-- modify phoneme if grapheme contains .. -->
    <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, 'pantseːʀ', 'pantsəʀ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <!-- 20091024 -->
  <xsl:when test="ends-with(grapheme, 'ichen')"> 
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'çən')">
      <xsl:variable name="ieren" select="replace($ieren, 'çən', 'çn̩')"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="not(ends-with($ieren, 'çən'))">
      <xsl:variable name="ieren" select="$ieren"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'vertraglich')">
    <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, 'vɐtʀaːglɪç', 'fɐtʀaːklɪç')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'ichens')"> 
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'çəns')">
      <xsl:variable name="ieren" select="replace($ieren, 'çəns', 'çn̩s')"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="not(ends-with($ieren, 'çəns'))">
      <xsl:variable name="ieren" select="$ieren"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Frame')">
    <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, 'fʀamɛ', 'frɛɪ̯m')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'pen')"> 
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'pən')">
      <xsl:variable name="ieren" select="replace($ieren, 'pən', 'pm̩')"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="not(ends-with($ieren, 'pən'))">
      <xsl:variable name="ieren" select="$ieren"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/><xsl:text> </xsl:text></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Bücher')">
    <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, 'byçɐ', 'byːçɐ')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'byçeːʀ', 'byːçəʀ')"/>
    <xsl:variable name="sierra" select="replace($sierra, 'byçɛʀ', 'byːçəʀ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="contains(grapheme, 'stoff')">
    <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, 'stɔf', 'ʃtɔf')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'tsch')">
    <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, 'teːʃ', 'tʃ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Tsch')">
    <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, 'teːʃ', 'tʃ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'den')"> <!--linksdrehenden ist fehler -->
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'dən')">
      <xsl:variable name="ieren" select="replace($ieren, 'dən', 'dn̩')"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="not(ends-with($ieren, 'dən'))">
      <xsl:variable name="ieren" select="$ieren"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/><xsl:text> </xsl:text></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
  </xsl:when>

  <xsl:when test="ends-with(grapheme, 'ten')"> <!--linksdrehenden ist fehler -->
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'tən')">
      <xsl:variable name="ieren" select="replace($ieren, 'tən', 'tn̩')"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
     <xsl:if test="not(ends-with($ieren, 'tən'))">
      <xsl:variable name="ieren" select="$ieren"/>
      <xsl:call-template name="create-different-phonemes"> 
       <xsl:with-param name="iieren"><xsl:sequence select="$ieren"/><xsl:text> </xsl:text></xsl:with-param>
      </xsl:call-template>
     </xsl:if>
  </xsl:when>

  <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>

  <xsl:otherwise>
    <xsl:call-template name="espeaktoipa-outside"/> <!-- call 2 -->
  </xsl:otherwise>
  </xsl:choose>

</xsl:template>

<!-- (8*) dont use -->
<xsl:template name="test-grapheme-outside">
 <xsl:call-template name="grapheme-outside"/>
 <xsl:for-each select="phoneme">
 <xsl:call-template name="changephonemes"> <!-- call 10 -->
  <xsl:with-param name="testsierra" select="."/>
 </xsl:call-template>
 </xsl:for-each>  
</xsl:template>

<!-- (10) dont use-->
<xsl:template name="changephonemes">
 <xsl:param name="testsierra"></xsl:param>
<xsl:value-of select="grapheme"/>grapheme
<xsl:value-of select="parent::grapheme"/>parentgrapheme
   <xsl:variable name="sierra">
     <xsl:choose>
     <xsl:when test="ends-with(grapheme, 'verkehr')">
      <xsl:element name="phoneme">
       <xsl:variable name="sierra"><xsl:sequence select="$testsierra"/></xsl:variable>
       <xsl:variable name="sierra" select="replace($sierra, 'vɐkeːʀ', 'fɐkeːɐ̯')"/>
       <xsl:variable name="sierra" select="replace($sierra, 'fɐkeːʀ', 'fɐkeːɐ̯')"/>
       <xsl:sequence select="$sierra"/>
      </xsl:element>
     </xsl:when>
     <xsl:otherwise>
      <xsl:sequence select="$testsierra"/>10-otherwise
     </xsl:otherwise>
     </xsl:choose>
  </xsl:variable>
 <xsl:sequence select="$sierra"/>10-outside
</xsl:template>

<!-- (9) -->
<xsl:template match="lexicon"><xsl:text>
</xsl:text><!-- 20091024 -->
<xsl:variable name="phoneme-wortende"/><xsl:comment>    Ralf's German dictionary (version 0.1.6; October 24, 2009)
    contains more than 220.000 words, and of course errors. 
    You can import this dictionary into 'simon'.</xsl:comment><xsl:text>
</xsl:text>
<xsl:comment>    This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 3 of the License, or
        (at your option) any later version.
        
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
        
        You should have received a copy of the GNU General Public License
        along with this program; if not, write to the Free Software
        Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
        MA 02110-1301, USA. </xsl:comment><xsl:text>
</xsl:text>
<lexicon version="1.0" alphabet="ipa" xml:lang="de">

<xsl:for-each select="lexeme">
<!-- <xsl:sort select="grapheme" order="ascending"/> -->


<xsl:variable name="rolecontent" select="@role"></xsl:variable> 
  <xsl:choose>
  <xsl:when test="compare($rolecontent, '')">
   <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue" select="$rolecontent"/>
   </xsl:call-template>
  </xsl:when>

  <xsl:otherwise>
    <xsl:choose>
    <xsl:when test="starts-with(grapheme, 'aufzu')"> <!--auf...enden-->
     <xsl:choose>
     <xsl:when test="ends-with(grapheme, 'nehmenden')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Adjektiv</xsl:with-param>
      </xsl:call-template>
     </xsl:when>
     <xsl:otherwise>
      <xsl:call-template name="create-lexeme"/>
     </xsl:otherwise>
     </xsl:choose>
    </xsl:when>

    <xsl:when test="ends-with(grapheme, 'fähig')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Adjektiv</xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="ends-with(grapheme, 'los')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Adjektiv</xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="starts-with(grapheme, 'sechsund')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Zahlwort</xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="ends-with(grapheme, 'ig')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Adjektiv</xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="starts-with(grapheme, 'cool')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Adjektiv</xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="ends-with(grapheme, 'isch')">
      <xsl:call-template name="create-lexemewithrole"><xsl:with-param name="rolevalue">Adjektiv</xsl:with-param>
      </xsl:call-template>
    </xsl:when>

    <xsl:otherwise>
     <xsl:call-template name="create-lexeme"/>
    </xsl:otherwise>
    </xsl:choose>

  </xsl:otherwise>
  </xsl:choose>

</xsl:for-each><xsl:text>
</xsl:text>
</lexicon>
</xsl:template>

</xsl:stylesheet>

