diff --git a/pico/lang/en-US_lh0_sg.bin b/pico/lang/en-US_lh0_sg.bin
index 69cd99b..18e4b7e 100755
--- a/pico/lang/en-US_lh0_sg.bin
+++ b/pico/lang/en-US_lh0_sg.bin
Binary files differ
diff --git a/pico/lang/en-US_ta.bin b/pico/lang/en-US_ta.bin
index cf02cdc..08c184c 100755
--- a/pico/lang/en-US_ta.bin
+++ b/pico/lang/en-US_ta.bin
Binary files differ
diff --git a/pico/lib/picoacph.c b/pico/lib/picoacph.c
index 98feb6e..c06e860 100644
--- a/pico/lib/picoacph.c
+++ b/pico/lib/picoacph.c
@@ -157,7 +157,7 @@
 } acph_subobj_t;
 
 
-static pico_status_t acphInitialize(register picodata_ProcessingUnit this) {
+static pico_status_t acphInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode) {
     acph_subobj_t * acph;
     picoos_uint16 i;
 
@@ -193,6 +193,11 @@
         acph->cbuf[i] = 0;
     }
 
+    if (r_mode == PICO_RESET_SOFT) {
+        /*following initializations needed only at startup or after a full reset*/
+        return PICO_OK;
+    }
+
     /* kb tabphones */
     acph->tabphones =
         picoktab_getPhones(this->voice->kbArray[PICOKNOW_KBID_TAB_PHONES]);
@@ -310,7 +315,7 @@
         return NULL;
     }
 
-    acphInitialize(this);
+    acphInitialize(this, PICO_RESET_FULL);
     return this;
 }
 
diff --git a/pico/lib/picoapi.c b/pico/lib/picoapi.c
index c4ef8bf..affd780 100644
--- a/pico/lib/picoapi.c
+++ b/pico/lib/picoapi.c
@@ -660,13 +660,15 @@
 /**
  * pico_resetEngine : Resets the engine
  * @param    engine : pointer to a Pico engine handle
+ * @param    r_mode : reset mode
  * @return  PICO_OK : successful
  * @return     PICO_ERR_INVALID_HANDLE, PICO_ERR_NULLPTR_ACCESS : errors
  * @callgraph
  * @callergraph
 */
 PICO_FUNC pico_resetEngine(
-        pico_Engine engine)
+        pico_Engine engine,
+        pico_Status r_mode)
 {
     pico_Status status = PICO_OK;
 
@@ -674,7 +676,11 @@
         status = PICO_ERR_INVALID_HANDLE;
     } else {
         picoctrl_engResetExceptionManager((picoctrl_Engine) engine);
-        status = picoctrl_engReset((picoctrl_Engine) engine);
+
+        if (r_mode<PICO_RESET_FULL) r_mode = PICO_RESET_FULL;
+        if (r_mode>PICO_RESET_SOFT) r_mode = PICO_RESET_FULL;
+
+        status = picoctrl_engReset((picoctrl_Engine) engine, (picoos_int32)r_mode);
     }
 
     return status;
diff --git a/pico/lib/picoapi.h b/pico/lib/picoapi.h
index 0dad702..8a5725b 100644
--- a/pico/lib/picoapi.h
+++ b/pico/lib/picoapi.h
@@ -422,8 +422,9 @@
    particular text input and signal data output buffers.
 */
 PICO_FUNC pico_resetEngine(
-        pico_Engine engine
-        );
+        pico_Engine engine,
+        pico_Status r_mode
+);
 
 
 /* Engine status and error/warning message retrieval ******************/
diff --git a/pico/lib/picocep.c b/pico/lib/picocep.c
index 2510c13..bb80c3d 100644
--- a/pico/lib/picocep.c
+++ b/pico/lib/picocep.c
@@ -285,7 +285,7 @@
  * @callgraph
  * @callergraph
  */
-static pico_status_t cepInitialize(register picodata_ProcessingUnit this)
+static pico_status_t cepInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
     /*pico_status_t nRes;*/
     cep_subobj_t * cep;
@@ -328,35 +328,37 @@
      ------------------------------------------------------------------*/
     cep->activeEndPos = PICOCEP_MAXWINLEN;
 
-    /* kb pdflfz */
-    cep->pdflfz = picokpdf_getPdfMUL(
-            this->voice->kbArray[PICOKNOW_KBID_PDF_LFZ]);
+    if (r_mode == PICO_RESET_FULL) {
+        /* kb pdflfz */
+        cep->pdflfz = picokpdf_getPdfMUL(
+                this->voice->kbArray[PICOKNOW_KBID_PDF_LFZ]);
 
-    /* kb pdfmgc */
-    cep->pdfmgc = picokpdf_getPdfMUL(
-            this->voice->kbArray[PICOKNOW_KBID_PDF_MGC]);
+        /* kb pdfmgc */
+        cep->pdfmgc = picokpdf_getPdfMUL(
+                this->voice->kbArray[PICOKNOW_KBID_PDF_MGC]);
 
-    /* kb tab phones */
-    /* cep->phones =
-     picoktab_getPhones(this->voice->kbArray[PICOKNOW_KBID_TAB_PHONES]); */
+        /* kb tab phones */
+        /* cep->phones =
+         picoktab_getPhones(this->voice->kbArray[PICOKNOW_KBID_TAB_PHONES]); */
 
-    /*---------------------- other working variables ---------------------------*/
-    /* define the (constant) FRAME_PAR item header */
-    cep->framehead.type = PICODATA_ITEM_FRAME_PAR;
-    cep->framehead.info1 = PICOCEP_OUT_DATA_FORMAT;
-    cep->framehead.info2 = cep->pdfmgc->ceporder;
-    cep->framehead.len = sizeof(picoos_uint16) + (cep->framehead.info2 + 4)
-            * sizeof(picoos_uint16);
+        /*---------------------- other working variables ---------------------------*/
+        /* define the (constant) FRAME_PAR item header */
+        cep->framehead.type = PICODATA_ITEM_FRAME_PAR;
+        cep->framehead.info1 = PICOCEP_OUT_DATA_FORMAT;
+        cep->framehead.info2 = cep->pdfmgc->ceporder;
+        cep->framehead.len = sizeof(picoos_uint16) + (cep->framehead.info2 + 4)
+                * sizeof(picoos_uint16);
+        cep->scmeanpowLFZ = cep->pdflfz->bigpow - cep->pdflfz->meanpow;
+        cep->scmeanpowMGC = cep->pdfmgc->bigpow - cep->pdfmgc->meanpow;
 
+        cep->scmeanLFZ = (1 << (picoos_uint32) cep->scmeanpowLFZ);
+
+        cep->scmeanMGC = (1 << (picoos_uint32) cep->scmeanpowMGC);
+
+    }
     /* constants used in makeWUWandWUm */
     initSmoothing(cep);
 
-    cep->scmeanpowLFZ = cep->pdflfz->bigpow - cep->pdflfz->meanpow;
-    cep->scmeanpowMGC = cep->pdfmgc->bigpow - cep->pdfmgc->meanpow;
-
-    cep->scmeanLFZ = (1 << (picoos_uint32) cep->scmeanpowLFZ);
-
-    cep->scmeanMGC = (1 << (picoos_uint32) cep->scmeanpowMGC);
 
     return PICO_OK;
 }/*cepInitialize*/
@@ -461,7 +463,7 @@
         picoos_deallocate(mm, (void*) &this);
         return NULL;
     }
-    cepInitialize(this);
+    cepInitialize(this, PICO_RESET_FULL);
 
     return this;
 }/*picocep_newCepUnit*/
diff --git a/pico/lib/picoctrl.c b/pico/lib/picoctrl.c
index 5af70e3..25550f2 100644
--- a/pico/lib/picoctrl.c
+++ b/pico/lib/picoctrl.c
@@ -90,7 +90,7 @@
  * @callgraph
  * @callergraph
  */
-static pico_status_t ctrlInitialize(register picodata_ProcessingUnit this) {
+static pico_status_t ctrlInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode) {
     register ctrl_subobj_t * ctrl;
     pico_status_t status= PICO_OK;
     picoos_int8 i;
@@ -104,7 +104,7 @@
     status = PICO_OK;
     for (i = 0; i < ctrl->numProcUnits; i++) {
         if (PICO_OK == status) {
-            status = ctrl->procUnit[i]->initialize(ctrl->procUnit[i]);
+            status = ctrl->procUnit[i]->initialize(ctrl->procUnit[i], r_mode);
             PICODBG_DEBUG(("(re-)initializing procUnit[%i] returned status %i",i, status));
         }
         if (PICO_OK == status) {
@@ -521,7 +521,7 @@
  * @callgraph
  * @callergraph
  */
-pico_status_t picoctrl_engReset(picoctrl_Engine this)
+pico_status_t picoctrl_engReset(picoctrl_Engine this, picoos_int32 r_mode)
 {
     pico_status_t status;
 
@@ -532,7 +532,7 @@
 
     status = this->control->terminate(this->control);
     if (PICO_OK == status) {
-        status = this->control->initialize(this->control);
+        status = this->control->initialize(this->control, r_mode);
     }
     if (PICO_OK == status) {
         status = picodata_cbReset(this->cbIn);
diff --git a/pico/lib/picoctrl.h b/pico/lib/picoctrl.h
index 1dfea54..ff85d5a 100644
--- a/pico/lib/picoctrl.h
+++ b/pico/lib/picoctrl.h
@@ -69,8 +69,8 @@
         picoos_int16 * bytesPut);
 
 pico_status_t picoctrl_engReset(
-        picoctrl_Engine engine
-        );
+        picoctrl_Engine engine,
+        picoos_int32 r_mode);
 
 picoos_Common picoctrl_engGetCommon(picoctrl_Engine this);
 
diff --git a/pico/lib/picodata.c b/pico/lib/picodata.c
index 244e4b6..b886959 100644
--- a/pico/lib/picodata.c
+++ b/pico/lib/picodata.c
@@ -574,7 +574,7 @@
     picorsrc_Voice voice;
 } simple_pu_data_t;
 
-static pico_status_t puSimpleInitialize (register picodata_ProcessingUnit this) {
+static pico_status_t puSimpleInitialize (register picodata_ProcessingUnit this, picoos_int32 r_mode) {
     return PICO_OK;
 }
 
diff --git a/pico/lib/picodata.h b/pico/lib/picodata.h
index 637a3ff..2105051 100644
--- a/pico/lib/picodata.h
+++ b/pico/lib/picodata.h
@@ -498,7 +498,7 @@
 pico_status_t picodata_setCbOut(picodata_ProcessingUnit this, picodata_CharBuffer cbOut);
 
 /* protected */
-typedef pico_status_t (* picodata_puInitializeMethod) (register picodata_ProcessingUnit this);
+typedef pico_status_t (* picodata_puInitializeMethod) (register picodata_ProcessingUnit this, picoos_int32 mode);
 typedef pico_status_t (* picodata_puTerminateMethod) (register picodata_ProcessingUnit this);
 typedef picodata_step_result_t (* picodata_puStepMethod) (register picodata_ProcessingUnit this, picoos_int16 mode, picoos_uint16 * numBytesOutput);
 typedef pico_status_t (* picodata_puSubDeallocateMethod) (register picodata_ProcessingUnit this, picoos_MemoryManager mm);
diff --git a/pico/lib/picodefs.h b/pico/lib/picodefs.h
index 6613e84..8c24039 100644
--- a/pico/lib/picodefs.h
+++ b/pico/lib/picodefs.h
@@ -156,6 +156,11 @@
 
 #define PICO_STEP_ERROR                 (pico_Status)  -200
 
+/* Engine reset modes ***********************************************************/
+
+/* general */
+#define PICO_RESET_FULL                 (pico_Status)    0
+#define PICO_RESET_SOFT                 (pico_Status)    0x10
 
 
 /* ********************************************************************/
diff --git a/pico/lib/picopam.c b/pico/lib/picopam.c
index 02e5cc2..f3253a6 100644
--- a/pico/lib/picopam.c
+++ b/pico/lib/picopam.c
@@ -386,7 +386,7 @@
 /*------------------------------------------------------------------
  Service routines :
  ------------------------------------------------------------------*/
-static pico_status_t pam_initialize(register picodata_ProcessingUnit this);
+static pico_status_t pam_initialize(register picodata_ProcessingUnit this, picoos_int32 r_mode);
 static pico_status_t pam_terminate(register picodata_ProcessingUnit this);
 static pico_status_t pam_allocate(picoos_MemoryManager mm, pam_subobj_t *pam);
 static void pam_deallocate(picoos_MemoryManager mm, pam_subobj_t *pam);
@@ -556,7 +556,7 @@
  * @callgraph
  * @callergraph
  */
-static pico_status_t pam_initialize(register picodata_ProcessingUnit this)
+static pico_status_t pam_initialize(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
     pico_status_t nI, nJ;
     pam_subobj_t *pam;
@@ -599,6 +599,11 @@
     pam->nLastAttachedItemId = pam->nCurrAttachedItem = 0;
     pam->nAttachedItemsSize = 0;
 
+    if (r_mode == PICO_RESET_SOFT) {
+        /*following initializations needed only at startup or after a full reset*/
+        return PICO_OK;
+    }
+
     /*pitch and duration modifiers*/
     pam->pMod = 1.0f;
     pam->dMod = 1.0f;
@@ -621,6 +626,8 @@
             }
         }
     }
+
+
 /*-----------------------------------------------------------------
      * MANAGE LINGWARE INITIALIZATION IF NEEDED
      ------------------------------------------------------------------*/
@@ -813,7 +820,7 @@
     /*-----------------------------------------------------------------
      * Initialize memory for PAM (this may be re-used elsewhere, e.g.Reset)
      * ------------------------------------------------------------------*/
-    if (PICO_OK != pam_initialize(this)) {
+    if (PICO_OK != pam_initialize(this, PICO_RESET_FULL)) {
         PICODBG_ERROR(("problem initializing the pam sub-object"));
     }
     return this;
diff --git a/pico/lib/picopr.c b/pico/lib/picopr.c
index f54734a..d5371d7 100644
--- a/pico/lib/picopr.c
+++ b/pico/lib/picopr.c
@@ -3168,8 +3168,9 @@
 /* *****************************************************************************/
 
 
-pico_status_t prReset(register picodata_ProcessingUnit this)
+pico_status_t prReset(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
+
     picoos_int32 i;
     pr_subobj_t * pr;
 
@@ -3226,6 +3227,10 @@
 
     pr->forceOutput = FALSE;
 
+    if (r_mode == PICO_RESET_SOFT) {
+        /*following initializations needed only at startup or after a full reset*/
+        return PICO_OK;
+    }
 
     pr->xsampa_parser = picokfst_getFST(this->voice->kbArray[PICOKNOW_KBID_FST_XSAMPA_PARSE]);
 
@@ -3239,14 +3244,14 @@
 }
 
 
-pico_status_t prInitialize(register picodata_ProcessingUnit this)
+pico_status_t prInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
 /*
     if (NULL == this || NULL == this->subObj) {
         return PICO_ERR_OTHER;
     }
 */
-    return prReset(this);
+    return prReset(this, r_mode);
 }
 
 
@@ -3314,7 +3319,7 @@
         picoos_deallocate(mm, (void *)&this);
         return NULL;
     }
-    prInitialize(this);
+    prInitialize(this, PICO_RESET_FULL);
     return this;
 }
 
diff --git a/pico/lib/picosa.c b/pico/lib/picosa.c
index 3147c76..ab48713 100644
--- a/pico/lib/picosa.c
+++ b/pico/lib/picosa.c
@@ -242,7 +242,7 @@
 } sa_subobj_t;
 
 
-static pico_status_t saInitialize(register picodata_ProcessingUnit this) {
+static pico_status_t saInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode) {
     sa_subobj_t * sa;
     picoos_uint16 i;
     picokfst_FST fst;
@@ -294,6 +294,11 @@
     sa->phonWritePos = 0;
     sa->nextReadPos = 0;
 
+    if (r_mode == PICO_RESET_SOFT) {
+        /*following initializations needed only at startup or after a full reset*/
+        return PICO_OK;
+    }
+
     /* kb fst[] */
     sa->numFsts = 0;
     for (i = 0; i<PICOKNOW_MAX_NUM_WPHO_FSTS; i++) {
@@ -471,7 +476,7 @@
     }
 
 
-    saInitialize(this);
+    saInitialize(this, PICO_RESET_FULL);
     return this;
 }
 
diff --git a/pico/lib/picosig.c b/pico/lib/picosig.c
index be44b3c..4282e24 100644
--- a/pico/lib/picosig.c
+++ b/pico/lib/picosig.c
@@ -114,7 +114,7 @@
  * @callgraph
  * @callergraph
  */
-static pico_status_t sigInitialize(register picodata_ProcessingUnit this)
+static pico_status_t sigInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
     sig_subobj_t *sig_subObj;
     if (NULL == this || NULL == this->subObj) {
@@ -147,33 +147,40 @@
     /*-----------------------------------------------------------------
      * MANAGE LINGWARE INITIALIZATION IF NEEDED
      ------------------------------------------------------------------*/
-    sig_subObj->pdfmgc = picokpdf_getPdfMUL(
-            this->voice->kbArray[PICOKNOW_KBID_PDF_MGC]);
-    sig_subObj->pdflfz = picokpdf_getPdfMUL(
-            this->voice->kbArray[PICOKNOW_KBID_PDF_LFZ]);
-    sig_subObj->pdfphs = picokpdf_getPdfPHS(
-            this->voice->kbArray[PICOKNOW_KBID_PDF_PHS]);
+    if (r_mode == PICO_RESET_FULL) {
+        /*not done when resetting SOFT*/
+        sig_subObj->pdfmgc = picokpdf_getPdfMUL(
+                this->voice->kbArray[PICOKNOW_KBID_PDF_MGC]);
+        sig_subObj->pdflfz = picokpdf_getPdfMUL(
+                this->voice->kbArray[PICOKNOW_KBID_PDF_LFZ]);
+        sig_subObj->pdfphs = picokpdf_getPdfPHS(
+                this->voice->kbArray[PICOKNOW_KBID_PDF_PHS]);
 
-    sig_subObj->scmeanpowLFZ = sig_subObj->pdflfz->bigpow
-            - sig_subObj->pdflfz->meanpow;
-    sig_subObj->scmeanpowMGC = sig_subObj->pdfmgc->bigpow
-            - sig_subObj->pdfmgc->meanpow;
-    sig_subObj->scmeanLFZ = (1 << (picoos_uint32) sig_subObj->scmeanpowLFZ);
-    sig_subObj->scmeanMGC = (1 << (picoos_uint32) sig_subObj->scmeanpowMGC);
-    sig_subObj->fSampNorm = PICOSIG_NORM1 * sig_subObj->pdfmgc->amplif;
+        sig_subObj->scmeanpowLFZ = sig_subObj->pdflfz->bigpow
+                - sig_subObj->pdflfz->meanpow;
+        sig_subObj->scmeanpowMGC = sig_subObj->pdfmgc->bigpow
+                - sig_subObj->pdfmgc->meanpow;
+        sig_subObj->scmeanLFZ = (1 << (picoos_uint32) sig_subObj->scmeanpowLFZ);
+        sig_subObj->scmeanMGC = (1 << (picoos_uint32) sig_subObj->scmeanpowMGC);
+        sig_subObj->fSampNorm = PICOSIG_NORM1 * sig_subObj->pdfmgc->amplif;
+        /*-----------------------------------------------------------------
+         * Initialize memory for DSP
+         * ------------------------------------------------------------------*/
+        sigDspInitialize(&(sig_subObj->sig_inner), r_mode);
+        /*-----------------------------------------------------------------
+         * Initialize modifiers
+         * ------------------------------------------------------------------*/
+        /*pitch , volume , speaker modifiers*/
+        sig_subObj->pMod = 1.0f;
+        sig_subObj->vMod = 1.0f;
+        sig_subObj->sMod = 1.0f;
+    } else {
+        /*-----------------------------------------------------------------
+         * Initialize memory for DSP
+         * ------------------------------------------------------------------*/
+        sigDspInitialize(&(sig_subObj->sig_inner), r_mode);
+    }
 
-    /*-----------------------------------------------------------------
-     * Initialize memory for DSP
-     * ------------------------------------------------------------------*/
-    sigDspInitialize(&(sig_subObj->sig_inner));
-
-    /*-----------------------------------------------------------------
-     * Initialize modifiers
-     * ------------------------------------------------------------------*/
-    /*pitch , volume , speaker modifiers*/
-    sig_subObj->pMod = 1.0f;
-    sig_subObj->vMod = 1.0f;
-    sig_subObj->sMod = 1.0f;
 
     return PICO_OK;
 }/*sigInitialize*/
@@ -287,7 +294,7 @@
     /*-----------------------------------------------------------------
      * Initialize memory for DSP (this may be re-used elsewhere, e.g.Reset)
      * ------------------------------------------------------------------*/
-    if (PICO_OK != sigInitialize(this)) {
+    if (PICO_OK != sigInitialize(this, PICO_RESET_FULL)) {
         PICODBG_ERROR(("Error in iSig Sub Object initialization"));
         sigDeallocate(mm, &(sig_subObj->sig_inner));
         picoos_deallocate(mm, (void *) &this);
diff --git a/pico/lib/picosig2.c b/pico/lib/picosig2.c
index e431c90..52943e6 100644
--- a/pico/lib/picosig2.c
+++ b/pico/lib/picosig2.c
@@ -412,11 +412,30 @@
  * @callgraph
  * @callergraph
  */
-void sigDspInitialize(sig_innerobj_t *sig_inObj)
+void sigDspInitialize(sig_innerobj_t *sig_inObj, picoos_int32 r_mode)
 {
     picoos_int32 i, j;
     picoos_int32 *pnt;
 
+    if (r_mode == PICO_RESET_SOFT) {
+        /*minimal initialization when receiving a soft reset */
+        return;
+        /*
+        sig_inObj->voxbnd_p = (picoos_int32) ((picoos_single) sig_inObj->hfftsize_p
+                / ((picoos_single) sig_inObj->Fs_p / (picoos_single) 2)
+                * (picoos_single) sig_inObj->VCutoff_p);
+        sig_inObj->voxbnd2_p
+                = (picoos_int32) ((picoos_single) sig_inObj->hfftsize_p
+                        / ((picoos_single) sig_inObj->Fs_p / (picoos_single) 2)
+                        * (picoos_single) sig_inObj->UVCutoff_p);
+        sig_inObj->nextPeak_p = (((int) (PICODSP_FFTSIZE))
+                / ((int) PICODSP_DISPLACE) - 1) * sig_inObj->hop_p;
+        for (i = 0; i < 2 * PICODSP_FFTSIZE; i++) {
+             sig_inObj->int_vec26[i] = 0;
+        }
+        return;
+        */
+    }
     /*-----------------------------------------------------------------
      * Initialization
      * ------------------------------------------------------------------*/
diff --git a/pico/lib/picosig2.h b/pico/lib/picosig2.h
index f239ced..1b975db 100644
--- a/pico/lib/picosig2.h
+++ b/pico/lib/picosig2.h
@@ -139,7 +139,7 @@
 extern pico_status_t sigAllocate(picoos_MemoryManager mm,
         sig_innerobj_t *sig_inObj);
 extern void sigDeallocate(picoos_MemoryManager mm, sig_innerobj_t *sig_inObj);
-extern void sigDspInitialize(sig_innerobj_t *sig_inObj);
+extern void sigDspInitialize(sig_innerobj_t *sig_inObj, picoos_int32 r_mode);
 
 /*------------------------------------------------------------------
  Exported (to picosig.c) Processing routines :
diff --git a/pico/lib/picospho.c b/pico/lib/picospho.c
index 0d0cdf8..bf9dd80 100644
--- a/pico/lib/picospho.c
+++ b/pico/lib/picospho.c
@@ -286,7 +286,7 @@
 }
 
 
-static pico_status_t sphoInitialize(register picodata_ProcessingUnit this)
+static pico_status_t sphoInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
     picoos_uint8 i;
     spho_subobj_t * spho;
@@ -392,7 +392,7 @@
         return NULL;
     }
 
-    sphoInitialize(this);
+    sphoInitialize(this, PICO_RESET_FULL);
     return this;
 }
 
diff --git a/pico/lib/picotok.c b/pico/lib/picotok.c
index 4488609..969e2a3 100644
--- a/pico/lib/picotok.c
+++ b/pico/lib/picotok.c
@@ -1385,7 +1385,7 @@
 
 /* *****************************************************************************/
 
-static pico_status_t tokReset(register picodata_ProcessingUnit this)
+static pico_status_t tokReset(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
     tok_subobj_t * tok;
     MarkupId mId;
@@ -1449,7 +1449,7 @@
     return PICO_OK;
 }
 
-static pico_status_t tokInitialize(register picodata_ProcessingUnit this)
+static pico_status_t tokInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode)
 {
 /*
 
@@ -1460,7 +1460,7 @@
     }
     tok = (tok_subobj_t *) this->subObj;
 */
-    return tokReset(this);
+    return tokReset(this, r_mode);
 }
 
 
@@ -1508,7 +1508,7 @@
         picoos_deallocate(mm, (void *)&this);
         return NULL;
     }
-    tokInitialize(this);
+    tokInitialize(this, PICO_RESET_FULL);
     return this;
 }
 
diff --git a/pico/lib/picowa.c b/pico/lib/picowa.c
index 3e793c9..ab8ca51 100644
--- a/pico/lib/picowa.c
+++ b/pico/lib/picowa.c
@@ -78,7 +78,7 @@
 } wa_subobj_t;
 
 
-static pico_status_t waInitialize(register picodata_ProcessingUnit this) {
+static pico_status_t waInitialize(register picodata_ProcessingUnit this, picoos_int32 r_mode) {
     picoos_uint8 i;
     picoklex_Lex ulex;
     wa_subobj_t * wa;
@@ -98,6 +98,10 @@
     wa->outBufSize = PICOWA_MAXITEMSIZE;
     wa->outLen = 0;
 
+    if (r_mode == PICO_RESET_SOFT) {
+        /*following initializations needed only at startup or after a full reset*/
+        return PICO_OK;
+    }
     /* kb lex */
     wa->lex = picoklex_getLex(this->voice->kbArray[PICOKNOW_KBID_LEX_MAIN]);
     if (wa->lex == NULL) {
@@ -177,7 +181,7 @@
         return NULL;
     }
 
-    waInitialize(this);
+    waInitialize(this, PICO_RESET_FULL);
     return this;
 }
 
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..6a3204a
--- /dev/null
+++ b/pico/tests/data/xsampa_pico_man_en-US.txt
@@ -0,0 +1,189 @@
+﻿
+# 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>
+
+# TEST Z measure "mE.Z@`
+<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>
+
+# TEST W whale "We_Il  ("east coast" pronounciation of W phoneme for "wh")
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;We_Il"/>.</speak>
+
+# TEST w whale "We_Il
+<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
+
+# TEST @ allow @."la_U
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="@.&#34;la_U"/>.</speak>
+
+# TEST @` actor "{k.t@`
+<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
+
+# TEST 3`: furs "f3`:z says [fuz z z]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;f3`:z"/>.</speak>
+
+# TEST A: stars "stA:r\z says [starch]
+<speak xml:lang="en-US"> Testing <phoneme alphabet="xsampa" ph="&#34;stA:r\\z"/>.</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
+
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 <<<<<<<<<<<<------------------------------------
diff --git a/pico/tts/com_svox_picottsengine.cpp b/pico/tts/com_svox_picottsengine.cpp
index f7df2a4..6fb0ac7 100644
--- a/pico/tts/com_svox_picottsengine.cpp
+++ b/pico/tts/com_svox_picottsengine.cpp
@@ -29,6 +29,7 @@
  *   If the language is changed through an SSML tag, there is a latency for the load.
  *
  */
+//#define LOG_NDEBUG 0
 
 #include <stdio.h>
 #include <unistd.h>
@@ -583,6 +584,157 @@
 }
 
 
+/** get_tok
+ *  Searches for tokens in a string
+ *  @str - text to be processed
+ *  @pos - position of first character to be searched in str
+ *  @textlen - postion of last character to be searched
+ *  @tokstart - address of a variable to receive the start of the token found
+ *  @tokstart - address of a variable to receive the length of the token found
+ *  return : 1=token found, 0=token not found
+ *  notes : the token separator set could be enlarged adding characters in "seps"
+*/
+static int  get_tok(const char * str , int pos, int textlen, int *tokstart, int *toklen)
+{
+    const char * seps = " ";
+
+    /*look for start*/
+    while ((pos<textlen) && (strchr(seps,str[pos]) != NULL)) {
+        pos++;
+    }
+    if (pos == textlen) {
+        /*no characters != seps found whithin string*/
+        return 0;
+    }
+    *tokstart = pos;
+    /*look for end*/
+    while ((pos<textlen) && (strchr(seps,str[pos]) == NULL)) {
+        pos++;
+    }
+    *toklen = pos - *tokstart;
+    return 1;
+}/*get_tok*/
+
+
+/** get_sub_tok
+ *  Searches for subtokens in a token having a compound structure with camel case like "xxxYyyy"
+ *  @str - text to be processed
+ *  @pos - position of first character to be searched in str
+ *  @textlen - postion of last character to be searched in str
+ *  @tokstart - address of a variable to receive the start of the sub token found
+ *  @tokstart - address of a variable to receive the length of the sub token found
+ *  return : 1=sub token found, 0=sub token not found
+ *  notes : the sub token separator set could be enlarged adding characters in "seps"
+*/
+static int  get_sub_tok(const char * str , int pos, int textlen, int *tokstart, int *toklen) {
+
+    const char * seps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+    if (pos == textlen) {
+        return 0;
+    }
+
+    /*first char != space*/
+    *tokstart = pos;
+    /*finding first non separator*/
+    while ((pos < textlen) && (strchr(seps, str[pos]) != NULL)) {
+        pos++;
+    }
+    if (pos == textlen) {
+        /*characters all in seps found whithin string : return full token*/
+        *toklen = pos - *tokstart;
+        return 1;
+    }
+    /*pos should be pointing to first non seps and more chars are there*/
+    /*finding first separator*/
+    while ((pos < textlen) && (strchr(seps, str[pos]) == NULL)) {
+        pos++;
+    }
+    if (pos == textlen) {
+        /*transition non seps->seps not found : return full token*/
+        *toklen = pos - *tokstart;
+        return 1;
+    }
+    *toklen = pos - *tokstart;
+    return 1;
+}/*get_sub_tok*/
+
+
+/** doCamelCase
+ *  Searches for tokens having a compound structure with camel case and transforms them as follows :
+ *        "XxxxYyyy" -->> "Xxxx Yyyy",
+ *        "xxxYyyy"  -->> "xxx Yyyy",
+ *        "XXXYyyy"  -->> "XXXYyyy"
+ *        etc....
+ *  The calling function is responsible for freeing the returned string.
+ *  @str - text to be processed
+ *  return new string with text processed
+*/
+static char * doCamelCase( const char * str )
+{
+    int     textlen;             /* input string length   */
+    int     totlen;              /* output string length   */
+    int     tlen_2, nsubtok;     /* nuber of subtokens   */
+    int     toklen, tokstart;    /*legnth and start of generic token*/
+    int     stoklen, stokstart;  /*legnth and start of generic sub-token*/
+    int     pos, tokpos, outpos; /*postion of current char in input string and token and output*/
+    char    *data;               /*pointer of the returned string*/
+
+    pos = 0;
+    tokpos = 0;
+    toklen = 0;
+    stoklen = 0;
+    tlen_2 = 0;
+    totlen = 0;
+
+    textlen = strlen(str) + 1;
+
+    /*counting characters after sub token splitting including spaces*/
+    //while ((pos<textlen) && (str[pos]!=0)) {
+    while (get_tok(str, pos, textlen, &tokstart, &toklen)) {
+        tokpos = tokstart;
+        tlen_2 = 0;
+        nsubtok = 0;
+        while (get_sub_tok(str, tokpos, tokstart+toklen, &stokstart, &stoklen)) {
+            totlen += stoklen;
+            tlen_2 += stoklen;
+            tokpos = stokstart + stoklen;
+            nsubtok += 1;
+        }
+        totlen += nsubtok;    /*add spaces between subtokens*/
+        pos = tokstart + tlen_2;
+    }
+    //}
+    /* Allocate the return string */
+    data = (char *) malloc( totlen );                  /* allocate string      */
+    if (!data) {
+        return NULL;
+    }
+    memset(data, 0, totlen);                           /* clear it             */
+    outpos = 0;
+    pos = 0;
+    /*copying characters*/
+    //while ((pos<textlen) && (str[pos]!=0)) {
+    while (get_tok  (str, pos, textlen, &tokstart, &toklen)) {
+        tokpos = tokstart;
+        tlen_2 = 0;
+        nsubtok = 0;
+        while (get_sub_tok(str, tokpos, tokstart+toklen, &stokstart, &stoklen)) {
+            strncpy(&(data[outpos]), &(str[stokstart]), stoklen);
+            outpos += stoklen;
+            strncpy(&(data[outpos]), " ", 1);
+            tlen_2 += stoklen;
+            outpos += 1;
+            tokpos = stokstart + stoklen;
+        }
+        pos=tokstart+tlen_2;
+    }
+    //}
+    data[outpos] = 0;
+    return data;
+}/*doCamelCase*/
+
+
 /** createPhonemeString
  *  Wrap all individual words in <phoneme> tags.
  *  The Pico <phoneme> tag only supports one word in each tag,
@@ -649,13 +801,16 @@
     char        strXSAMPA[6];       /* SAMPA sequence           */
 } PArr;
 
-#define phn_cnt (134)
+#define phn_cnt (134+7)
 
 PArr    PhnAry[phn_cnt] = {
 
-    /* XSAMPA conversion table      */
+    /* XSAMPA conversion table
+	   This maps a single IPA symbol to a sequence representing XSAMPA.
+       This relies upon a direct one-to-one correspondance
+       including diphthongs and affricates.						      */
 
-    /* Vowels (23) incomplete     */
+    /* Vowels (23) complete     */
     {0x025B,        "E"},
     {0x0251,        "A"},
     {0x0254,        "O"},
@@ -680,7 +835,7 @@
     {0x025E,        "3\\\\"},
     {0x0258,        "@\\\\"},
 
-    /* Consonants (60) incomplete */
+    /* Consonants (60) complete */
     {0x0288,        "t`"},
     {0x0256,        "d`"},
     {0x025F,        "J\\\\"},
@@ -731,6 +886,7 @@
     {0x029C,        "H\\\\"},
     {0x02A1,        ">\\\\"},
     {0x02A2,        "<\\\\"},
+    {0x0267,        "x\\\\"},		/* hooktop heng	*/
     {0x0298,        "O\\\\"},
     {0x01C0,        "|\\\\"},
     {0x01C3,        "!\\\\"},
@@ -739,10 +895,10 @@
     {0x027A,        "l\\\\"},
     {0x0255,        "s\\\\"},
     {0x0291,        "z\\\\"},
-    {0x0267,        "x\\\\"},
     {0x026B,        "l_G"},
 
-    /* Diacritics (34) incomplete */
+
+    /* Diacritics (37) complete */
     {0x02BC,        "_>"},
     {0x0325,        "_0"},
     {0x030A,        "_0"},
@@ -758,7 +914,7 @@
     {0x031C,        "_c"},
     {0x031F,        "_+"},
     {0x0320,        "_-"},
-    {0x0308,        "_\""},     /* centralized  */
+    {0x0308,        "_\""},     /* centralized		*/
     {0x033D,        "_x"},
     {0x0318,        "_A"},
     {0x0319,        "_q"},
@@ -766,30 +922,39 @@
     {0x02B7,        "_w"},
     {0x02B2,        "_j"},
     {0x02E0,        "_G"},
-    {0x02E4,        "_?\\\\"},
-    {0x0303,        "~"},
+    {0x02E4,        "_?\\\\"},	/* pharyngealized	*/
+    {0x0303,        "~"},		/* nasalized		*/
     {0x207F,        "_n"},
     {0x02E1,        "_l"},
     {0x031A,        "_}"},
     {0x0334,        "_e"},
-    {0x031D,        "_r"},
-    {0x031E,        "_o"},
-    {0x0329,        "="},
-    {0x032F,        "_^"},
-    {0x02D0,        ":"},
-
-    /* Others (11) complete */
-    {0x0361,        "_"},
+    {0x031D,        "_r"},		/* raised  equivalent to 02D4 */
+    {0x02D4,        "_r"},		/* raised  equivalent to 031D */
+    {0x031E,        "_o"},		/* lowered equivalent to 02D5 */
+    {0x02D5,        "_o"},		/* lowered equivalent to 031E */
+    {0x0329,        "="},		/* sylabic			*/
+    {0x032F,        "_^"},		/* non-sylabic		*/
+    {0x0361,        "_"},		/* top tie bar		*/
     {0x035C,        "_"},
-    {0x02C8,        "\""},
-    {0x02CC,        "%"},
-    {0x02D1,        ":\\\\"},
-    {0x0306,        "_X"},
-    {0x2016,        "||"},
-    {0x203F,        "-\\\\"},
-    {0x2197,        "<R>"},
-    {0x2198,        "<F>"},
-    {0x025D,                "3`"},
+
+    /* Suprasegmental (15) incomplete */
+    {0x02C8,        "\""},		/* primary   stress	*/
+    {0x02CC,        "%"},		/* secondary stress	*/
+    {0x02D0,        ":"},		/* long				*/
+    {0x02D1,        ":\\\\"},	/* half-long		*/
+    {0x0306,        "_X"},		/* extra short		*/
+
+    {0x2016,        "||"},		/* major group		*/
+    {0x203F,        "-\\\\"},	/* bottom tie bar	*/
+    {0x2197,        "<R>"},		/* global rise		*/
+    {0x2198,        "<F>"},		/* global fall		*/
+    {0x2193,        "<D>"},		/* downstep			*/
+    {0x2191,        "<U>"},		/* upstep			*/
+    {0x02E5,        "<T>"},		/* extra high level	*/
+    {0x02E7,        "<M>"},		/* mid level		*/
+    {0x02E9,        "<B>"},		/* extra low level	*/
+
+    {0x025D,        "3`:"},		/* non-IPA	%%		*/
 
     /* Affricates (6) complete  */
     {0x02A3,        "d_z"},
@@ -834,7 +999,7 @@
 int cnvIpaToXsampa( const char16_t * ipaString, size_t ipaStringSize, char ** outXsampaString )
 {
     size_t xsize;                                  /* size of result               */
-    int    ipidx;                                  /* index into IPA string        */
+    size_t ipidx;                                  /* index into IPA string        */
     char * XPnt;                                   /* short XSAMPA char sequence   */
 
     /* Convert an IPA string to an XSAMPA string and store the xsampa string in *outXsampaString.
@@ -1269,6 +1434,7 @@
     int         err;
     int         cbret;
     pico_Char * inp = NULL;
+    char *      expanded_text = NULL;
     pico_Char * local_text = NULL;
     short       outbuf[MAX_OUTBUF_SIZE/2];
     pico_Int16  bytes_sent, bytes_recv, text_remaining, out_data_type;
@@ -1338,10 +1504,16 @@
             return TTS_FAILURE;
         }
     } else {
+        /* camelCase pre-processing */
+        //expanded_text = doCamelCase(text);
         /* Add property tags to the string - if any.    */
-        local_text = (pico_Char *) doAddProperties( text );
+        local_text = (pico_Char *) doAddProperties( text );//expanded_text );
+        /*if (expanded_text) {
+            LOGV("freeing string for %s", expanded_text);
+            free( expanded_text );
+        }*/
         if (!local_text) {
-        LOGE("Failed to allocate memory for text string");
+            LOGE("Failed to allocate memory for text string");
             return TTS_FAILURE;
         }
     }
@@ -1354,9 +1526,9 @@
 
     /* synthesis loop   */
     while (text_remaining) {
-        
+
         if (picoSynthAbort) {
-            ret = pico_resetEngine( picoEngine );
+            ret = pico_resetEngine( picoEngine, PICO_RESET_SOFT );
             break;
         }
 
@@ -1374,11 +1546,11 @@
         inp += bytes_sent;
         do {
             if (picoSynthAbort) {
-                ret = pico_resetEngine( picoEngine );
+                ret = pico_resetEngine( picoEngine, PICO_RESET_SOFT );
                 break;
             }
             /* Retrieve the samples and add them to the buffer. */
-            ret = pico_getData( picoEngine, (void *) outbuf, MAX_OUTBUF_SIZE, &bytes_recv, 
+            ret = pico_getData( picoEngine, (void *) outbuf, MAX_OUTBUF_SIZE, &bytes_recv,
                     &out_data_type );
             if (bytes_recv) {
                 if ((bufused + bytes_recv) <= bufferSize) {
@@ -1391,7 +1563,7 @@
                     if (cbret == TTS_CALLBACK_HALT) {
                         LOGI("Halt requested by caller. Halting.");
                         picoSynthAbort = 1;
-                        ret = pico_resetEngine( picoEngine );
+                        ret = pico_resetEngine( picoEngine, PICO_RESET_SOFT );
                         break;
                     }
                     bufused = 0;
@@ -1419,7 +1591,7 @@
             LOGV("Synth loop: sending TTS_SYNTH_DONE after error");
             picoSynthDoneCBPtr( userdata, 16000, AudioSystem::PCM_16_BIT, 1, buffer, bufused,
                     TTS_SYNTH_DONE);
-            pico_resetEngine( picoEngine );
+            pico_resetEngine( picoEngine, PICO_RESET_SOFT );
             return TTS_FAILURE;
         }
     }
diff --git a/picolanginstaller/res/drawable/icon.png b/picolanginstaller/res/drawable/icon.png
old mode 100755
new mode 100644
index cdb9e94..997d87b
--- a/picolanginstaller/res/drawable/icon.png
+++ b/picolanginstaller/res/drawable/icon.png
Binary files differ
diff --git a/picolanginstaller/res/values-cs/strings.xml b/picolanginstaller/res/values-cs/strings.xml
index 6263d71..0480acc 100644
--- a/picolanginstaller/res/values-cs/strings.xml
+++ b/picolanginstaller/res/values-cs/strings.xml
@@ -19,6 +19,6 @@
     <string name="installing_message" msgid="8792926973732354514">"Instalace hlasových dat na kartu SD."</string>
     <string name="uninstall_message" msgid="174096141356529599">"Hlasová data byla úspěšně nainstalována. Instalační program můžete bezpečně odebrat."</string>
     <string name="uninstall" msgid="6195983436684617741">"Odinstalovat"</string>
-    <string name="retry_message" msgid="6519833625675608678">"Instalace hlasových dat se nezdařila. Zkontrolujte, zda je karta SD v zařízení a obsahuje alespoň 6 MB volného místa. Je-li karta již v zařízení, odeberte ji a vložte znovu."</string>
+    <string name="retry_message" msgid="6519833625675608678">"Instalace hlasových dat se nezdařila. Zkontrolujte, zda je karta SD v zařízení a obsahuje alespoň 6 MB volného místa. Je-li karta již v zařízení, odeberte ji a vložte znovu."</string>
     <string name="retry" msgid="7470276488993209974">"Zkusit znovu"</string>
 </resources>
diff --git a/picolanginstaller/res/values-da/strings.xml b/picolanginstaller/res/values-da/strings.xml
new file mode 100644
index 0000000..7244fbe
--- /dev/null
+++ b/picolanginstaller/res/values-da/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Installationsprogram for talesyntesedata"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Installation af stemmedata på SD-kort."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Stemmedataene er installeret. Du kan nu fjerne dette installationsprogram."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Afinstaller"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Stemmedata kunne ikke installeres. Kontroller, at dit SD-kort sidder i enheden og har mindst 6 MB ledig plads. Hvis kortet allerede sidder i enheden, skal du prøve at fjerne kortet og indsætte det igen."</string>
+    <string name="retry" msgid="7470276488993209974">"Prøv igen"</string>
+</resources>
diff --git a/picolanginstaller/res/values-de/strings.xml b/picolanginstaller/res/values-de/strings.xml
index e6b4eac..0cc7b02 100644
--- a/picolanginstaller/res/values-de/strings.xml
+++ b/picolanginstaller/res/values-de/strings.xml
@@ -20,5 +20,5 @@
     <string name="uninstall_message" msgid="174096141356529599">"Die Sprachdaten wurden erfolgreich installiert. Sie können dieses Installationsprogramm nun entfernen."</string>
     <string name="uninstall" msgid="6195983436684617741">"Deinstallieren"</string>
     <string name="retry_message" msgid="6519833625675608678">"Die Sprachdaten konnten nicht installiert werden. Stellen Sie sicher, dass sich die SD-Karte in Ihrem Gerät befindet und über mindestens 6 MB freien Speicherplatz verfügt. Wenn sich Ihre Karte bereits im Gerät befindet, entfernen Sie die Karte und setzen Sie sie dann wieder ein."</string>
-    <string name="retry" msgid="7470276488993209974">"Erneut versuchen"</string>
+    <string name="retry" msgid="7470276488993209974">"Wiederholen"</string>
 </resources>
diff --git a/picolanginstaller/res/values-el/strings.xml b/picolanginstaller/res/values-el/strings.xml
new file mode 100644
index 0000000..b8a281b
--- /dev/null
+++ b/picolanginstaller/res/values-el/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Πρόγραμμα εγκατάστασης δεδομένων σύνθεσης ομιλίας"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Εγκατάσταση δεδομένων φωνής στην κάρτα SD."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Η εγκατάσταση των δεδομένων φωνής ολοκληρώθηκε με επιτυχία. Μπορείτε τώρα να καταργήσετε το πρόγραμμα εγκατάστασης."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Κατάργηση εγκατάστασης"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Η εγκατάσταση των δεδομένων φωνής απέτυχε. Βεβαιωθείτε ότι η κάρτα SD είναι τοποθετημένη στη συσκευή σας και ότι έχει τουλάχιστον 6MB ελεύθερου χώρου. Εάν η κάρτα βρίσκεται ήδη στη συσκευή σας, δοκιμάστε να την αφαιρέσετε και να την τοποθετήσετε ξανά."</string>
+    <string name="retry" msgid="7470276488993209974">"Επανάληψη"</string>
+</resources>
diff --git a/picolanginstaller/res/values-es-rUS/strings.xml b/picolanginstaller/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..e9898be
--- /dev/null
+++ b/picolanginstaller/res/values-es-rUS/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Instalador de datos de síntesis de voz"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Instalando los datos de voz en la tarjeta SD"</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Los datos de voz se han instalado de manera exitosa. Ahora puedes suprimir este instalador de manera segura."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Desinstalar..."</string>
+    <string name="retry_message" msgid="6519833625675608678">"No se pudo instalar los datos de voz de manera correcta. Asegúrate de que tu tarjeta SD esté en tu dispositivo y que tenga al menos 6MB de espacio libre. Si tu tarjeta ya está en tu dispositivo, intenta sacarla y volverla a insertar."</string>
+    <string name="retry" msgid="7470276488993209974">"Intentar nuevamente"</string>
+</resources>
diff --git a/picolanginstaller/res/values-fr/strings.xml b/picolanginstaller/res/values-fr/strings.xml
index b167ab0..a97df4f 100644
--- a/picolanginstaller/res/values-fr/strings.xml
+++ b/picolanginstaller/res/values-fr/strings.xml
@@ -19,6 +19,6 @@
     <string name="installing_message" msgid="8792926973732354514">"Installation des données de la fonction de synthèse vocale sur la carte SD"</string>
     <string name="uninstall_message" msgid="174096141356529599">"Les données de la fonction de synthèse vocale ont été installées correctement. Vous pouvez maintenant supprimer ce programme d\'installation en toute sécurité."</string>
     <string name="uninstall" msgid="6195983436684617741">"Désinstaller"</string>
-    <string name="retry_message" msgid="6519833625675608678">"L\'installation des données de la fonction de synthèse vocale a échoué. Veuillez vérifier que vous avez bien inséré votre carte SD dans votre mobile et que celle-ci dispose d\'au moins 6 Mo d\'espace disponible. Si votre carte SD est déjà insérée dans votre appareil, essayez de la retirer et de la réinsérer."</string>
+    <string name="retry_message" msgid="6519833625675608678">"L\'installation des données de la fonction de synthèse vocale a échoué. Veuillez vérifier que vous avez bien inséré votre carte SD dans votre mobile et que celle-ci dispose d\'au moins 6 Mo d\'espace disponible. Si votre carte SD est déjà insérée dans l\'appareil, essayez de la retirer et de la réinsérer."</string>
     <string name="retry" msgid="7470276488993209974">"Réessayer"</string>
 </resources>
diff --git a/picolanginstaller/res/values-ja/strings.xml b/picolanginstaller/res/values-ja/strings.xml
index 7480db0..2ea06b8 100644
--- a/picolanginstaller/res/values-ja/strings.xml
+++ b/picolanginstaller/res/values-ja/strings.xml
@@ -16,9 +16,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="3853942104135735825">"音声合成データのインストーラ"</string>
-    <string name="installing_message" msgid="8792926973732354514">"音声データをSDカードにインストールしています。"</string>
+    <string name="installing_message" msgid="8792926973732354514">"音声データをSDカードにインストール中です。"</string>
     <string name="uninstall_message" msgid="174096141356529599">"音声データは正常にインストールされました。これでこのインストーラを安全に削除できます。"</string>
     <string name="uninstall" msgid="6195983436684617741">"アンインストール"</string>
-    <string name="retry_message" msgid="6519833625675608678">"音声データをインストールできませんでした。最低6MBの空き容量があるSDカードが端末に挿入されていることを確認してください。既にSDカードが挿入されている場合は挿入し直してみてください。"</string>
+    <string name="retry_message" msgid="6519833625675608678">"音声データをインストールできませんでした。6MB以上の空き容量があるSDカードが端末に挿入されていることを確認してください。既にSDカードが挿入されている場合は、挿入し直してみてください。"</string>
     <string name="retry" msgid="7470276488993209974">"再試行"</string>
 </resources>
diff --git a/picolanginstaller/res/values-ko/strings.xml b/picolanginstaller/res/values-ko/strings.xml
new file mode 100644
index 0000000..269d723
--- /dev/null
+++ b/picolanginstaller/res/values-ko/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"음성 합성 데이터 설치 프로그램"</string>
+    <string name="installing_message" msgid="8792926973732354514">"SD 카드에 음성 데이터를 설치하는 중입니다."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"음성 데이터가 성공적으로 설치되었습니다. 이제 이 설치 프로그램을 안전하게 삭제할 수 있습니다."</string>
+    <string name="uninstall" msgid="6195983436684617741">"제거"</string>
+    <string name="retry_message" msgid="6519833625675608678">"음성 데이터가 설치되지 않았습니다. SD 카드가 장치에 삽입되어 있고 사용 가능한 공간이 6MB 이상인지 확인하시기 바랍니다. 카드가 이미 장치에 삽입되어 있으면 카드를 제거하고 다시 삽입해 보세요."</string>
+    <string name="retry" msgid="7470276488993209974">"다시 시도"</string>
+</resources>
diff --git a/picolanginstaller/res/values-nb/strings.xml b/picolanginstaller/res/values-nb/strings.xml
new file mode 100644
index 0000000..49fbed8
--- /dev/null
+++ b/picolanginstaller/res/values-nb/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Installasjonsprogram for tale-syntesedata"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Installer stemmedata på SD-kort."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Stemmedata er installert. Du kan fjerne dette installasjonsprogrammet nå."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Avinstaller"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Stemmedata kunne ikke installere. Kontroller at SD-kortet er i enheten, og at det har ledig plass på minst 6 MB. Hvis kortet er i enheten, prøv å ta ut kortet og sette det inn igjen."</string>
+    <string name="retry" msgid="7470276488993209974">"Prøv på nytt"</string>
+</resources>
diff --git a/picolanginstaller/res/values-nl/strings.xml b/picolanginstaller/res/values-nl/strings.xml
index 9236d72..0555896 100644
--- a/picolanginstaller/res/values-nl/strings.xml
+++ b/picolanginstaller/res/values-nl/strings.xml
@@ -19,6 +19,6 @@
     <string name="installing_message" msgid="8792926973732354514">"Stemgegevens installeren op SD-kaart."</string>
     <string name="uninstall_message" msgid="174096141356529599">"De stemgegevens zijn geïnstalleerd. U kunt dit installatieprogramma nu veilig verwijderen."</string>
     <string name="uninstall" msgid="6195983436684617741">"Verwijderen"</string>
-    <string name="retry_message" msgid="6519833625675608678">"Het installeren van de stemgegevens is mislukt. Controleer of de SD-kaart in het apparaat is geplaatst en ten minste 6 MB vrije ruimte heeft. Als de kaart al in het apparaat is geplaatst, verwijdert u de kaart en plaatst u deze opnieuw."</string>
+    <string name="retry_message" msgid="6519833625675608678">"Het installeren van de stemgegevens is mislukt. Controleer of de SD-kaart in het apparaat is geplaatst en er ten minste 6 MB vrije ruimte beschikbaar is. Als de kaart al in het apparaat is geplaatst, verwijdert u de kaart en plaatst u deze opnieuw."</string>
     <string name="retry" msgid="7470276488993209974">"Opnieuw proberen"</string>
 </resources>
diff --git a/picolanginstaller/res/values-pl/strings.xml b/picolanginstaller/res/values-pl/strings.xml
index aef790d..a6c69ad 100644
--- a/picolanginstaller/res/values-pl/strings.xml
+++ b/picolanginstaller/res/values-pl/strings.xml
@@ -20,5 +20,5 @@
     <string name="uninstall_message" msgid="174096141356529599">"Dane głosowe zostały pomyślnie zainstalowane. Możesz teraz bezpiecznie usunąć ten program instalacyjny."</string>
     <string name="uninstall" msgid="6195983436684617741">"Odinstaluj"</string>
     <string name="retry_message" msgid="6519833625675608678">"Zainstalowanie danych głosowych nie powiodło się. Sprawdź, czy w urządzeniu znajduje się karta SD zawierająca co najmniej 6 MB wolnego miejsca. Jeśli karta znajduje się w urządzeniu, wyjmij ją i włóż ponownie."</string>
-    <string name="retry" msgid="7470276488993209974">"Ponów"</string>
+    <string name="retry" msgid="7470276488993209974">"Ponów próbę"</string>
 </resources>
diff --git a/picolanginstaller/res/values-pt-rPT/strings.xml b/picolanginstaller/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..11dae9b
--- /dev/null
+++ b/picolanginstaller/res/values-pt-rPT/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Instalador de dados de reprodução de voz"</string>
+    <string name="installing_message" msgid="8792926973732354514">"A instalar dados de voz no cartão SD."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Os dados de voz foram instalados com êxito. Agora já pode remover este instalador com segurança."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Desinstalar"</string>
+    <string name="retry_message" msgid="6519833625675608678">"A instalação dos dados de voz falhou. Certifique-se de que o seu cartão SD está inserido no respectivo dispositivo e de que possui, pelo menos, 6 MB de espaço livre. Se o cartão já estiver no dispositivo, experimente retirá-lo e voltar a inseri-lo."</string>
+    <string name="retry" msgid="7470276488993209974">"Tentar novamente"</string>
+</resources>
diff --git a/picolanginstaller/res/values-pt/strings.xml b/picolanginstaller/res/values-pt/strings.xml
new file mode 100644
index 0000000..f224726
--- /dev/null
+++ b/picolanginstaller/res/values-pt/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Instalador de dados de sintetização de voz"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Instalando os dados de voz no cartão SD."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Os dados de voz foram instalados com êxito. O instalador já pode ser removido com segurança."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Desinstalar"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Falha na instalação dos dados de voz. Verifique se o seu cartão SD está no aparelho e tem no mínimo 6 MB de espaço livre. Se o cartão já estiver no seu dispositivo, remova-o e o insira novamente."</string>
+    <string name="retry" msgid="7470276488993209974">"Tentar novamente"</string>
+</resources>
diff --git a/picolanginstaller/res/values-ru/strings.xml b/picolanginstaller/res/values-ru/strings.xml
new file mode 100644
index 0000000..ab9e013
--- /dev/null
+++ b/picolanginstaller/res/values-ru/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Установщик данных синтезатора речи"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Установка голосовых данных на SD-карте."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Голосовые данные установлены успешно. Можно удалить установщик."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Удалить"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Произошел сбой при установке голосовых данных. Убедитесь, что на SD-карте вашего устройства имеется как минимум 6 МБ свободного пространства. Если карта уже находится в устройстве, попробуйте извлечь ее и снова вставить."</string>
+    <string name="retry" msgid="7470276488993209974">"Повторить попытку"</string>
+</resources>
diff --git a/picolanginstaller/res/values-sv/strings.xml b/picolanginstaller/res/values-sv/strings.xml
new file mode 100644
index 0000000..a951927
--- /dev/null
+++ b/picolanginstaller/res/values-sv/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Datainstallationsprogram för talsyntes"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Installera röstdata på SD-kort."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Röstdata har installerats. Du kan nu ta bort installationsprogrammet."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Avinstallera"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Röstdata kunde inte installeras. Kontrollera att SD-kortet i enheten har minst 6 MB ledigt utrymme. Om kortet redan sitter i enheten kan du pröva med att ta ut och sätta tillbaka det."</string>
+    <string name="retry" msgid="7470276488993209974">"Försök igen"</string>
+</resources>
diff --git a/picolanginstaller/res/values-tr/strings.xml b/picolanginstaller/res/values-tr/strings.xml
new file mode 100644
index 0000000..b210197
--- /dev/null
+++ b/picolanginstaller/res/values-tr/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"Konuşma Sentezi Veri Yükleyicisi"</string>
+    <string name="installing_message" msgid="8792926973732354514">"Ses verileri SD karta yükleniyor."</string>
+    <string name="uninstall_message" msgid="174096141356529599">"Ses verileri başarıyla yüklendi. Bu yükleyiciyi artık güvenle kaldırabilirsiniz."</string>
+    <string name="uninstall" msgid="6195983436684617741">"Kaldır"</string>
+    <string name="retry_message" msgid="6519833625675608678">"Ses verileri yüklenemedi. Lütfen SD kartınızın cihazınızda olduğundan ve en az 6 MB boş alan bulunduğundan emin olun. Kartınız zaten cihazınızdaysa kartı çıkarmayı ve yeniden takmayı deneyin."</string>
+    <string name="retry" msgid="7470276488993209974">"Tekrar Dene"</string>
+</resources>
diff --git a/picolanginstaller/res/values-zh-rCN/strings.xml b/picolanginstaller/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..1c14c74
--- /dev/null
+++ b/picolanginstaller/res/values-zh-rCN/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="3853942104135735825">"语音合成数据安装程序"</string>
+    <string name="installing_message" msgid="8792926973732354514">"正在将语音数据安装到 SD 卡上。"</string>
+    <string name="uninstall_message" msgid="174096141356529599">"语音数据安装成功，现在可以安全地删除此安装程序。"</string>
+    <string name="uninstall" msgid="6195983436684617741">"卸载"</string>
+    <string name="retry_message" msgid="6519833625675608678">"语音数据安装失败。请确保已将 SD 卡插入您的设备，并至少有 6 MB 可用空间。如果您的 SD 卡已插入设备中，请尝试将其拔下并重新插入。"</string>
+    <string name="retry" msgid="7470276488993209974">"重试"</string>
+</resources>
diff --git a/picolanginstaller/res/values-zh-rTW/strings.xml b/picolanginstaller/res/values-zh-rTW/strings.xml
index 98b0646..5c0c8ab 100644
--- a/picolanginstaller/res/values-zh-rTW/strings.xml
+++ b/picolanginstaller/res/values-zh-rTW/strings.xml
@@ -19,6 +19,6 @@
     <string name="installing_message" msgid="8792926973732354514">"正在 SD 卡上安裝語音資料。"</string>
     <string name="uninstall_message" msgid="174096141356529599">"已安裝語音資料，您可以移除安裝程式了。"</string>
     <string name="uninstall" msgid="6195983436684617741">"解除安裝"</string>
-    <string name="retry_message" msgid="6519833625675608678">"無法安裝語音資料，請確定您的手機已插入 SD 卡，且有 6MB 的可用空間。如果您已插入 SD 卡，請取出再重新插入一次。"</string>
+    <string name="retry_message" msgid="6519833625675608678">"無法安裝語音資料，請檢查手機是否已插入 SD 卡，以及是否有 6MB 的可用空間。如果您已插入 SD 卡，請取出再重新插入一次。"</string>
     <string name="retry" msgid="7470276488993209974">"重試"</string>
 </resources>
