|
|
--- |
|
|
license: mit |
|
|
base_model: |
|
|
- SWivid/F5-TTS |
|
|
- Misha24-10/F5-TTS_RUSSIAN |
|
|
pipeline_tag: text-to-speech |
|
|
tags: |
|
|
- tts |
|
|
- mansi |
|
|
--- |
|
|
|
|
|
**F5-TTS-mansi** - дообучения версия модели **F5-TTS_RUSSIAN** для синтеза речи на мансийском языке. |
|
|
- Поддерживает несколько качественных голосов. |
|
|
- Уменьшенный **vocab**. |
|
|
- Обученная на кастомном закрытом датасете мансийского языка. |
|
|
|
|
|
Для предобработки текста рекомендуется использовать следующий код: |
|
|
``` |
|
|
lat_to_cyr = { |
|
|
"a": "а", "A": "А", |
|
|
"e": "е", "E": "Е", |
|
|
"o": "о", "O": "О", |
|
|
"y": "у", "Y": "У", |
|
|
} |
|
|
|
|
|
punct_map = { |
|
|
'“': '"', '”': '"', '„': '"', '«': '"', '»': '"', |
|
|
'‘': "'", '’': "'", '‚': "'", |
|
|
'—': '-', '–': '-', '−': '-', |
|
|
} |
|
|
|
|
|
def normalize_text(text: str) -> str: |
|
|
text = unicodedata.normalize("NFD", str(text)) |
|
|
|
|
|
for lat, cyr in lat_to_cyr.items(): |
|
|
text = text.replace(lat, cyr) |
|
|
|
|
|
text = unicodedata.normalize("NFC", text) |
|
|
|
|
|
text = ''.join(ch for ch in text if unicodedata.category(ch)[0] != 'C') |
|
|
|
|
|
text = re.sub(r'\s+', ' ', text) |
|
|
|
|
|
text = text.strip() |
|
|
|
|
|
for k, v in punct_map.items(): |
|
|
text = text.replace(k, v) |
|
|
|
|
|
return text |
|
|
|
|
|
df['text'] = df['text'].apply(normalize_text) |
|
|
``` |
|
|
|
|
|
|
|
|
|