Test Karczmarza

Karczmarz

Polski głos syntezy mowy z własnym fonemizatorem. Wytrenowany i wyeksportowany do ONNX. Postać i grafika pochodzą z mojej gry Przed Grunwaldem.

A witaj, witaj, mości panie! Co cię do naszej skromnej karczmy przygnało?
Powitanie w karczmie

Kliknij „Posłuchaj”, a tutaj pojawi się przebieg tego, co usłyszysz.

Posłuchaj czegoś jeszcze

Cztery kwestie w rejestrze karczmarza. Druga jest tu nie bez powodu: zawiera „w drodze” i „w karczmie”, czyli dokładnie ten przypadek, na którym eSpeak się myli.

Albo z nim porozmawiaj

Zadaj pytanie, a odpowie Bielik w roli karczmarza. Odpowiedź usłyszysz tym samym głosem. To ta sama para modeli co w grze: polski model językowy pisze kwestię, mój głos ją mówi.

0 / 300

Karczmarz nie powtórzy tekstu podanego przez rozmówcę. Pytanie i odpowiedź przechodzą przez Sójkę, klasyfikator treści szkodliwych z rodziny Bielika. Gdy coś ją zaniepokoi, karczmarz odmawia po swojemu.

Jak to działa

Własny fonemizator polskiego

Zamiast eSpeaka mam własny fonemizator. eSpeak myli między innymi przyimek „w” przed spółgłoską dźwięczną: w „w drodze” brzmi on jak [v], w „w karczmie” jak [f], a różnicy tej trzeba pilnować regułą, nie słownikiem wyjątków.

Model v4 jest trenowany na fonemach z mojego fonemizatora, nie na espeakowych. Fonemizacja i trening mówią więc tym samym alfabetem.

VITS, potem ONNX

Trening VITS na własnym korpusie, eksport do ONNX, synteza bez połączenia z siecią. Głos działa na procesorze: na laptopie, na telefonie i na Raspberry Pi.

Ten sam łańcuch w Kotlinie

Fonemizator odtworzyłem w Kotlinie w aplikacji na Androida, żeby model dostawał na telefonie identyczne sekwencje co w treningu.

Jeden głos, trzy postacie

W grze tym samym głosem mówią karczmarz, kowal i zbrojny. Jeden model obsługuje trzy postacie, bo osobne dopiero wytrenuję.

Pomiary

0,50

RTF, mediana

0,7 s

do pierwszego dźwięku

Warunki pomiaru: Moto G72, synteza w całości na urządzeniu, bez połączenia z siecią. RTF poniżej 1,0 znaczy, że głos powstaje szybciej, niż trwa jego odsłuchanie.

Ta strona mierzy co innego. Tutaj synteza odbywa się po stronie serwera i wraca gotowym plikiem, więc odczyt „czas odpowiedzi” wyżej zawiera podróż przez sieć. Nie porównuj go z RTF z telefonu: to dwie różne wielkości.