TechnologiaGłos i mowa
Normalizacja tekstu, czyli jak asystent głosowy ma przeczytać „ul. 3 Maja 12/4”
Normalizacja tekstu to zamiana zapisu na słowa, które da się wymówić: „8:15” na „ósma piętnaście”, a „149,99 zł” na „sto czterdzieści dziewięć złotych dziewięćdziesiąt dziewięć groszy”. W voicebocie dzieje się to tuż przed syntezą mowy. Po polsku jest trudniej niż po angielsku, bo liczebniki odmieniają się przez przypadki, a „2 wizyty” i „5 wizyt” rządzą się innymi regułami. Błąd słychać od razu i razi bardziej niż literówka na stronie.
Skąd się bierze kłopot z liczbami
Model językowy w asystencie głosowym pisze tak, jak pisze się teksty: cyframi, skrótami, z symbolem waluty. Syntezator musi zgadnąć, jak to powiedzieć, a zapis bywa dwuznaczny. „12.10” to dwunasty października, godzina dwunasta dziesięć albo kwota. „12/4” to numer domu i mieszkania albo ułamek. „Pn.-pt. 8-16” człowiek odczyta bez zastanowienia, maszyna niekoniecznie.
Dochodzi jeszcze odmiana. Ta sama godzina brzmi inaczej w każdym zdaniu: „jest 8:00” to „jest ósma”, „od 8:00” to „od ósmej”, „przed 8:00” to „przed ósmą”. Liczebnik musi się zgodzić z przyimkiem, a rzeczownik z liczebnikiem.
Same cyfry przeczyta każdy syntezator, kłopotem są końcówki.
Tekst zapisany i to, co ma usłyszeć klient
Poniższe przykłady przepuść przez każdego nowego agenta. Druga kolumna to wersja, którą klient powinien usłyszeć.
| Tekst zapisany | Jak ma to przeczytać agent |
|---|---|
| ul. 3 Maja 12/4 | ulica Trzeciego Maja dwanaście, mieszkanie cztery |
| al. Jana Pawła II 5 | aleja Jana Pawła Drugiego pięć |
| wizyta o 8:15 | wizyta o ósmej piętnaście |
| czynne pn.-pt. 8-16 | czynne od poniedziałku do piątku, od ósmej do szesnastej |
| wt. 13.10 | we wtorek, trzynastego października |
| do 30.11.2026 r. | do trzydziestego listopada dwa tysiące dwudziestego szóstego roku |
| 149,99 zł | sto czterdzieści dziewięć złotych dziewięćdziesiąt dziewięć groszy |
| 2 zł, 5 zł, 22 zł | dwa złote, pięć złotych, dwadzieścia dwa złote |
| 54 m² | pięćdziesiąt cztery metry kwadratowe |
| u dr. Nowaka | u doktora Nowaka |
| tel. 123 456 789 | telefon jeden dwa trzy, cztery pięć sześć, siedem osiem dziewięć |
| biuro@przyklad.pl | biuro małpa przykład kropka pe el |
Dane przykładowe: numer telefonu i adres e-mail są zmyślone.
Liczebnik rządzi rzeczownikiem, a przyimek liczebnikiem
Tę regułę każdy Polak stosuje bez myślenia, a maszyna musi mieć ją zapisaną: jedna wizyta, dwie wizyty, pięć wizyt, dwadzieścia dwie wizyty, ale dwanaście wizyt. Liczby zakończone na 2, 3 i 4 (poza 12, 13 i 14) łączą się z mianownikiem liczby mnogiej, pozostałe od pięciu w górę z dopełniaczem. Z pieniędzmi tak samo: trzy złote, siedem złotych, dwadzieścia cztery złote, trzynaście złotych.
Druga warstwa to przypadki. „Do 5 dni” to „do pięciu dni”, „z 3 osobami” to „z trzema osobami”, „po 17:00” to „po siedemnastej”. Tu nie wystarczy tabelka zamian, trzeba rozumieć całe zdanie. Dlatego pewniej działa podział pracy: model językowy dostaje w instrukcji dla agenta polecenie, żeby liczby, godziny i kwoty pisał od razu słowami, w formie pasującej do zdania, a osobna warstwa reguł łapie to, co mimo wszystko przeszło cyframi.
Godziny i daty w wersji mówionej
Agent mówi „o ósmej piętnaście”, a nie „o godzinie ósmej minut piętnaście”. Pełna godzina to po prostu „o dziewiątej”. Form potocznych lepiej unikać: „za kwadrans ósma” i „wpół do ósmej” brzmią swojsko, ale łatwo je usłyszeć jako ósmą, a to różnica kwadransa albo pół godziny. Gdy klient sam tak powie, agent ma zrozumieć i potwierdzić wprost: „Czyli siódma czterdzieści pięć, tak?”.
Z datami podobnie: „14.10” agent czyta jako „czternastego października”. Dzień tygodnia dodaj, bo ludzie planują tygodniami: „w środę, czternastego października”. Pilnuj też formy „we wtorek”, bo „w wtorek” brzmi obco. Rok podawaj tylko wtedy, gdy może budzić wątpliwość, na przykład w grudniu, przy terminie na styczeń.
Osobna pułapka siedzi w integracji z kalendarzem. Systemy rezerwacji często zapisują czas w UTC, a Polska ma zimą UTC+1, latem UTC+2. Jeśli przeliczenie jest źle ustawione, agent pomyli się o godzinę, a błąd może wyjść dopiero przy zmianie czasu w marcu albo październiku.
Adresy, telefony i e-maile
Adresy mają własne zwyczaje. „Ul.” czyta się „ulica”, „al.” to „aleja”, „os.” to „osiedle”, a „pl.” to „plac”. Rzymskie cyfry w nazwach stają się liczebnikami w odpowiedniej formie: „Jana Pawła II” to „Jana Pawła Drugiego”, „Zygmunta III” to „Zygmunta Trzeciego”. „12/4” lepiej przeczytać jako „dwanaście, mieszkanie cztery”, choć w mowie potocznej wielu powie „dwanaście przez cztery”.
Numer telefonu agent czyta w trzech grupach, wolno, z pauzą między nimi. Czy grupy podawać jak setki („sto dwadzieścia trzy”), czy cyfra po cyfrze, jak w tabeli, ustal raz i trzymaj się tego. Ja przy numerach, które klient ma zapisać, wolę pojedyncze cyfry.
Adresów e-mail i stron internetowych agent w ogóle nie powinien dyktować.
Krótki adres jak ten z tabeli jeszcze ujdzie, ale dłuższy, z kropkami i podkreślnikami, to prawie pewna pomyłka. Lepiej wysłać go w powiadomieniu po rozmowie, na przykład SMS-em.
Kto w systemie zamienia cyfry na słowa
Normalizację da się zrobić w kilku miejscach i zwykle łączy się kilka z nich:
- Model językowy sam pisze liczby słowami, bo tak każe mu instrukcja.
- Między modelem a syntezatorem działa warstwa reguł, która rozwija skróty i zamienia to, co przeszło cyframi.
- Sam syntezator ma wbudowany normalizator. Z prostymi przypadkami zwykle sobie radzi, z odmianą gorzej.
- Pojedyncze słowa poprawia się słownikiem wymowy albo znacznikami SSML.
Najwięcej zależy od pierwszego punktu, bo tylko model językowy widzi całe zdanie i wie, czy „12.10” to data, czy godzina. Pozostałe warstwy łapią to, co model przepuści. Przy teście dostawcy daj agentowi do przeczytania tabelę z tej strony i słuchaj uważnie: synteza mowy po polsku potrafi brzmieć bardzo naturalnie, a i tak powiedzieć „dwa złotych”.
Najczęstsze pytania
Dlaczego voicebot źle czyta godziny i kwoty?
Zwykle dlatego, że model językowy zapisał je cyframi, a syntezator odczytał je bez odmiany albo źle zgadł, czy to data, czy godzina. Pomaga polecenie w instrukcji agenta, żeby liczby pisał słowami, i warstwa reguł przed syntezą mowy. Po każdej zmianie przepuść przez agenta tabelę trudnych przykładów.
Jak voicebot powinien podawać numer telefonu?
W trzech grupach po trzy cyfry, wolno, z pauzami, a na końcu zapytać, czy klient zdążył zapisać. Jeśli numer będzie potrzebny później, lepiej wysłać go SMS-em. Tak samo z e-mailami i adresami stron: zamiast dyktować, agent je przesyła.
Co to jest normalizacja tekstu w syntezie mowy?
To zamiana zapisu, którego nie da się wprost przeczytać, na słowa: cyfr, dat, godzin, skrótów i symboli. Po polsku obejmuje też odmianę, bo „5 zł” to „pięć złotych”, a „2 zł” to „dwa złote”. Robi ją model językowy, osobna warstwa reguł albo sam syntezator, najlepiej wszystkie razem.
Posłuchaj, jak to brzmi w praktyce
Pięciu asystentów demo rozmawia po polsku w przeglądarce, bez instalowania czegokolwiek. Dane w rozmowach są przykładowe, ale sposób prowadzenia rozmowy jest taki sam jak w prawdziwym wdrożeniu.