Poradniki
Poradniki · 11 min czytania · 22 maja 2026

Jak dostosować SpeechT5 do własnych potrzeb - przewodnik krok po kroku

Grafika ilustrująca: Jak dostosować SpeechT5 do własnych potrzeb - przewodnik krok po kroku

Źródło: Link

Kurs AI Evolution — od zera do eksperta

118 lekcji bez kodowania. ChatGPT, Claude, Gemini, automatyzacje. Notatnik AI i AI Coach w cenie.

Zacznij od zera →

Masz model AI, który zamienia tekst na mowę. Problem? To przypomina robot czytający instrukcję obsługi. Albo nie radzi sobie z polskim akcentem. Albo nie rozpoznaje branżowego słownictwa z Twojej firmy. Rozwiązanie? Fine-tuning - proces, który uczy model Twoich potrzeb. I nie, nie musisz być programistą.

SpeechT5 to model od Microsoft, który potrafi zarówno zamieniać tekst na mowę, jak i mowę na tekst. Działa przyzwoicie "z pudełka", ale prawdziwa moc pojawia się, gdy go dostosujesz. Poniżej znajdziesz konkretne kroki, wymagania i odpowiedzi na pytania, które pewnie masz w głowie.

Różnica między modelem generycznym a dostosowanym do Twoich potrzeb
Różnica między modelem generycznym a dostosowanym do Twoich potrzeb

Zanim zaczniesz - co musisz mieć

Fine-tuning modeli AI wymaga kilku rzeczy, zanim w ogóle otworzysz pierwszą aplikację:

  • Dane audio - minimum 30 minut nagrań w dobrej jakości (jeśli chcesz nauczyć model konkretnego głosu) lub 2-3 godziny różnych nagrań (jeśli zależy Ci na akcencie czy dialekcie)
  • Transkrypcje - dokładny tekst tego, co jest w nagraniach (każde słowo musi się zgadzać)
  • Komputer z GPU - albo dostęp do chmury (Google Colab w wersji Pro wystarczy na start, kosztuje około 10 USD miesięcznie)
  • 4-8 godzin czasu - nie na samą pracę, ale na czekanie, aż model się nauczy

Jeśli nie masz nagrań, możesz użyć publicznie dostępnych zbiorów danych (np. Common Voice od Mozilli dla języka polskiego). To dobry punkt startowy, zanim zainwestujesz czas w zbieranie własnych materiałów.

Krok 1: Przygotowanie danych - fundament całego procesu

Zacznij od uporządkowania nagrań. Każdy plik audio powinien być w formacie WAV lub MP3, najlepiej 16-bitowy, 16 kHz (to standard dla większości modeli mowy). Jeśli masz nagrania w innej jakości, użyj darmowego Audacity do konwersji.

Struktura folderów powinna wyglądać tak:

  • audio/ - wszystkie pliki WAV
  • transcripts.txt - plik tekstowy, gdzie każda linia to: nazwa_pliku.wav|Dokładny tekst z nagrania

Przykład linii w transcripts.txt:

nagranie_001.wav|To jest przykładowa transkrypcja pierwszego nagrania.

Transkrypcje musisz zrobić ręcznie albo użyć narzędzia typu Whisper od OpenAI (które samo zamienia mowę na tekst, ale potem i tak sprawdzasz każde słowo - błędy w transkrypcjach psują cały trening).

Czyszczenie danych - nudne, ale kluczowe

Usuwasz ciszę na początku i końcu każdego nagrania (Audacity ma funkcję "Truncate Silence"). Sprawdzasz, czy w tle nie ma szumów, muzyki, innych głosów. Jeśli są - albo wycinasz te fragmenty, albo odrzucasz plik. Model uczy się WSZYSTKIEGO, co usłyszy - również szumu z klimatyzacji.

Czyszczenie nagrań - usuwasz wszystko, co nie jest mową
Czyszczenie nagrań - usuwasz wszystko, co nie jest mową

Krok 2: Konfiguracja środowiska treningowego

Otwierasz Google Colab (colab.research.google.com) i tworzysz nowy notebook. Jeśli nigdy nie korzystałeś z Colaba, to w skrócie: piszesz kod w przeglądarce, a Google uruchamia go na swoich serwerach. Nie instalujesz nic lokalnie.

W pierwszej komórce wpisujesz:

!pip install transformers datasets soundfile librosa

Uruchamiasz (Shift+Enter). To instaluje biblioteki potrzebne do pracy z SpeechT5. Zajmuje 2-3 minuty.

Następnie włączasz GPU: klikasz "Runtime" → "Change runtime type" → wybierasz "GPU" → "Save". Bez tego trening będzie trwał tygodnie zamiast godzin.

Wgrywanie danych do Colaba

Masz dwa sposoby:

  1. Upload ręczny - klikasz ikonę folderu po lewej, "Upload", wybierasz pliki. Działa dla małych zbiorów (do 100 MB).
  2. Google Drive - wrzucasz folder z danymi na swój Drive, potem w Colabie montujesz Drive kodem: from google.colab import drive; drive.mount('/content/drive'). Lepsze dla większych zbiorów.

Po wgraniu sprawdzasz, czy ścieżki się zgadzają - wypisujesz listę plików kodem !ls audio/ i patrzysz, czy widać wszystkie WAV-y.

Krok 3: Ładowanie modelu bazowego SpeechT5

SpeechT5 to model z biblioteki Hugging Face (największy hub modeli AI na świecie). Ściągasz go tak:

from transformers import SpeechT5ForTextToSpeech, SpeechT5Processor
model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")

Pierwsze uruchomienie ściąga około 500 MB danych. Kolejne uruchomienia są szybkie, bo model jest w cache.

"Processor" to narzędzie, które zamienia tekst na format zrozumiały dla modelu (tokeny) i z powrotem - dźwięk na coś, co możesz zapisać jako plik audio.

Architektura SpeechT5 - tekst wchodzi, dźwięk wychodzi
Architektura SpeechT5 - tekst wchodzi, dźwięk wychodzi

Krok 4: Przygotowanie datasetu treningowego

Teraz łączysz audio z transkrypcjami w format, który model rozumie. Używasz biblioteki datasets od Hugging Face:

from datasets import Dataset, Audio

Tworzysz listę słowników, gdzie każdy słownik to jedno nagranie:

data = []
with open('transcripts.txt', 'r') as f:
  for line in f:
    filename, text = line.strip().split('|')
    data.append({"audio": f"audio/{filename}", "text": text})

Potem zamieniasz to na obiekt Dataset:

dataset = Dataset.from_list(data)
dataset = dataset.cast_column("audio", Audio(sampling_rate=16000))

Ten ostatni krok mówi datasetowi, że kolumna "audio" to nie ścieżka do pliku, tylko faktyczny dźwięk, który ma wczytać i przetworzyć.

Podział na zbiór treningowy i walidacyjny

Dzielisz dane 90/10 - 90% do treningu, 10% do sprawdzania, czy model się nie "przeuczył" (czyli nie nauczył się na pamięć zamiast zrozumieć zasady):

dataset = dataset.train_test_split(test_size=0.1)
train_dataset = dataset["train"]
eval_dataset = dataset["test"]

Jeśli masz mniej niż 50 nagrań, zostaw wszystko w zbiorze treningowym. Walidacja ma sens przy większych danych.

Krok 5: Konfiguracja parametrów treningu

To moment, gdzie decydujesz, jak długo i jak intensywnie model ma się uczyć. Podstawowe parametry:

  • learning_rate - jak duże "kroki" model robi podczas nauki. Dla fine-tuningu SpeechT5: 1e-5 (czyli 0.00001) to bezpieczna wartość.
  • num_train_epochs - ile razy model przejdzie przez cały zbiór danych. Zacznij od 10, potem eksperymentuj.
  • per_device_train_batch_size - ile nagrań model przetwarza naraz. Dla GPU w Colabie Pro: 4 lub 8. Więcej = szybciej, ale ryzyko błędu "out of memory".
  • save_steps - co ile kroków zapisywać checkpoint (kopia modelu w trakcie treningu). Ustaw na 500.

Wpisujesz to w obiekcie TrainingArguments:

from transformers import TrainingArguments
training_args = TrainingArguments(
  output_dir="./speecht5-finetuned",
  learning_rate=1e-5,
  num_train_epochs=10,
  per_device_train_batch_size=4,
  save_steps=500,
  logging_steps=100
)

"logging_steps" to jak często widzisz postęp (co 100 kroków wypisuje loss - wartość błędu modelu).

Krok 6: Uruchomienie treningu

Teraz łączysz wszystko w obiekt Trainer i uruchamiasz:

from transformers import Trainer
trainer = Trainer(
  model=model,
  args=training_args,
  train_dataset=train_dataset,
  eval_dataset=eval_dataset
)

trainer.train()

Klikasz Enter i czekasz. Na ekranie zobaczysz coś w stylu:

Epoch 1/10: loss=0.523, eval_loss=0.612
Epoch 2/10: loss=0.401, eval_loss=0.578

Loss powinien spadać. Jeśli rośnie albo skacze chaotycznie - coś jest nie tak (najczęściej: learning_rate za wysoki albo błędy w danych).

Trening 10 epok na 1 godzinie nagrań zajmuje około 3-4 godzin w Colabie Pro. Możesz zamknąć kartę przeglądarki - trening leci dalej (ale nie wyłączaj komputera, bo wtedy Colab się rozłączy).

Postęp treningu - loss spada, model się uczy
Postęp treningu - loss spada, model się uczy

Krok 7: Testowanie wytrenowanego modelu

Po zakończeniu treningu model jest zapisany w folderze ./speecht5-finetuned. Ładujesz go i testujesz:

finetuned_model = SpeechT5ForTextToSpeech.from_pretrained("./speecht5-finetuned")

Generujesz próbkę mowy:

inputs = processor(text="To jest test dostosowanego modelu.", return_tensors="pt")
speech = finetuned_model.generate_speech(inputs["input_ids"])

Zapisujesz jako plik audio:

import soundfile as sf
sf.write("output.wav", speech.numpy(), samplerate=16000)

Pobierasz output.wav z Colaba (prawy klik na plik → Download) i słuchasz. Porównujesz z modelem bazowym (przed fine-tuningiem). Różnica powinna być słyszalna - zwłaszcza w akcencie, intonacji, czy wymowie specjalistycznych słów.

Co jeśli brzmi gorzej niż przed treningiem?

Trzy najczęstsze przyczyny:

  1. Za mało danych - model "przeuczył się" na małej próbce. Rozwiązanie: dodaj więcej nagrań albo zmniejsz liczbę epok do 5.
  2. Słaba jakość nagrań - szumy, echa, niespójna głośność. Rozwiązanie: wyczyść dane lepiej albo odrzuć najgorsze pliki.
  3. Learning rate za wysoki - model "przeskoczył" optymalne rozwiązanie. Rozwiązanie: zmniejsz do 5e-6 i trenuj ponownie.

Fine-tuning to iteracyjny proces. Rzadko wychodzi idealnie za pierwszym razem. Trenowanie modeli AI wymaga cierpliwości i testowania różnych ustawień.

Krok 8: Zapisanie i udostępnienie modelu

Jeśli jesteś zadowolony z wyniku, zapisujesz model na stałe:

finetuned_model.save_pretrained("./moj-speecht5")
processor.save_pretrained("./moj-speecht5")

Możesz go potem wgrać na Hugging Face Hub (publiczne repozytorium modeli) albo zachować lokalnie. Do wgrania na Hub potrzebujesz darmowego konta na huggingface.co i tokena API (generujesz go w ustawieniach konta).

Komenda do uploadu:

finetuned_model.push_to_hub("twoja-nazwa/speecht5-polish")

Wtedy każdy może użyć Twojego modelu przez kod:

model = SpeechT5ForTextToSpeech.from_pretrained("twoja-nazwa/speecht5-polish")

Jeśli dostosujesz model do polskiego akcentu albo branżowego słownictwa, udostępnienie go społeczności ma sens - inni oszczędzą czas, a Ty zbudujesz portfolio (przydatne, jeśli szukasz pracy w AI).

Praktyczne zastosowania dostosowanego SpeechT5

Kiedy warto inwestować czas w fine-tuning zamiast używać gotowego modelu?

Przykład 1: Audiobooki z konkretnym głosem

Masz nagrania lektora, który czytał pierwsze 3 rozdziały książki. Chcesz, żeby AI dokończyło resztę w tym samym głosie. Fine-tuning na 30 minutach nagrań lektora da Ci model, który brzmi spójnie z oryginałem. Nie idealnie (AI wciąż ma problemy z emocjami), ale wystarczająco dobrze, by słuchacz nie zauważył zmiany po 10 sekundach.

Przykład 2: Asystent głosowy dla firmy medycznej

Standardowy model myli "angioplastyka" z "angielska plastyka" i nie radzi sobie z nazwami leków. Dostarczasz 2 godziny nagrań medycznych z transkrypcjami (np. z wykładów, konsultacji, podcastów branżowych). Po fine-tuningu model wymawia terminy poprawnie i rozumie kontekst. To różnica między narzędziem, które lekarze odrzucą po tygodniu, a tym, które faktycznie oszczędza czas.

Przykład 3: Lokalizacja dla mniejszościowego języka

SpeechT5 działa przyzwoicie dla angielskiego, gorzej dla polskiego, a dla kaszubskiego czy śląskiego w ogóle. Jeśli zbierzesz 3 godziny nagrań w takim języku (np. z lokalnego radia, wywiadów, nagrań rodzinnych), możesz stworzyć pierwszy działający model text-to-speech. Nie będzie doskonały, ale lepszy niż nic - a dla społeczności językowej to ogromna wartość.

W każdym z tych przypadków fine-tuning ma sens, bo generyczny model nie rozwiązuje problemu. Jeśli natomiast potrzebujesz po prostu "ładnie brzmiącego głosu" do prezentacji - użyj gotowego modelu (np. ChatGPT z funkcją text-to-speech albo ElevenLabs). Fine-tuning to narzędzie do specjalistycznych potrzeb, nie do codziennej pracy.

Najczęstsze pytania

Ile nagrań potrzebuję do skutecznego fine-tuningu SpeechT5?

Minimum to 30 minut czystych nagrań jednego głosu (około 50-100 plików po 10-30 sekund każdy). Dla lepszych rezultatów: 1-2 godziny. Jeśli chcesz nauczyć model akcentu albo dialektu (nie konkretnego głosu), potrzebujesz 3-5 godzin nagrań od różnych osób. Jakość danych jest ważniejsza niż ilość - 30 minut czystych nagrań da lepszy wynik niż 2 godziny z szumami.

Czy mogę użyć fine-tuningu SpeechT5 bez znajomości programowania?

Nie całkiem. Musisz umieć skopiować kod do Google Colaba i zmienić ścieżki do plików. To nie wymaga studiów informatycznych, ale potrzebujesz podstaw (rozumiesz co to zmienna, plik, folder). Jeśli nigdy nie widziałeś kodu, zacznij od kursu wprowadzającego do AI - nauczysz się wystarczająco, by poradzić sobie z fine-tuningiem w 2-3 tygodnie.

Ile kosztuje fine-tuning SpeechT5 w praktyce?

Jeśli używasz Google Colab Pro: 10 USD miesięcznie (wystarczy na 3-5 treningów po 3-4 godziny każdy). Jeśli masz własne GPU (np. NVIDIA RTX 3060 lub lepsze): koszt prądu, około 2-3 złote za 4 godziny treningu. Alternatywa to chmura (AWS, Azure, RunPod) - tam płacisz około 0.50-1 USD za godzinę GPU. Najtańsza opcja to Colab, najszybsza to własne GPU, najbardziej skalowalna to chmura.

Czy mogę użyć dostosowanego modelu komercyjnie?

Tak, SpeechT5 jest na licencji MIT - możesz go używać, modyfikować i sprzedawać bez ograniczeń. Musisz tylko zachować informację o autorach oryginalnego modelu (Microsoft). Jeśli Twoje dane treningowe (nagrania) mają restrykcyjną licencję, wtedy model dziedziczy te ograniczenia - sprawdź prawa do nagrań przed publikacją modelu.

Jak długo trwa cały proces od zera do działającego modelu?

Zbieranie i czyszczenie danych: 4-8 godzin (zależy od jakości źródeł). Konfiguracja środowiska: 30 minut (pierwszy raz), 5 minut (kolejne razy). Trening: 3-6 godzin (zależy od ilości danych i GPU). Testowanie i iteracje: 2-4 godziny. Razem: 10-18 godzin na pierwszy model. Kolejne iteracje (gdy już masz dane i środowisko) to 4-6 godzin. Jeśli robisz to pierwszy raz, zarezerwuj weekend.

Chcesz opanować AI od podstaw?

Ten poradnik to dopiero początek. W naszym kursie "Praktyczna AI" nauczysz się korzystać z ChatGPT, Claude i innych narzędzi AI w sposób systematyczny - od zera do zaawansowanego poziomu.

Sprawdź kurs →

Podsumowanie

Fine-tuning SpeechT5 to sposób, by model mowy działał dokładnie tak, jak potrzebujesz - z Twoim akcentem, głosem, słownictwem. Proces wymaga czystych danych, kilku godzin treningu i podstawowej znajomości narzędzi. Nie jest to magia dostępna tylko dla programistów - jeśli potrafisz skopiować kod i zmienić ścieżkę do pliku, dasz radę.

Najważniejsze: zacznij od małego zbioru danych (30 minut nagrań), przetestuj cały proces, sprawdź czy wynik ma sens. Dopiero potem inwestuj czas w zbieranie większej ilości materiału. Większość projektów fine-tuningowych upada na etapie przygotowania danych, nie treningu - więc tam skup uwagę.

Jeden krok na start: Otwórz Google Colab, stwórz nowy notebook i uruchom pierwszą komórkę z instalacją bibliotek. To zajmie 3 minuty i zobaczysz, czy Twoje środowisko działa. Resztę zrobisz, gdy będziesz mieć dane.

Na podstawie: SukcesAI Course Material

Informacje o artykule

Podoba Ci się ten artykuł?

Co piątek wysyłam podsumowanie najlepszych artykułów tygodnia. Zapisz się!

Ten temat omawiam szerzej na webinarze

90 minut praktycznej wiedzy o AI. Pokaze Ci krok po kroku, jak zaczac oszczedzac 10 godzin tygodniowo dzieki sztucznej inteligencji.

Zapisz sie na webinar
Udostępnij:
Jan Gajos

Ekspert AI & Founder, AI Evolution

Pasjonat sztucznej inteligencji, który od 18 lat działa z sukcesem biznesowo i szkoleniowo. Wprowadzam AI do swoich firm oraz codziennego życia. Fascynują mnie nowe technologie, gry wideo i składanie klocków Lego - tam też widzę logikę i kreatywność, które AI potrafi wzmacniać. Wierzę, że dobrze użyta sztuczna inteligencja to nie ogłupiające ułatwienie, lecz prawdziwy przełom w sposobie, w jaki myślimy, tworzymy i pracujemy.