fajna lista słów polskich

Nie uwierzycie, ale nie ma w Internecie fajnej listy polskich słów.

Jest lista słów na https://sjp.pl/slownik/growy/, ale tam jest za dużo słów, w tym takie bzdury jak AA-owiec czy nieafelicznymi.

A ja nieraz potrzebuję listę normalnych, zwykłych słów.

Więc wygenerowałem sobie taką listę: wziąłem z wiktionary.org listę najpopularniejszych polskich słów, dodałem do nich inne formy i odsiałem trochę śmiecia. Wynik jest tutaj, w pliku slowa.txt.bz2

A tutaj masz skrypty, którymi wygenerowałem tę listę.

i jeszcze z wymową

Kilka lat po stworzeniu tej listy (2026-02-22) dodałem do tej listy jeszcze informację o wymowie każdego słowa, w takim formacie:

{"slowo": "bieżałaś", "wymowa": ["b", "j", "ɛ", "ʒ", "ˈa", "w", "a", "ɕ"]}
{"slowo": "bieżałby", "wymowa": ["b", "j", "ˈɛ", "ʒ", "a", "w", "b", "ˌɨ"]}
{"slowo": "bieżałbym", "wymowa": ["b", "j", "ˈɛ", "ʒ", "a", "w", "b", "ˌɨ", "m"]}
{"slowo": "bieżałbyś", "wymowa": ["b", "j", "ˈɛ", "ʒ", "a", "w", "b", "ˌɨ", "ɕ"]}
{"slowo": "bieżałem", "wymowa": ["b", "j", "ɛ", "ʒ", "ˈa", "w", "ɛ", "m"]}
{"slowo": "bieżałeś", "wymowa": ["b", "j", "ɛ", "ʒ", "ˈa", "w", "ɛ", "ɕ"]}
{"slowo": "bieżało", "wymowa": ["b", "j", "ɛ", "ʒ", "ˈa", "w", "ɔ"]}
{"slowo": "bieżałoby", "wymowa": ["b", "j", "ˌɛ", "ʒ", "a", "w", "ˈɔ", "b", "ɨ"]}
(...)
    

Proszę, oto fajna lista polskich słów z ich wymowami w formacie json lines. Tę listę stworzyłem tak, że brałem kolejne słowa z listy słów i dla każdego słowa sprawdzałem wymowę biblioteką espeak-ng. Używałem do tego pythonowego wrappera do espeak-ng (bo sama biblioteka espeak-ng jest w C). Niestety, ten wrapper nie wrapował jednej funkcji, którą potrzebowałem, więc musiałem dopisać to zawrapowanie. Ta moja zmiana jest już zmerdżowana w repozytorium tego wrappera, które jest na githubie, ale gdybyście próbowali instalować ten wrapper przez "pip install espeak-ng-python", no to niestety dostaniecie starą wersję, która tej zmiany jeszcze nie ma.

No ale w każdym razie program, którym wygenerowałem tę listę, wygląda tak:

import bz2
import espeak_ng
import json

espeak_ng.initialize()
espeak_ng.set_voice_by_properties(name="pl")

for idx, line in enumerate(bz2.BZ2File("slowa.txt.bz2", "r")):
  słowo = line.decode('utf-8').rstrip()
  wymowa = [fonem for fonem in espeak_ng.text_to_phonemes(słowo, phonememode=(0x02 | (ord('_') << 8))).split('_') if fonem != '']
  print(json.dumps({'slowo': słowo, 'wymowa': wymowa}, ensure_ascii=False))