<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- 20100216 -->
<!--    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*) 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>



<!-- 20091029 -->
<xsl:template name="convert-ascii-phonemes-to-ipa">

    <xsl:variable name="sierra">
     <xsl:value-of select="."/> <!-- should select the current phoneme -->
    </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:', 'øː')"/>
<!-- 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"/>

</xsl:template>

<!-- 20100207 -->
<xsl:template name="espeaktoipa-outside">

 <xsl:variable name="sierra-outside">
  <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text>
   <xsl:element name="phoneme">
    <xsl:call-template name="convert-ascii-phonemes-to-ipa"/>
   </xsl:element>
  </xsl:for-each>
 </xsl:variable>
 <xsl:sequence select="$sierra-outside"/>

</xsl:template>

<!--20100207-->
<xsl:template name="create-phoneme">
 <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text>
  <element name="phoneme">
   <xsl:variable name="sierra">
    <xsl:value-of select="."/>
   </xsl:variable>
   <xsl:sequence select="$sierra"/>
  </element>
 </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:choose>
<!-- 20100207 removed 1. verkehr 2. verkehr 3. clownesk-->

  <xsl:when test="starts-with(grapheme, 'Dehydr')"> 
    <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ə', 'ʃtɛ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ɛʀ', 'ʃʊltɛʀ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>
<!--20100207 7. remove ierb; inserting it again-->
<xsl:when test="contains(grapheme, 'ierb')"> <!-- modify phoneme if grapheme contains .. -->
<xsl:for-each select="phoneme"><xsl:text>
  </xsl:text><element name="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"/></element>
</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>
<!--20100207-->
  <xsl:when test="contains(grapheme, 'soft')"> <!-- 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, 's0ft', 'sɔft')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>
<!--20100207-->
  <xsl:when test="contains(grapheme, 'ahrt')"> <!-- modify phoneme if grapheme contains .. -->
    <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text><element name="phoneme">
    <xsl:variable name="sierra"><xsl:value-of select="."/></xsl:variable>
    <xsl:variable name="sierra" select="replace($sierra, 'aːʀt', 'aːɐ̯t')"/>
    <xsl:sequence select="$sierra"/></element>
    </xsl:for-each>
  </xsl:when>
<!--20100207-->
  <xsl:when test="contains(grapheme, 'bericht')"> 
    <xsl:for-each select="phoneme"><xsl:text>
   </xsl:text><element name="phoneme">
    <xsl:variable name="sierra"><xsl:value-of select="."/></xsl:variable>
    <xsl:variable name="sierra" select="replace($sierra, 'beːʀɪçt', 'bəʀɪçt')"/>
    <xsl:sequence select="$sierra"/></element>
    </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="contains(grapheme, 'leitungs')"> <!-- 20100207-->
    <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>
<!--20100207-->
  <xsl:when test="contains(grapheme, 'lüftung')">
    <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')"> <!-- 20100207 .. -->
    <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ːʀʃp', 'haːɐ̯ʃp')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>
<!--20100207 removed Lügner-->


  <xsl:when test="ends-with(grapheme, 'gier')">
    <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>
<!--20100207 6. ür at the end -->
  <xsl:when test="ends-with(grapheme, 'ühr')"> 
    <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, 'yːʀ', 'yːɐ̯')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

  <xsl:when test="starts-with(grapheme, 'Geldg')"> 
    <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')"> 
    <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')"> 
    <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')"> 
    <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>
<!-- 20100207 4. pen-->
  <xsl:when test="ends-with(grapheme, 'ken')"> 
     <xsl:variable name="ieren">
      <xsl:value-of select="phoneme[1]"/>
     </xsl:variable>
     <xsl:if test="ends-with($ieren, 'kən')">
      <xsl:variable name="ieren" select="replace($ieren, 'kən', 'kŋ̩')"/>
      <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, 'kə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>
<!-- 20100206 -->
  <xsl:when test="ends-with(grapheme, 'vorrichtung')">
    <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ʊŋ', 'foːɐ̯ʀɪçtʊŋ')"/>
    <xsl:sequence select="$sierra"/></phoneme>
    </xsl:for-each>
  </xsl:when>

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

</xsl:template>
<!--20100207 5. removed test-grapheme outside removed changephonemes -->


<!-- (9) -->
<xsl:template match="lexicon"><xsl:text>
</xsl:text><!-- 20100216 -->
<xsl:comment>    Ralf's German dictionary (version 0.1.8; February 18, 2010)
        More than 300.000 words, needs improvement. 
        You can import this PLS dictionary into 'simon'. More info:
        http://spirit.blau.in/simon/2010/01/08/tutorial-how-to-install-under-ubuntu/ </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>
<xsl:comment>	This PLS dictionary is licensed under the GPLv3.
	Read the full license text: http://script.blau.in/etc/GPL_License </xsl:comment><xsl:text>
</xsl:text>

<lexicon version="1.0" alphabet="ipa" xml:lang="de-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="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: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>

