|
|
@@ -1,6 +1,7 @@ |
|
|
|
/*************************************************************************** |
|
|
|
* Copyright (C) 2005 to 2015 by Jonathan Duddington * |
|
|
|
* email: [email protected] * |
|
|
|
* Copyright (C) 2015 by Reece H. Dunn * |
|
|
|
* * |
|
|
|
* This program is free software; you can redistribute it and/or modify * |
|
|
|
* it under the terms of the GNU General Public License as published by * |
|
|
@@ -1789,6 +1790,10 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb |
|
|
|
PARAM_STACK *sp; |
|
|
|
SSML_STACK *ssml_sp; |
|
|
|
|
|
|
|
static const MNEM_TAB mnem_phoneme_alphabet[] = { |
|
|
|
{"espeak",1}, |
|
|
|
{NULL, -1}}; |
|
|
|
|
|
|
|
static const MNEM_TAB mnem_punct[] = { |
|
|
|
{"none", 1}, |
|
|
|
{"all", 2}, |
|
|
@@ -1938,6 +1943,20 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int *outix, int n_outb |
|
|
|
PopParamStack(tag_type, outbuf, outix); |
|
|
|
break; |
|
|
|
|
|
|
|
case SSML_PHONEME: |
|
|
|
attr1 = GetSsmlAttribute(px,"alphabet"); |
|
|
|
attr2 = GetSsmlAttribute(px,"ph"); |
|
|
|
value = attrlookup(attr1,mnem_phoneme_alphabet); |
|
|
|
if (value == 1) // alphabet="espeak" |
|
|
|
{ |
|
|
|
outbuf[(*outix)++] = '['; |
|
|
|
outbuf[(*outix)++] = '['; |
|
|
|
*outix += attrcopy_utf8(&outbuf[*outix],attr2,n_outbuf-*outix); |
|
|
|
outbuf[(*outix)++] = ']'; |
|
|
|
outbuf[(*outix)++] = ']'; |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
case SSML_SAYAS: |
|
|
|
attr1 = GetSsmlAttribute(px,"interpret-as"); |
|
|
|
attr2 = GetSsmlAttribute(px,"format"); |