summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2009-09-22 17:00:28 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2009-09-22 17:06:25 -0700
commite3ca67521f1436b18c1161619d6c6ed7567468c1 (patch)
tree6f24928c24ba88bdbe89cdbedf720c06a5ad48e7
parent56baea0cc3e7ed32c2aa173a0b661d3cf118a92b (diff)
downloadexternal_svox-e3ca67521f1436b18c1161619d6c6ed7567468c1.zip
external_svox-e3ca67521f1436b18c1161619d6c6ed7567468c1.tar.gz
external_svox-e3ca67521f1436b18c1161619d6c6ed7567468c1.tar.bz2
Add 283 tests to exercise the XSAMPA langague specific characters for TTS.
-rw-r--r--pico/tests/data/xsampa_pico_man_README.txt23
-rw-r--r--pico/tests/data/xsampa_pico_man_de-DE.txt248
-rw-r--r--pico/tests/data/xsampa_pico_man_en-GB.txt192
-rw-r--r--pico/tests/data/xsampa_pico_man_en-US.txt185
-rw-r--r--pico/tests/data/xsampa_pico_man_es-ES.txt131
-rw-r--r--pico/tests/data/xsampa_pico_man_fr-FR.txt153
-rw-r--r--pico/tests/data/xsampa_pico_man_it-IT.txt210
7 files changed, 1142 insertions, 0 deletions
diff --git a/pico/tests/data/xsampa_pico_man_README.txt b/pico/tests/data/xsampa_pico_man_README.txt
new file mode 100644
index 0000000..d0b785e
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_README.txt
@@ -0,0 +1,23 @@
+ReadME for the XSAMPA Pico TTS tests
+
+The following files contain a series of utterances to test the Pico TTS engine with regards to
+the support of language-specific XSAMPA characters:
+
+ xsampa_pico_man_de-DE.txt
+ xsampa_pico_man_en-GB.txt
+ xsampa_pico_man_en-US.txt
+ xsampa_pico_man_es-ES.txt
+ xsampa_pico_man_fr-FR.txt
+ xsampa_pico_man_it-IT.txt
+
+They implement the examples given in section A.4 of the SVOX Pico Manual ("SVOX Pico - Speech Output
+Engine SDK").
+They are formatted as utterances that can be sent to the Pico engine through the Android 1.6 API.
+This is achieved by using the TextToSpeech.speak() method of the android.speech.tts package.
+The test files adopt the following syntax:
+- the lines used in the test are between the lines marked "BEGIN_TEST" and "END_TEST",
+- lines that start with "#" are not spoken.
+The application found in external/svox/pico/tests/apps/SpeechTester lets you load those files and
+run the test, i.e. play all valid test lines in the test file. Copy the test files to the
+Android-powered device, and enter the file name that contains the test to run, and click "Run test".
+
diff --git a/pico/tests/data/xsampa_pico_man_de-DE.txt b/pico/tests/data/xsampa_pico_man_de-DE.txt
new file mode 100644
index 0000000..e2bc5a8
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_de-DE.txt
@@ -0,0 +1,248 @@
+# BEGIN_TEST
+
+#------------------------------
+# German (de-DE)
+#
+# Notes: These tests use the XSAMPA examples given in the pico manual.
+# The only differences between the manual and the test strings are:
+# 1/ replaced the primary stress character " (double quote) by its dec code &#34;
+# 2/ the XSAMPA "r\" is replaced by "r\\" (the backslash is escaped) otherwise pico says
+# garbage or the [rrr] sound is pronounced "j" (as a french j)
+# When a test is marked as "BUG", if possible, the tester will capture an approximate
+# transcription of what was heard inside [ ].
+
+# Consonants
+# --------- Plosives
+
+# TEST ? Abend "?a:.b@nt
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;?a:.b@nt"/>.</speak>
+
+# TEST b Ball "bal
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;bal"/>.</speak>
+
+# TEST d Dach "dax
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;dax"/>.</speak>
+
+# TEST g Gabe "ga:.b@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ga:.b@"/>.</speak>
+
+# TEST k Kamm "kam
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;kam"/>.</speak>
+
+# TEST p Post "pOst
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;pOst"/>.</speak>
+
+# TEST t Tritt "tRIt
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;tRIt"/>.</speak>
+
+
+# --------- Nasals
+
+# TEST N lang "laN
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;laN"/>.</speak>
+
+# TEST m Matte "ma.t@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ma.t@"/>.</speak>
+
+# TEST n Nest "nEst
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;nEst"/>.</speak>
+
+
+
+# --------- Fricatives
+# TEST C Milch "mIlC
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;mIlC"/>.</speak>
+
+# TEST R Rabe "Ra:.b@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;Ra:.b@"/>.</speak>
+
+# TEST S Masche "ma.S@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ma.S@"/>.</speak>
+
+# TEST Z Genie Ze."ni:
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="Ze.&#34;ni"/>.</speak>
+
+# TEST f Affe "?a.f@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;?a.f@"/>.</speak>
+
+# TEST h Hund "hUnt
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;hUnt"/>.</speak>
+
+# TEST s Masse "ma.s@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ma.s@"/>.</speak>
+
+# BUG v Wahl "va:l says [val], [a] should be long
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;va:l"/>.</speak>
+
+# TEST x Bach "bax
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;bax"/>.</speak>
+
+# TEST z Rose "Ro:.z@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;Ro:.z@"/>.</speak>
+
+# --------- Approximants
+
+# TEST j Jagd "ja:kt
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ja:kt"/>.</speak>
+
+# TEST l Luft "lUft
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;lUft"/>.</speak>
+
+# --------- Syllabic Consonants
+
+# BUG l= Nabel "na:.b=l says [natrel], error on [b]
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;na:.b=l"/>.</speak>
+
+# TEST m= hartem "haR.t=m
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;haR.t=m"/>.</speak>
+
+# TEST n= Latten "la.t=n
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;la.t=n"/>.</speak>
+
+
+# --------- Affricates
+
+# TEST d_Z Dschungel "d_ZU.N@l
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;d_ZU.N@l"/>.</speak>
+
+# TEST p_f Dampf "damp_f
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;damp_f"/>.</speak>
+
+# TEST t_S Klatsch "klat_S
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;klat_S"/>.</speak>
+
+# TEST t_s Zunge "t_sU.N@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;t_sU.N@"/>.</speak>
+
+# Monophthongs
+
+# --------- Short
+
+# TEST 2 Ökonom ?2.ko."no:m
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="?2.ko.&#34;no:m"/>.</speak>
+
+# TEST 6 Halter "hal.t6
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;hal.t6"/>.</speak>
+
+# TEST 9 göttlich "g9t.lIC
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;g9t.lIC"/>.</speak>
+
+# TEST @ Lage "la:.g@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;la:.g@"/>.</speak>
+
+# TEST E Kette "kE.t@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;kE.t@"/>.</speak>
+
+# TEST I Kiste "kIs.t@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;kIs.t@"/>.</speak>
+
+# TEST O Kopf "kOp_f
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;kOp_f"/>.</speak>
+
+# TEST U Kunst "kUnst
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;kUnst"/>.</speak>
+
+# TEST Y füllen "fY.l@n
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;fY.l@n"/>.</speak>
+
+# TEST a Kappe "ka.p@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ka.p@"/>.</speak>
+
+# TEST e Theorie te.o."Ri:
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="te.o.&#34;Ri:"/>.</speak>
+
+# TEST i Politik po.li."ti:k
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="po.li.&#34;ti:k"/>.</speak>
+
+# TEST o polieren po."li:.R@n
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="po.&#34;li:.R@n"/>.</speak>
+
+# TEST u Kurier ku."Ri:6_^
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="ku.&#34;Ri:6_^"/>.</speak>
+
+# TEST y Mythologie my.to.lo."gi:
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="my.to.lo.&#34;gi:"/>.</speak>
+
+
+
+# --------- Long
+
+# TEST 2: Öl "
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;?2:l"/>.</speak>
+
+# TEST E: Bär "bE:6_^
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;bE:6_^"/>.</speak>
+
+# TEST a: Kater "ka:.t6
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ka:.t6"/>.</speak>
+
+# TEST e: Beet "be:t
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;be:t"/>.</speak>
+
+# TEST i: Biene "bi:.n@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;bi:.n@"/>.</speak>
+
+# TEST o: Boot "bo:t
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;bo:t"/>.</speak>
+
+# TEST u: Hut "hu:t
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;hu:t"/>.</speak>
+
+# TEST y: kühl "ky:l
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ky:l"/>.</speak>
+
+
+# --------- Nasalized
+
+# TEST 9~: parfum par."f9~:
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="par.&#34;f9~:"/>.</speak>
+
+# TEST E~: Timbre "tE~:.bR@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;tE~:.bR@"/>.</speak>
+
+# TEST a~: Chance "Sa~:.s@
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;Sa~:.s@"/>.</speak>
+
+# TEST o~: fond "fo~:
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;fo~:"/>.</speak>
+
+
+# --------- Non-syllabic
+
+# TEST 6_^ Bier "bi:6_^
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;bi:6_^"/>.</speak>
+
+# TEST i_^ Mumie "mu:.mi_^@"
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;mu:.mi_^@&#34;"/>.</speak>
+
+# TEST o_^ foyer fo_^a."je:
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="fo_^a.&#34;je:"/>.</speak>
+
+# TEST u_^ aktuell ?ak."tu_^El
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="?ak.&#34;tu_^El"/>.</speak>
+
+
+# --------- Diphthongs
+
+# TEST O_Y Deutsch "dO_Yt_S
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;dO_Yt_S"/>.</speak>
+
+# TEST a_I Bein "ba_In
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ba_In"/>.</speak>
+
+# TEST a_U Kauf "ka_Uf
+<speak xml:lang="de-DE"> Ich teste <phoneme alphabet="xsampa" ph="&#34;ka_Uf"/>.</speak>
+
+# END_TEST
+
+
+# --------- Other Symbols
+# word separator NEED TEST HERE <<<<<<<<<<<<------------------------------------
+% secondary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+. syllable break NEED TEST HERE <<<<<<<<<<<<------------------------------------
+" primary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+
+
+# ---------
+
+
diff --git a/pico/tests/data/xsampa_pico_man_en-GB.txt b/pico/tests/data/xsampa_pico_man_en-GB.txt
new file mode 100644
index 0000000..b5b5dde
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_en-GB.txt
@@ -0,0 +1,192 @@
+
+# BEGIN_TEST
+
+#------------------------------
+# English (en-GB)
+#
+# Notes: These tests use the XSAMPA examples given in the pico manual.
+# The only differences between the manual and the test strings are:
+# 1/ replaced the primary stress character " (double quote) by its dec code &#34;
+# 2/ the XSAMPA "r\" is replaced by "r\\" (the backslash is escaped) otherwise pico says
+# garbage or the "rrr" sound is pronounced "j" (as a french j)
+# When a test is marked as "BUG", if possible, the tester will capture an approximate
+# transcription of what was heard inside [ ].
+
+# Consonants
+# --------- Plosives
+
+# TEST "bin"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;bIn"/>.</speak>
+
+# TEST "din"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;dIn"/>.</speak>
+
+# TEST "give"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;gIv"/>.</speak>
+
+# TEST "kin"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;kIn"/>.</speak>
+
+# TEST "pin"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;pIn"/>.</speak>
+
+# TEST "tin"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;tIn"/>.</speak>
+
+
+# --------- Nasals
+
+# TEST N thing "TIN
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;TIN"/>.</speak>
+
+# TEST m mock "mA:k
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;mA:k"/>.</speak>
+
+# TEST n knock "nA:k
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;nA:k"/>.</speak>
+
+# --------- Fricatives
+
+# TEST D this "DIs
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;DIs"/>.</speak>
+
+# TEST S shin "SIn
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;SIn"/>.</speak>
+
+# TEST T thin "TIn
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;TIn"/>.</speak>
+
+# BUG Z measure "mE.Z@` says [measu'chu'res]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;mE.Z@`"/>.</speak>
+
+# TEST f fit "fIt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;fIt"/>.</speak>
+
+# TEST h hit "hIt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;hIt"/>.</speak>
+
+# TEST s sin "sIn
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;sIn"/>.</speak>
+
+# TEST v vim "vIm
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;vIm"/>.</speak>
+
+# TEST z zing "zIN
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;zIN"/>.</speak>
+
+
+# --------- Approximants
+
+# TEST j yacht "jA:t
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;jA:t"/>.</speak>
+
+# BUG l long "lA:N says garbage after the [l]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;lQ:N"/>.</speak>
+
+# TEST l= little "lI.tl=
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;lI.tl= "/>.</speak>
+
+# TEST r\ right "r\a_It
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\a_It"/>.</speak>
+
+# BUG w wasp "wA:sp says garbage after the [wa]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;wQ:sp"/>.</speak>
+
+
+# --------- Affricates
+
+# TEST d_Z gin "d_ZIn
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;d_ZIn"/>.</speak>
+
+# TEST t_S chin "t_SIn
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;t_SIn"/>.</speak>
+
+
+# Monophthongs
+# --------- Short
+
+# TEST @ allow @."la_U
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="@.&#34;la_U"/>.</speak>
+
+# TEST E pet "pEt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;pEt"/>.</speak>
+
+# TEST I pit "pIt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;pIt"/>.</speak>
+
+# TEST Q pot "pQt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;pQt"/>.</speak>
+
+# TEST U put "pUt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;pUt"/>.</speak>
+
+# TEST V cut "kVt
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;kVt"/>.</speak>
+
+# TEST { pat "p{t
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;p{t"/>.</speak>
+
+
+# --------- Long
+
+# TEST 3: furs "f3:z says [fuz z z]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;f3:z"/>.</speak>
+
+# BUG A: stars "stA:z says [st'eyes]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;stA:rz"/>.</speak>
+
+# TEST i: ease "i:z
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;i:z"/>.</speak>
+
+# TEST u: lose "lu:z
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;lu:z"/>.</speak>
+
+
+# --------- Diphthongs
+
+# BUG o_U nose "no_Uz says garbage
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;no_Uz"/>.</speak>
+
+# TEST O_I noise "nO_Iz
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;nO_Iz"/>.</speak>
+
+# TEST a_I rise "r\a_Iz
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\a_Iz"/>.</speak>
+
+# TEST a_U rouse "r\a_Uz
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\a_Uz"/>.</speak>
+
+# TEST e_I raise "r\e_Iz
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\e_Iz"/>.</speak>
+
+
+# --------- Other Symbols
+
+# TEST # word separator, tested on "this yacht"
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;DIsjA:t"/> and <phoneme alphabet="xsampa" ph="&#34;DIs#jA:t"/>.</speak>
+
+# TEST % secondary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+#<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;"/>.</speak>
+
+# TEST . syllable break NEED TEST HERE <<<<<<<<<<<<------------------------------------
+#<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;"/>.</speak>
+
+# TEST " primary stress BETTER TEST? <<<<<<<<<<<<------------------------------------
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;nO_Iz"/> and <phoneme alphabet="xsampa" ph="nO_Iz"/> primary stress.</speak>
+
+# ---------
+# END_TEST
+
+#-----------------------
+# Tests from en-US
+
+# BUG? W whale "We_Il says [kale]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;We_Il"/>.</speak>
+
+# BUG? @` actor "{k.t@` says garbage after [a]
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;{k.t@`"/>.</speak>
+
+# BUG? O: four "fO:r\ says garbage
+<speak xml:lang="en-GB"> Testing <phoneme alphabet="xsampa" ph="&#34;fO:r\\"/>.</speak>
+
+
diff --git a/pico/tests/data/xsampa_pico_man_en-US.txt b/pico/tests/data/xsampa_pico_man_en-US.txt
new file mode 100644
index 0000000..9ca8fd3
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_en-US.txt
@@ -0,0 +1,185 @@
+
+# BEGIN_TEST
+
+#------------------------------
+# English (en-US)
+#
+# Notes: These tests use the XSAMPA examples given in the pico manual.
+# The only differences between the manual and the test strings are:
+# 1/ replaced the primary stress character " (double quote) by its dec code &#34;
+# 2/ the XSAMPA "r\" is replaced by "r\\" (the backslash is escaped) otherwise pico says
+# garbage or the "rrr" sound is pronounced "j" (as a french j)
+# When a test is marked as "BUG", if possible, the tester will capture an approximate
+# transcription of what was heard inside [ ].
+
+
+# Consonants
+# --------- Plosives
+
+# TEST "bin"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;bIn"/>.</speak>
+
+# TEST "din"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;dIn"/>.</speak>
+
+# TEST "give"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;gIv"/>.</speak>
+
+# TEST "kin"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;kIn"/>.</speak>
+
+# TEST "pin"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;pIn"/>.</speak>
+
+# TEST "tin"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;tIn"/>.</speak>
+
+
+# --------- Nasals
+
+# TEST N thing "TIN
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;TIN"/>.</speak>
+
+# TEST m mock "mA:k
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;mA:k"/>.</speak>
+
+# TEST n knock "nA:k
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;nA:k"/>.</speak>
+
+# --------- Fricatives
+
+# TEST D this "DIs
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;DIs"/>.</speak>
+
+# TEST S shin "SIn
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;SIn"/>.</speak>
+
+# TEST T thin "TIn
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;TIn"/>.</speak>
+
+# BUG Z measure "mE.Z@` says garbage on the whole utterance
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;mE.Z@`"/>.</speak>
+
+# TEST f fit "fIt
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;fIt"/>.</speak>
+
+# TEST h hit "hIt
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;hIt"/>.</speak>
+
+# TEST s sin "sIn
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;sIn"/>.</speak>
+
+# TEST v vim "vIm
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;vIm"/>.</speak>
+
+# BUG W whale "We_Il says [v hu hale]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;We_Il"/>.</speak>
+
+# TEST z zing "zIN
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;zIN"/>.</speak>
+
+
+# --------- Approximants
+
+# TEST j yacht "jA:t
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;jA:t"/>.</speak>
+
+# BUG l long "lA:N says [lang]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;lA:N"/>.</speak>
+
+# TEST l= little "lI.tl=
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;lI.tl= "/>.</speak>
+
+# TEST r\ right "r\a_It says [jight]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\a_It"/>.</speak>
+
+# TEST w wasp "wA:sp
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;wA:sp"/>.</speak>
+
+
+# --------- Affricates
+
+# TEST d_Z gin "d_ZIn
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;d_ZIn"/>.</speak>
+
+# TEST t_S chin "t_SIn
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;t_SIn"/>.</speak>
+
+
+# Monophthongs
+# --------- Short
+
+# BUG @ allow @."la_U says [llow], drops the [a]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="@.&#34;la_U"/>.</speak>
+
+# BUG @` actor "{k.t@` says garbage on the whole utterance
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;{k.t@`"/>.</speak>
+
+# TEST E pet "pEt
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;pEt"/>.</speak>
+
+# TEST I pit "pIt
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;pIt"/>.</speak>
+
+# TEST U put "pUt
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;pUt"/>.</speak>
+
+# TEST V cut "kVt
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;kVt"/>.</speak>
+
+# TEST { pat "p{t
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;p{t"/>.</speak>
+
+
+# --------- Long
+
+# BUG 3`: furs "f3`:z says [fuz z z]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;f3`:z"/>.</speak>
+
+# BUG A: stars "stA:rz says [starch]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;stA:rz"/>.</speak>
+
+# TEST i: ease "i:z
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;i:z"/>.</speak>
+
+# TEST O: four "fO:r\
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;fO:r\\"/>.</speak>
+
+# TEST u: lose "lu:z
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;lu:z"/>.</speak>
+
+
+# --------- Diphthongs
+
+# TEST o_U nose "no_Uz
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;no_Uz"/>.</speak>
+
+# TEST O_I noise "nO_Iz
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;nO_Iz"/>.</speak>
+
+# TEST a_I rise "r\a_Iz
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\a_Iz"/>.</speak>
+
+# TEST a_U rouse "r\a_Uz
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\a_Uz"/>.</speak>
+
+# TEST e_I raise "r\e_Iz
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;r\\e_Iz"/>.</speak>
+
+# --------- Other Symbols
+
+# TEST # word separator, tested on "this yacht"
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;DIsjA:t"/> and <phoneme alphabet="xsampa" ph="&#34;DIs#jA:t"/>.</speak>
+
+# TEST % secondary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+#<speak xml:lang="en-US"> not tested.</speak>
+
+# TEST . syllable break NEED TEST HERE <<<<<<<<<<<<------------------------------------
+#<speak xml:lang="en-US"> not tested.</speak>
+
+# BUG " primary stress BETTER TEST? <<<<<<<<<<<<------------------------------------
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;no_Uz"/> and <phoneme alphabet="xsampa" ph="no_Uz"/> primary stress.</speak>
+
+# ---------
+
+# END_TEST \ No newline at end of file
diff --git a/pico/tests/data/xsampa_pico_man_es-ES.txt b/pico/tests/data/xsampa_pico_man_es-ES.txt
new file mode 100644
index 0000000..898571c
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_es-ES.txt
@@ -0,0 +1,131 @@
+
+# BEGIN_TEST
+
+#------------------------------
+# Spanish (es-ES)
+#
+# Notes: These tests use the XSAMPA examples given in the pico manual.
+# The only differences between the manual and the test strings are:
+# 1/ replaced the primary stress character " (double quote) by its dec code &#34;
+# 2/ the XSAMPA "r\" is replaced by "r\\" (the backslash is escaped) otherwise pico says
+# garbage or the [rrr] sound is pronounced "j" (as a french j)
+# When a test is marked as "BUG", if possible, the tester will capture an approximate
+# transcription of what was heard inside [ ].
+
+# Consonants
+# --------- Plosives
+
+# TEST b vino "bi.no
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;bi.no"/>.</speak>
+
+# TEST d donde "don.de
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;don.de"/>.</speak>
+
+# TEST g gato "ga.to
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;ga.to"/>.</speak>
+
+# TEST k casa "ka.sa
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;ka.sa"/>.</speak>
+
+# TEST p puente "pu_^en.te
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;pu_^en.te "/>.</speak>
+
+# TEST t tiempo "tjem.po
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;tjem.po"/>.</speak>
+
+
+# --------- Fricatives
+# TEST f fácil "fa.Til
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;fa.Til"/>.</speak>
+
+# TEST x hijo "i.xo
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;i.xo"/>.</speak>
+
+# TEST s sopa "so.pa
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;so.pa"/>.</speak>
+
+# TEST B cabeza ka."Be.Ta
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="ka.&#34;Be.Ta"/>.</speak>
+
+# TEST D dedo "de.Do
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;de.Do"/>.</speak>
+
+# TEST G luego "lu_^e.Go
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;lu_^e.Go"/>.</speak>
+
+# TEST T zona "To.na
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;To.na"/>.</speak>
+
+# TEST j\ cónyuge "kon.j\u.xe
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;kon.j\u.xe"/>.</speak>
+
+
+# --------- Affricates
+# TEST t_S mucho "mu.t_So
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;mu.t_So"/>.</speak>
+
+
+# --------- Approximants
+# TEST l lejos "le.xos
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;le.xos"/>.</speak>
+
+# BUG L caballo ca."Ba.Lo drops [c], says [aballo]
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="ca.&#34;Ba.Lo"/>.</speak>
+
+# IMPROVE j rey "rej [r] is not a strong r, should be
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;rej"/>.</speak>
+
+
+# --------- Nasals
+# TEST J año "a.Jo
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;a.Jo"/>.</speak>
+
+# TEST N nunca "nuN.ka
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;nuN.ka"/>.</speak>
+
+# TEST m monte "mon.te
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;mon.te"/>.</speak>
+
+# TEST n nota "no.ta
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;no.ta"/>.</speak>
+
+
+# --------- Tap, trill
+# TEST 4 hora "o.4a
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;o.4a"/>.</speak>
+
+# TEST r torre "to.re
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;to.re"/>.</speak>
+
+# Vowels
+# TEST a valle "ba.Le
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;ba.Le"/>.</speak>
+
+# TEST e pero "pe.4o
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;pe.4o"/>.</speak>
+
+# TEST i pico "pi.ko
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;pi.ko"/>.</speak>
+
+# TEST o toro "to.4o
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;to.4o"/>.</speak>
+
+# TEST u duro "du.4o
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;du.4o"/>.</speak>
+
+# TEST u_^ bueno "bu_^e.no
+<speak xml:lang="es-ES"> Puedo probar <phoneme alphabet="xsampa" ph="&#34;bu_^e.no"/>.</speak>
+
+
+# END_TEST
+
+# --------- Other Symbols
+# word separator NEED TEST HERE <<<<<<<<<<<<------------------------------------
+% secondary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+. syllable break NEED TEST HERE <<<<<<<<<<<<------------------------------------
+" primary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+
+
+# ---------
+
+
diff --git a/pico/tests/data/xsampa_pico_man_fr-FR.txt b/pico/tests/data/xsampa_pico_man_fr-FR.txt
new file mode 100644
index 0000000..6cf6d1a
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_fr-FR.txt
@@ -0,0 +1,153 @@
+
+# BEGIN_TEST
+
+#------------------------------
+# French (fr-FR)
+#
+# Notes: These tests use the XSAMPA examples given in the pico manual.
+# The only differences between the manual and the test strings are:
+# 1/ replaced the primary stress character " (double quote) by its dec code &#34;
+# 2/ the XSAMPA "r\" is replaced by "r\\" (the backslash is escaped) otherwise pico says
+# garbage or the "rrr" sound is pronounced "j" (as a french j)
+# When a test is marked as "BUG", if possible, the tester will capture an approximate
+# transcription of what was heard inside [ ].
+
+# Consonants
+# --------- Plosives
+
+# TEST b bon "bO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;bO~"/>.</speak>
+
+# TEST d dans "dA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;dA~"/>.</speak>
+
+# TEST g gant "gA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;gA~"/>.</speak>
+
+# TEST k quand "kA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;kA~"/>.</speak>
+
+# TEST p pont "pO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;pO~"/>.</speak>
+
+# TEST t temps "tA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;tA~"/>.</speak>
+
+
+# --------- Nasals
+
+# TEST J oignon O."JO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="O.&#34;JO~"/>.</speak>
+
+# TEST N camping kA~."piN
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="kA~.&#34;piN"/>.</speak>
+
+# TEST m mont "mO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;mO~"/>.</speak>
+
+# TEST n nom "nO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;nO~"/>.</speak>
+
+
+# --------- Fricatives
+
+# TEST R rond "RO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;RO~"/>.</speak>
+
+# TEST S champ "SA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;SA~"/>.</speak>
+
+# TEST Z gens "ZA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;ZA~"/>.</speak>
+
+# TEST f femme "fam
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;fam"/>.</speak>
+
+# TEST s sans "sA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;sA~"/>.</speak>
+
+# TEST v vent "vA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;vA~"/>.</speak>
+
+# TEST z zone "zon
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;zon"/>.</speak>
+
+
+# --------- Approximants
+
+# BUG H juin "ZHE~ says [j'lin]
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;ZHE~"/>.</speak>
+
+# TEST j pierre "pjER
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;pjER"/>.</speak>
+
+# BUG l long "lO~ says [ion]
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;lO~"/>.</speak>
+
+# TEST l long "lO~ works only in a sentence (here also used to say "longtemps")
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;lO~"/> et <phoneme alphabet="xsampa" ph="&#34;lO~tA~"/>.</speak>
+
+# BUG w coin "kwE~ says [keu'oin]
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;kwE~"/>.</speak>
+
+
+# --------- Vowels
+
+# TEST 2 deux "d2
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;d2"/>.</speak>
+
+# TEST 9 neuf "n9f
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;n9f"/>.</speak>
+
+# TEST @ justement "Zys.t@.mA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;Zys.t@.mA~"/>.</speak>
+
+# BUG E seize "sEz says [seisse]
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;sEz"/>.</speak>
+
+# TEST O comme "kOm
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;kOm"/>.</speak>
+
+# TEST a patte "pat
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;pat"/>.</speak>
+
+# TEST e ses "se
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;se"/>.</speak>
+
+# TEST i si "si
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;si"/>.</speak>
+
+# TEST o gros "gRo
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;gRo"/>.</speak>
+
+# TEST u doux "du
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;du"/>.</speak>
+
+# TEST y du "dy
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;dy"/>.</speak>
+
+# TEST 9~ brun "bR9~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;bR9~"/>.</speak>
+
+# TEST E~ vin "vE~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;vE~"/>.</speak>
+
+# TEST O~ bon "bO~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;bO~"/>.</speak>
+
+# TEST A~ vent "vA~
+<speak xml:lang="fr-FR"> Je teste <phoneme alphabet="xsampa" ph="&#34;vA~"/>.</speak>
+
+
+# END_TEST
+
+# --------- Other Symbols
+# word separator NEED TEST HERE <<<<<<<<<<<<------------------------------------
+% secondary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+. syllable break NEED TEST HERE <<<<<<<<<<<<------------------------------------
+" primary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+
+
+# ---------
+
+
diff --git a/pico/tests/data/xsampa_pico_man_it-IT.txt b/pico/tests/data/xsampa_pico_man_it-IT.txt
new file mode 100644
index 0000000..eeb558d
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_it-IT.txt
@@ -0,0 +1,210 @@
+
+# BEGIN_TEST
+
+#------------------------------
+# Italian (it-IT)
+#
+# Notes: These tests use the XSAMPA examples given in the pico manual.
+# The only differences between the manual and the test strings are:
+# 1/ replaced the primary stress character " (double quote) by its dec code &#34;
+# 2/ the XSAMPA "r\" is replaced by "r\\" (the backslash is escaped) otherwise pico says
+# garbage or the [rrr] sound is pronounced "j" (as a french j)
+# When a test is marked as "BUG", if possible, the tester will capture an approximate
+# transcription of what was heard inside [ ].
+
+# Consonants
+# --------- Plosives
+
+# TEST b banco "baN.ko
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;baN.ko"/>.</speak>
+
+# TEST d danno "da.n:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;da.n:o"/>.</speak>
+
+# TEST g gamba "gam.ba
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;gam.ba"/>.</speak>
+
+# TEST k cane "ka:.ne
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;ka:.ne"/>.</speak>
+
+# TEST p pane "pa:.ne
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;pa:.ne"/>.</speak>
+
+# TEST t tanto "tan.to
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;tan.to"/>.</speak>
+
+# TEST b: gobbo "go.b:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;go.b:o"/>.</speak>
+
+# TEST d: cadde "ka.d:e
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;ka.d:e"/>.</speak>
+
+# IMPROVE g: fugga "fu.g:a says [fuga] wrong g (not "plosive")
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;fu.g:a"/>.</speak>
+
+# TEST k: nocca "no.k:a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;no.k:a"/>.</speak>
+
+# TEST p: coppa "ko.p:a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;ko.p:a"/>.</speak>
+
+# TEST t: zucchetto t_su."k:e.t:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="t_su.&#34;k:e.t:o"/>.</speak>
+
+
+# --------- Fricatives
+
+# TEST S scendo "Sen.do
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;Sen.do"/>.</speak>
+
+# TEST f fame "fa:.me
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;fa:.me"/>.</speak>
+
+# TEST s sano "sa:.no
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;sa:.no"/>.</speak>
+
+# TEST v vano "va:.no
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;va:.no"/>.</speak>
+
+# TEST z sbaglio "zba.L:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;zba.L:o"/>.</speak>
+
+# IMPROVE S: ascia "a.S:a [sh] should be longer
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;a.S:a"/>.</speak>
+
+# IMPROVE f: beffa "be.f:a [ff] should be longer
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;be.f:a"/>.</speak>
+
+# IMPROVE s: cassa "ka.s:a [ss] should be longer
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;ka.s:a"/>.</speak>
+
+# IMPROVE v: bevvi "be.v:i [vv] should be more stressed
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;be.v:i"/>.</speak>
+
+
+# --------- Affricates
+
+# TEST d_z zona "d_zO:.na
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;d_zO:.na"/>.</speak>
+
+# TEST d_Z gita "d_Zi:.ta
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;d_Zi:.ta"/>.</speak>
+
+# TEST t_s zitto "t_si.t:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;t_si.t:o"/>.</speak>
+
+# TEST t_S cena "t_Se:.na
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;t_Se:.na"/>.</speak>
+
+# TEST d_z: mezzo "mE.d_z:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;mE.d_z:o"/>.</speak>
+
+# BUG d_Z: oggi "O.d_Z:i [o] is missing, [g] is wrong
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;O.d_Z:i"/>.</speak>
+
+# TEST t_s: bozza "bo.t_s:a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;bo.t_s:a"/>.</speak>
+
+# TEST t_S: braccio "b4a.t_S:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;b4a.t_S:o"/>.</speak>
+
+# --------- Approximants
+
+# TEST l lama "la:.ma
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;la:.ma"/>.</speak>
+
+# IMPROVE L gli "Li the L sound is hard to recognize
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;Li"/>.</speak>
+
+# TEST l: colla "ko.l:a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;ko.l:a"/>.</speak>
+
+# IMPROVE L: foglio "fo.L:o the L sound is hard to recognize
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;fo.L:o"/>.</speak>
+
+# --------- Nasals
+
+# BUG J gnocchi "JO.k:i [gn] is missing
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;JO.k:i"/>.</speak>
+
+# TEST N manca "maN.ka
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;maN.ka"/>.</speak>
+
+# TEST m modo "mO:.do
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;mO:.do"/>.</speak>
+
+# TEST n nato "na:.to
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;na:.to"/>.</speak>
+
+# TEST J: guadagna gu_^a."da.J:a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="gu_^a.&#34;da.J:a"/>.</speak>
+
+# TEST m: partimmo pa4."ti.m:o
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="pa4.&#34;ti.m:o"/>.</speak>
+
+# TEST n: madonna ma."do.n:a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="ma.&#34;do.n:a"/>.</speak>
+
+
+# --------- Tap, trill
+# TEST 4 pera "pE:.4a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;pE:.4a"/>.</speak>
+
+# TEST r arrabiata a."ra.b:i_^a:.ta
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="a.&#34;ra.b:i_^a:.ta"/>.</speak>
+
+
+# Vowels
+
+# TEST a rata "4a:.ta
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;4a:.ta"/>.</speak>
+
+# TEST e rete "4e:.te
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;4e:.te"/>.</speak>
+
+# TEST E compiendo kom."pi_^En.do
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="kom.&#34;pi_^En.do"/>.</speak>
+
+# TEST i moderni mo."de4.ni
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="mo.&#34;de4.ni"/>.</speak>
+
+# TEST o sabato "sa:.ba.to
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="&#34;sa:.ba.to"/>.</speak>
+
+# BUG u occulta o."k_kul.ta [cc] is dropped, [t] is wrong, barely audible
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="o.&#34;k_kul.ta"/>.</speak>
+
+# TEST a: abitare a.bi."ta:.4e
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="a.bi.&#34;ta:.4e"/>.</speak>
+
+# TEST e: abete a."be:.te
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="a.&#34;be:.te"/>.</speak>
+
+# TEST E: alfieri al."fi_^E:.4i
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="al.&#34;fi_^E:.4i"/>.</speak>
+
+# TEST i: alpina al."pi:.na
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="al.&#34;pi:.na"/>.</speak>
+
+# TEST o: ardore a4."do:.4e
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="a4.&#34;do:.4e"/>.</speak>
+
+# TEST O: memoria me."mO:.4i_^a
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="me.&#34;mO:.4i_^a"/>.</speak>
+
+# TEST u: salubre sa."lu:.b4e
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="sa.&#34;lu:.b4e"/>.</speak>
+
+# TEST i_^ filiale fi."li_^a:.le
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="fi.&#34;li_^a:.le"/>.</speak>
+
+# TEST u_^ frequenta f4e."ku_^En.ta
+<speak xml:lang="it-IT"> I test <phoneme alphabet="xsampa" ph="f4e.&#34;ku_^En.ta"/>.</speak>
+
+# END_TEST
+
+# --------- Other Symbols
+# word separator NEED TEST HERE <<<<<<<<<<<<------------------------------------
+% secondary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------
+. syllable break NEED TEST HERE <<<<<<<<<<<<------------------------------------
+" primary stress NEED TEST HERE <<<<<<<<<<<<------------------------------------