Silero-TTS v5: Jetzt mit vier russischen Fragintonationen
Die neue Version Silero-TTS v5 für Russisch erzeugt Sprache mit präziser Fragentonlage. Das Modell verarbeitet vier Fragetypen: Spezialfragen (mit Fragewörtern), Allgemeine Fragen (mit prosodischem Akzent), Alternativfragen und Nachfragen. Bei allgemeinen Fragen wird der intonatorische Schwerpunkt mit Sternchen markiert – das erhöht die Ausdruckskraft ohne zusätzliche Parameter.
Wichtige Neuerungen des Updates:
- Automatische Behandlung von Homographen und Betonung.
- Vollständige SSML-Unterstützung für Prosodie-Steuerung.
- Hohe Inferenzgeschwindigkeit auf der CPU.
- Stimmen: aidar, baya, kseniya, xenia (eugene in Entwicklung).
Die linguistischen Grundlagen der Fragetonlage
Im Russischen werden Fragen grammatikalisch (Wortstellung, selten), lexikalisch (Fragewörter, Partikeln) und prosodisch (Tonfall) markiert. Allgemeine Fragen basieren ausschließlich auf Prosodie: Der intonatorische Schwerpunkt kann auf jedes beliebige Wort fallen und verändert so die Bedeutung.
Beispiele:
- Did he COME? — Betonung auf die Handlung.
- HE came? — Betonung auf das Subjekt.
Die Schulung des Modells erfordert die Kennzeichnung von Fragetypen und Akzentpositionen. Korpusdaten ohne solche Annotationen reichen nicht aus.
Beispiele zur Synthese allgemeiner Fragen
Code zum Generieren von Fragen mit unterschiedlichen Akzentpositionen:
import IPython.display as ipd
texts = [
'*Organizers* sent us electronic tickets?',
'Organizers *sent* us electronic tickets?',
'Organizers sent *us* electronic tickets?',
'Organizers sent us *electronic* tickets?',
'Organizers sent us electronic *tickets*?'
]
for i, text in enumerate(texts):
audio = model.apply_tts(text=text, speaker='xenia')
ipd.display(ipd.Audio(audio, rate=48000))
Die Audiomuster zeigen einen sanften Tonanstieg am betonten Wort und eine Abfallbewegung am Ende.
Installation und grundlegende Nutzung
Installieren über 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)
Vollständige Initialisierung über 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 = 'My name is Leva Korolev. I am ready. And I am ready to open locks of any complexity!'
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-Beispiel mit Prosodie-Steuerung:
ssml_sample = """
<speak>
<p>
When I wake up, <prosody rate="x-slow">I speak quite slowly</prosody>.
Then I start speaking in my normal voice,
<prosody pitch="x-high">and I can speak in a higher tone</prosody>,
or <prosody pitch="x-low">conversely, lower</prosody>.
Then, if I am lucky, <prosody rate="fast">I can speak quite quickly.</prosody>
And I can make pauses of any length, for example, two seconds <break time="2000ms"/>
<p>
Also I can make pauses between paragraphs.
</p>
<p>
<s>And I can also make pauses between sentences.</s>
<s>Here, for example, like now.</s>
</p>
</p>
</speak>
"""
audio = model.apply_tts(ssml_text=ssml_sample,
speaker=speaker,
sample_rate=sample_rate)
Intonationseinstellungen und Empfehlungen
- intensity=3: Stärke der Fragetonlage (Standard, optimal).
- Bei Spezial-, Alternativ- und Nachfragen ist der Akzent optional.
- Bei allgemeinen Fragen müssen Sternchen verwendet werden, um den Akzent präzise zu positionieren.
Fragetypen und deren Behandlung:
- Spezialfrage: What? Where? When? — lexikalische Markierung + Standard-Prosodie.
- Allgemeine Frage: You home? — prosodischer Akzent auf beliebigem Wort.
- Alternativfrage: Fish or meat? — Tonlage auf den Alternativen.
- Nachfrage: No, really? — steigender Ton am Ende.
Was zählt
- Silero-TTS v5 erzeugt Fragen mit prosodischem Akzent an beliebigen Positionen – ohne GPU.
- Unterstützung für vier Fragetypen durch einfache Sternchen-Markierung bei allgemeinen Fragen.
- SSML-Integration für feinabgestimmte Prosodie und Pausen.
- Installieren über pip/torch.hub, sample_rate=48000 Hz.
- Betonung in Aussagesätzen ist für zukünftige Updates geplant.
— Editorial Team
Noch keine Kommentare.