Silero-TTS v5: čtyři typy otázkové intonace v ruštině
Nová verze Silero-TTS v5 pro ruštinu nyní generuje řeč s korektní otázkovou intonací. Model zvládá čtyři typy otázek: speciální (s otázkovými slovy), obecné (s prosodickým akcentem), alternativní a přídavné (tail questions). U obecných otázek je centrální intonace označena hvězdičkami — to zvyšuje vyjadřovací sílu bez nutnosti dalších parametrů.
Hlavní novinky aktualizace:
- Automatické zpracování homografů a přízvuků.
- Podpora SSML pro kontrolu prosodie.
- Vysoká rychlost inferencí na CPU.
- Hlasové profily: aidar, baya, kseniya, xenia (eugene je ve vývoji).
Jazykové základy otázkové prosodie
V ruštině jsou otázky označeny gramaticky (pořadí slov, vzácně), lexikálně (otázková slova, částice) a prosodicky (intonace). Obecné otázky se spoléhají výhradně na prosodii: intonační střed může padat na jakékoli slovo a změnit tak význam.
Příklady:
- On PŘIŠEL? — akcent na činnosti.
- ON přišel? — akcent na subjektu.
Pro trénink modelu je potřeba označení typů otázek a pozic akcentu. Korpusová data bez této označení nestačí.
Příklady generování obecných otázek
Kód pro syntézu s různými pozicemi akcentu:
import IPython.display as ipd
texts = [
'*Organizátoři* nám poslali elektronické lístky?',
'Organizátoři *poslali* nám elektronické lístky?',
'Organizátoři poslali *nám* elektronické lístky?',
'Organizátoři poslali nám *elektronické* lístky?',
'Organizátoři poslali nám elektronické *lístky*?'
]
for i, text in enumerate(texts):
audio = model.apply_tts(text=text, speaker='xenia')
ipd.display(ipd.Audio(audio, rate=48000))
Zvukové ukázky ukazují plynulý nárůst tónu na zvýrazněném slově a pokles na konci.
Instalace a základní spuštění
Instalace přes pip:
!pip install silero
from silero import silero_tts
model, example_text = silero_tts(language='ru', speaker='v5_4_ru')
audio = model.apply_tts(text=example_text)
Úplná inicializace přes torch.hub:
import torch
language = 'ru'
model_id = 'v5_4_ru'
device = torch.device('cpu')
model, example_text = torch.hub.load(repo_or_dir='snakers4/silero-models',
model='silero_tts',
language=language,
speaker=model_id)
model.to(device)
sample_rate = 48000
speaker = 'xenia'
put_accent=True
put_yo=True
put_stress_homo=True
put_yo_homo=True
example_text = 'Jmenuji se Lev Koroľev. Jsem z Gota. A jsem už připraven otevřít každou vaši zámku libovolné obtížnosti!'
audio = model.apply_tts(text=example_text,
speaker=speaker,
sample_rate=sample_rate,
put_accent=put_accent,
put_yo=put_yo,
put_stress_homo=put_stress_homo,
put_yo_homo=put_yo_homo)
SSML příklad s prosodií:
ssml_sample = """
<speak>
<p>
Když se probudím, <prosody rate="x-slow">mluvím docela pomalu</prosody>.
Pak začnu mluvit svým běžným hlasem,
<prosody pitch="x-high">nebo mohu mluvit vysoko</prosody>,
nebo <prosody pitch="x-low">naopak nízko</prosody>.
Pak, pokud mi to půjde – <prosody rate="fast">mohu mluvit i docela rychle.</prosody>
A také umím dělat pauzy libovolné délky, například dvě sekundy <break time="2000ms"/>
<p>
Také umím dělat pauzy mezi odstavci.
</p>
<p>
<s>A také umím dělat pauzy mezi větami</s>
<s>Jako právě teď například</s>
</p>
</p>
</speak>
"""
audio = model.apply_tts(ssml_text=ssml_sample,
speaker=speaker,
sample_rate=sample_rate)
Parametry intonace a doporučení
- intensity=3: síla otázkové intonace (výchozí, optimální).
- U speciálních, alternativních a přídavných otázek není akcent povinný.
- Obecné otázky vyžadují hvězdičky pro přesné určení pozice akcentu.
Typy otázek a jejich zpracování:
- Speciální: Co? Kde? Kdy? — lexikální označení + standardní prosodie.
- Obecné: Jsi doma? — prosodický akcent na libovolném slově.
- Alternativní: Ryba nebo maso? — intonace na alternativách.
- Přídavné: Nebo ne? — stoupající tón na přídavku.
Důležité informace
- Model Silero-TTS v5 generuje otázky s prosodickým akcentem na libovolných pozicích bez GPU.
- Podpora čtyř typů otázek prostřednictvím jednoduchého označení hvězdičkami u obecných případů.
- Integrace SSML pro jemné ladění prosodie a pauz.
- Instalace přes pip/torch.hub, sample_rate=48000 Hz.
- Plánovaná podpora empházy v tvorivých větách.
— Editorial Team
Zatím žádné komentáře.