실러-TTS v5: 러시아어 질문 억양 네 가지 유형 실시간 적용
러시아어용 실러-TTS v5는 정확한 질문 억양을 생성합니다. 모델은 특수 질문(의문사 사용), 일반 질문(음성 강조), 대안 질문, 꼬리 질문 등 네 가지 유형의 질문을 처리할 수 있습니다. 일반 질문의 경우, 강조점은 별표(*)로 표시되며, 추가 파라미터 없이도 표현력이 풍부해집니다.
업데이트의 주요 기능:
- 동음이의어와 음절 강세 자동 처리
- 음성 제어를 위한 완전한 SSML 지원
- CPU에서 빠른 추론 속도
- 목소리: aidar, baya, kseniya, xenia (eugene 개발 중)
질문 억양의 언어학적 기초
러시아어에서는 질문이 문법적으로(어순, 드물게), 어휘적으로(의문사, 부사어), 그리고 음성적으로(억양) 표시됩니다. 일반 질문은 오직 음성에 의존하며, 억양 중심은 어떤 단어에도 올 수 있어 의미를 바꿉니다.
예시:
- Did he COME? — 행동에 강조
- HE came? — 주어에 강조
모델을 훈련시키기 위해서는 질문 유형과 강세 위치를 라벨링해야 합니다. 이러한 정보가 없는 코퍼스 데이터는 충분하지 않습니다.
일반 질문 합성 예시
다른 강세 위치를 가진 질문 생성 코드:
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))
오디오 샘플은 강조된 단어에서 부드럽게 음높이가 상승하고, 문장 끝에서 하강하는 모습을 보입니다.
설치 및 기본 사용법
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)
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 예시: 음성 제어 포함
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)
억양 파라미터 및 권장 사항
- intensity=3: 질문 억양의 강도 (기본값, 최적)
- 특수, 대안, 꼬리 질문의 경우 강세는 선택 사항
- 일반 질문은 정확한 강세 위치를 지정하기 위해 별표() 필수*
질문 유형 및 처리 방법:
- 특수 질문: What? Where? When? — 어휘적 표시 + 표준 억양
- 일반 질문: You home? — 어떤 단어에도 강세 가능
- 대안 질문: Fish or meat? — 대안에 억양 적용
- 꼬리 질문: No, really? — 꼬리 부분에 상향 억양
중요한 점
- 실러-TTS v5는 GPU 없이도 임의 위치에 음성 강세를 가진 질문을 생성합니다.
- 일반 질문의 경우 간단한 별표 표기로 네 가지 질문 유형을 지원합니다.
- SSML 통합을 통해 음성과 정지 시간을 세밀하게 조정할 수 있습니다.
- pip 또는 torch.hub로 설치 가능하며, sample_rate=48000 Hz를 권장합니다.
- 명사문의 강조 기능은 향후 업데이트에서 제공될 예정입니다.
— Editorial Team
아직 댓글이 없습니다.