Универсално ръководство за обучение на TTS модели и подготовка на данни
Налични езици
Искате да допринесете с превод? Вижте Ръководството за превод.
Въведение
Добре дошли! Това изчерпателно ръководство предоставя универсален процес за подготовка на собствени речеви набори от данни и обучение на персонализиран Text-to-Speech (TTS) модел. Независимо дали имате малък набор от данни (напр. 10 часа) или по-голям (над 100 часа), тези стъпки ще ви помогнат да организирате правилно данните си и да се ориентирате в процеса на обучение за повечето съвременни TTS рамки.
Цел: Да ви даде възможност да настроите или обучите TTS модел за конкретен глас или език, използвайки собствени аудио-текстови двойки.
Какво обхваща това ръководство: Това ръководство е разделено на няколко части, обхващащи целия работен процес от планирането до използването на обучения модел:
- Планиране: Първоначални съображения преди започване на проекта.
- Подготовка на данните: Придобиване, обработка и структуриране на аудио и текстови данни.
- Настройка за обучение: Подготовка на средата и конфигуриране на параметрите за обучение.
- Обучение на модела: Стартиране, наблюдение и фина настройка на TTS модела.
- Извеждане: Използване на обучения модел за синтезиране на реч.
- Пакетиране и споделяне: Организиране и документиране на модела за бъдеща употреба или разпространение.
- Отстраняване на проблеми и ресурси: Често срещани проблеми и полезни инструменти.
0. Преди да започнете: Планиране на вашия набор от данни
Преди да събирате данни, обмислете тези важни точки, за да гарантирате, че проектът ви е добре дефиниран и постижим:
- Говорител: Ще бъде ли един говорител или няколко? Наборите от данни с един говорител са по-прости за начало при фина настройка или първоначално обучение. Моделите с много говорители изискват внимателно балансиране на данните и управление на ID на говорителите.
- Източник на данни: Откъде ще вземете аудиото? (Аудиокниги, подкасти, радио архиви, професионално записани гласови данни, ваши собствени записи). Изключително важно е да се уверите, че имате необходимите права или лицензи за използване на данните за обучение на модели.
- Качество на аудиото: Стремете се към възможно най-високо качество. Приоритизирайте чисти записи с минимален фонов шум, реверберация, музика или припокриваща се реч. Последователността в условията на запис е много полезна.
- Език и домейн: На какъв език (езици) ще говори моделът? Какъв е стилът на говорене или домейнът (напр. разказ, разговорен, четене на новини)? Моделът ще работи най-добре с текст, подобен на данните за обучение.
- Целево количество данни: Колко данни планирате да съберете или използвате?
- ~1-5 часа: Може да е достатъчно за основно клониране на глас, ако използвате силен предварително обучен модел, но качеството може да бъде ограничено.
- ~5-20 часа: Обикновено се счита за минимума за прилична фина настройка на конкретен глас върху предварително обучен модел.
- 50-100+ часа: По-добре за обучение на стабилни модели или обучение на модели с по-малка зависимост от предварително обучени тегла, особено за по-малко разпространени езици.
- 1000+ часа: Необходими за обучение на висококачествени модели с общо предназначение, предимно от нулата.
- Честота на семплиране: Решете рано за целева честота на семплиране (напр. 16000 Hz, 22050 Hz, 44100 Hz, 48000 Hz). По-високите честоти улавят повече детайли, но изискват повече пространство за съхранение и изчислителна мощност. Всички ваши данни за обучение ТРЯБВА последователно да използват избраната честота. 22050 Hz е често срещан баланс за много TTS модели.
Преглед на процеса и навигация
Това ръководство е разделено на фокусирани модули. Следвайте връзките по-долу за подробни стъпки за всяка фаза:
- ➡️ Подготовка на данни
- Обхваща придобиване, почистване, сегментиране, нормализиране на аудио, транскрибиране на текст и създаване на необходимите манифест файлове за обучение. Включва важния контролен списък за качество на данните.
- ➡️ Настройка за обучение
- Води ви през настройката на вашата Python среда, инсталирането на зависимости (като PyTorch с CUDA), избора на TTS рамка и конфигурирането на параметрите за обучение във вашия конфигурационен файл.
- ➡️ Обучение на модела
- Обяснява как да стартирате скрипта за обучение, да наблюдавате напредъка му (загуба, валидация), да възобновите прекъснато обучение и предоставя конкретни съвети за фина настройка на съществуващи модели.
- ➡️ Извеждане
- Подробно описва как да използвате вашия обучен модел за синтезиране на реч от нов текст, включително единично изречение, пакетна обработка и съображения за много говорители.
- ➡️ Пакетиране и споделяне
- Предоставя най-добри практики за организиране на файловете на вашия обучен модел (контролни точки, конфигурации, примери), документирането им с README, версиониране и подготовката им за споделяне или архивиране.
- ➡️ Отстраняване на проблеми и ресурси
- Предлага решения за често срещани проблеми, възникващи по време на обучение и извеждане, и изброява полезни външни инструменти, библиотеки и общности.
Заключение
Следвайки тези ръководства, ще придобиете цялостно разбиране за работния процес за подготовка на данни и обучение на ваши собствени Text-to-Speech модели. Не забравяйте, че прецизната подготовка на данни е основата за висококачествен глас, а процесът на обучение често включва итеративно усъвършенстване.
Сега продължете към съответния раздел въз основа на това къде се намирате в жизнения цикъл на вашия проект. Успех в изграждането на вашите персонализирани гласове! 🚀
Принос
Приносите за подобряване на това ръководство са добре дошли! Независимо дали намирате печатни грешки, неточности, имате предложения за по-ясни обяснения, искате да добавите информация за конкретни инструменти или рамки, или имате идеи за нови раздели, вашият принос е ценен.
Моля, не се колебайте да:
- Отворите Issue: За да докладвате грешки, да предложите подобрения или да обсъдите потенциални промени.
- Изпратите Pull Request: За конкретни корекции или допълнения. Моля, опитайте се да гарантирате, че вашите промени са ясни и съответстват на общата структура и тон на ръководството.
Оценяваме всяко усилие да направим това ръководство по-точно, изчерпателно и полезно за общността!
Речник на техническите термини
Този речник обяснява ключови технически термини, използвани в ръководствата, за да помогне на новодошлите да разберат терминологията:
- ASR (Автоматично разпознаване на реч): Технология, която преобразува говоримия език в писмен текст; използва се за транскрибиране на аудио данни.
- Batch Size (Размер на партидата): Броят на примерите за обучение, обработвани заедно в един прав/обратен проход; влияе на скоростта на обучение и използването на паметта.
- Checkpoint (Контролна точка): Запазен моментен снимка на теглата на модела по време на или след обучение, позволяващ ви да възобновите обучението или да използвате модела за извеждане.
- CUDA: Паралелната изчислителна платформа на NVIDIA, която позволява GPU ускорение за задачи за дълбоко обучение.
- dBFS (Децибели спрямо пълната скала): Единица за измерване на аудио нивата в цифрови системи, където 0 dBFS представлява максимално възможното ниво.
- Diffusion Models (Дифузионни модели): Клас генеративни модели, които постепенно добавят и след това премахват шум от данните; някои съвременни TTS системи използват този подход.
- FFT (Бърза трансформация на Фурие): Алгоритъм, който преобразува сигнали от времевата област в представяния в честотната област; фундаментален за обработка на аудио.
- Fine-tuning (Фина настройка): Процесът на вземане на предварително обучен модел и допълнителното му обучение върху по-малък, специфичен набор от данни, за да го адаптирате към нов глас или език.
- LUFS (Единици на силата на звука спрямо пълната скала): Стандартизирано измерване на възприеманата сила на звука, по-представително за човешкия слух от измерванията на пиковете.
- Manifest File (Манифест файл): Текстов файл, който изброява аудио файлове и съответните им транскрипции, използван за да каже на скрипта за обучение къде да намери данните.
- Mel Spectrogram (Мел спектрограма): Визуално представяне на аудио, което приближава човешкото слухово възприятие чрез използване на мел скалата; често използвано като междинно представяне в TTS системите.
- Overfitting (Преобучение): Когато модел научава данните за обучение твърде добре, включително техния шум и изключения, което води до лошо представяне на нови данни.
- Sampling Rate (Честота на семплиране): Броят на аудио семплите за секунда (измерва се в Hz); по-високите честоти улавят повече аудио детайли, но изискват повече пространство за съхранение и изчислителна мощност.
- STFT (Краткосрочна трансформация на Фурие): Техника, която определя честотното съдържание на локални секции на сигнал, докато той се променя с течение на времето.
- TTS (Text-to-Speech): Технология, която преобразува писмен текст в говорим глас.
- Validation Loss (Загуба при валидация): Метрика, която измерва грешката на модел върху валидационен набор от данни (данни, неизползвани за обучение); помага за откриване на преобучение.
- VRAM (Видео RAM): Памет на графична карта; моделите за дълбоко обучение и техните междинни изчисления се съхраняват тук по време на обучение.
- Vocoder (Вокодер): Компонент в някои TTS системи, който преобразува акустични характеристики (като мел спектрограми) във вълнови форми (действително аудио).
Ръководство за превод
Приветстваме преводи на това ръководство, за да го направим достъпно за по-широка аудитория. Ако искате да допринесете с превод, моля, следвайте тези стъпки:
- Форкнете хранилището във вашия собствен GitHub акаунт
- Създайте необходимата директорна структура за вашия език:
languages/[language_code]/ ├── README.md └── guides/ ├── 1_DATA_PREPARATION.md ├── 2_TRAINING_SETUP.md └── ... (всички файлове на ръководството)
Където
[language_code]
е ISO 639-1 двубуквеният код за вашия език (напр.bg
за български) - Преведете съдържанието, започвайки с README.md и след това отделните файлове на ръководството
- Поддържайте същата файлова структура и Markdown форматиране
- Запазете всички примери с код непроменени (те трябва да останат на английски)
- Преведете всички обяснителни текстове, заглавия и коментари
-
Актуализирайте навигационните връзки, за да сочат към правилните файлове във вашата езикова директория
- Изпратете Pull Request с вашия превод
Важни бележки за преводачите:
- Техническите термини могат да бъдат предизвикателство за превод. Когато се съмнявате, можете да запазите английския термин, последван от кратко обяснение на вашия език.
- Опитайте се да поддържате същия тон и ниво на технически детайли като оригинала.
- Ако намерите грешки или области за подобрение в оригиналното английско съдържание по време на превода, моля, отворете отделен issue, за да ги адресирате.
Лиценз
Съдържанието в това ръководство е лицензирано под Creative Commons Attribution 4.0 International License. Вие сте свободни да споделяте и адаптирате материала, стига да предоставите подходящо признание. Съдържанието също е защитено с авторски права на 2025 AcTePuKc и всички нови приноси ще бъдат подчинени на същия лиценз.