[Bug]
Describe the bug
Title: Critical limitations of XTTS v2 for Russian speech — stress control and full-stop handling
Hello
I am writing on behalf of Russian-speaking XTTS v2 users
The model claims Russian language support, but in its current state this support is incomplete for practical voice-over work
The first critical problem is the lack of reliable stress control. In Russian, word stress determines naturalness and can sometimes change the meaning of a word. XTTS v2 provides no mechanism for manual stress control
Capital letters inside a word, SSML markup, phonemes, and pronunciation dictionaries do not work. Capital letters are also lost during built-in text normalization. Generating multiple variants and changing a word’s spelling phonetically are not solutions — they are only unreliable workarounds
The second critical problem is that a full stop in Russian text can cause an unnatural stretching of the final sound or a false vocalization. This is not a pause or natural intonation; it is a noticeable speech defect
A common workaround — replacing the full stop with an exclamation mark — is not a solution either. In this case, the exclamation mark carries neither emotional nor semantic meaning: the model renders the phrase the same way with or without it. The user is forced to abandon normal punctuation merely to avoid a synthesis error
Both issues are critical for Russian. In commercial videos, instructions, educational materials, and technical presentations, an incorrect word stress or a defect at the end of a sentence immediately makes the voice-over sound unprofessional
We ask you to add:
- support for Unicode stress marks
- an SSML tag for stress or phonemes
- a user pronunciation dictionary
- a simple stress syntax, for example a marker before the stressed vowel
- correct handling of a full stop as a neutral sentence boundary without false vocalization
- a separate setting for the pause after a full stop without altering the pronunciation of the final word
Without these features, Russian language support cannot be considered complete. XTTS has a high-quality voice, but the lack of stress control and the incorrect handling of basic punctuation make the model unreliable for professional Russian voice-over work
Please consider this a high-priority issue
To Reproduce
from TTS.api import TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=False)
tts.tts_to_file( text="Перед вами фотореалистичный кадр готовой конструкции.", speaker="Marcos Rudaski", language="ru", file_path="period_test.wav", ) 1 Run the code above 2 Listen to period_test.wav 3 The model stretches or adds an unnatural vocal sound after the final word when the sentence ends with a full stop
For comparison, remove the full stop or replace it with an exclamation mark and generate again The artifact disappears, but the exclamation mark does not create a meaningful emotional or semantic difference in the generated speech
Expected behavior
For Russian synthesis, a full stop should create a neutral sentence boundary and a natural pause without stretching the final vowel or generating an extra vocal sound
Russian stress marks should be preserved or a documented pronunciation control mechanism should be available
Logs
No runtime exception occurs
The issue is audible in the generated WAV output
Environment
TTS version: 0.27.5
PyTorch version: 2.13.0+cpu
Python version: 3.12.13
OS: Windows 10 22H2, build 19045
CUDA: not available
GPU: CPU inference
Installation: pip in a local virtual environment
Speaker: Marcos Rudaski
Language: ru
Model: tts_models/multilingual/multi-dataset/xtts_v2
Additional context
No response
Source: coqui-ai/TTS