Hello @thekingofcity , Thanks for sharing detailed infromation.
I have understood the problem. I believe the issue is due to the contour attribute of the prosody element is formatted incorrectly.
As we know, contour represents the changes in pitch at different points in the utterance: https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-synthesis-markup-voice?source=recommendations#adjust-prosody
Contour represents changes in pitch. These changes are represented as an array of targets at specified time positions in the speech output. Sets of parameter pairs define each target. For example:
<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">
The first value in each set of parameters specifies the location of the pitch change as a percentage of the duration of the text. The second value specifies the amount to raise or lower the pitch by using a relative value or an enumeration value for pitch (seepitch
).
Here while specifying the contour the second value specifies pitch. So, while representing the as a percentage: Expressed as a number preceded by "+"or "-"and followed by "%" is required.
The reason for your first voice name="en-US-JennyNeural"
worked because the contour attribute was set correctly.
I reproduced your query it resulted me with the same error after correcting with proper attributes it worked well on my end. In your query "+" before"(60%,0%) is missing that has caused this issue. There is no other issue with the voice as per my knowledge.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="zh-CN">
<voice name="zh-CN-XiaoqiuNeural">
<prosody pitch="50%" rate="+50.00%" contour="(60%, +0%)(100%, +25%)" >
可换乘
</prosody>
</voice>
</speak>
Please try this and let me know if you have any issues.
I hope this helps.
Regards,
Vasavi
-Please kindly accept the answer and vote 'yes' if you feel helpful to support the community, thanks.