Я экспериментировал с SSML, и кажется, что механизм TTS автоматически оборачивает свои входные данные корневым элементом <speak>
, поэтому, если вы пропустите его, он будет работать нормально, и вы не получите ошибку парсера.
Пример:
String text = "Testing <phoneme alphabet=\"xsampa\" ph=\""{k.t@`\"/>.";
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);