<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CZ by Alfons Zelicko</title><link>https://www.zelicko.dev/notes/cz/</link><description>Recent content in CZ by Alfons Zelicko</description><language>en</language><lastBuildDate>Thu, 26 Mar 2026 14:42:11 +0100</lastBuildDate><atom:link href="https://www.zelicko.dev/notes/cz/index.xml" rel="self" type="application/rss+xml"/><item><title>Jak jsem si chtěl přečíst knihu...</title><link>https://www.zelicko.dev/notes/2026-03-26-ebook-translator/</link><pubDate>Thu, 26 Mar 2026 14:42:11 +0100</pubDate><guid>https://www.zelicko.dev/notes/2026-03-26-ebook-translator/</guid><description>
&lt;blockquote>
&lt;p>This text is in czech - I know - its mostly for my czech friends, who asked me about the progress
(ye, we have a little fun about my &amp;ldquo;I just want to read one book&amp;rdquo; in the pub). GPT can translate
it for you 🍻&lt;/p>
&lt;/blockquote>
&lt;h2 id="všechno-to-začalo-naprosto-nevinně">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#v%c5%a1echno-to-za%c4%8dalo-naprosto-nevinn%c4%9b" aria-hidden="true" tabindex="-1">#&lt;/a>Všechno to začalo naprosto nevinně
&lt;/h2>&lt;p>Chtěl jsem si přečíst knihu. V cizím jazyce. Jenže autor měl zjevně pocit, že bez archaických výrazů
a květnatých metafor v každém druhém odstavci jeho dílo postrádá duši. Já měl zase pocit, že bez
slovníku nepochopím ani obsah předmluvy (opravdu! - Německé &lt;em>Geschichtsaufarbeitungsprozess&lt;/em> je
prostě miláček).&lt;/p>
&lt;p>„V pohodě,“ řekl jsem si. „Máme 21. století. Hodím to do GPT, ať mi to přeloží s trochou toho
žánrového cítění, a za deset minut čtu.“&lt;/p>
&lt;p>Jenže GPT mi dalo jasně najevo, co si o mém „velkém souboru“ a mé verzi zdarma myslí. V podstatě mě
poslalo někam s tím, že na takové romány nemá náladu ani kontextové okno.&lt;/p>
&lt;h2 id="jenom-malý-skriptík">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#jenom-mal%c3%bd-skript%c3%adk" aria-hidden="true" tabindex="-1">#&lt;/a>„Jenom malý skriptík“
&lt;/h2>&lt;p>Nasral jsem se. Otevřel jsem VS Code a za pár minut vyplivl jednoduchý Python skript. Rozbít text na
kusy, poslat to přes API, zase to spojit. Vstupní parametr? Cesta k souboru. Nebo víš co? Uděláme
tam rovnou okýnko na výběr souboru, ať to vypadá k světu&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>.&lt;/p>
&lt;h2 id="když-už-jsem-v-tom">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#kdy%c5%be-u%c5%be-jsem-v-tom" aria-hidden="true" tabindex="-1">#&lt;/a>„Když už jsem v tom&amp;hellip;“
&lt;/h2>&lt;p>Když už to umělo překládat, přišlo mi blbý tam nemít volbu jazyka. A když už tam byla volba jazyka,
chtělo to i políčko na vlastní prompt, abych mohl modelu vysvětlit, že nechci strojový překlad
návodu na pračku, ale atmosférický sci-fi noir. A co když spadne internet? Přidal jsem logiku pro
ukládání progresu, aby se dalo pokračovat tam, kde to lehlo.&lt;/p>
&lt;h2 id="engine-kam-se-podíváš">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#engine-kam-se-pod%c3%adv%c3%a1%c5%a1" aria-hidden="true" tabindex="-1">#&lt;/a>„Engine kam se podíváš“
&lt;/h2>&lt;p>V tu chvíli se ozvalo moje vnitřní inženýrské já: „A co když Gemini dává lepší výsledky? A co
DeepL?“ Tak jsem tam přidal podporu pro další enginy. Najednou jsem neměl skript na čtení knihy, ale
multimodální překladatelskou platformu.&lt;/p>
&lt;h2 id="mělo-by-to-i-mluvit-ne">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#m%c4%9blo-by-to-i-mluvit-ne" aria-hidden="true" tabindex="-1">#&lt;/a>„Mělo by to i mluvit, ne?“
&lt;/h2>&lt;p>U chunkování textu mě napadlo, že od překladu je jen krůček k TTS (Text-to-Speech). Vždyť ty kousky
textu už mám připravené! Tak jsem tam přidal modul, co to sype do MP3. Ale číst to musí dávat smysl,
takže jsem musel přepsat logiku rozbíjení textu, aby to respektovalo nadpisy a odstavce. Robustnost
především.&lt;/p>
&lt;h2 id="moderní-backend-je-základ">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#modern%c3%ad-backend-je-z%c3%a1klad" aria-hidden="true" tabindex="-1">#&lt;/a>„Moderní backend je základ“
&lt;/h2>&lt;p>Protože spouštět to přes terminál jako nějaký neandrtálec mě přestalo bavit, řekl jsem si, že si
vyzkouším &lt;a
href="https://strawberry.rocks/"
target="_blank" rel="noopener"
>GraphQL v Pythonu&lt;/a
>. Udělal jsem
&lt;a
href="https://fastapi.tiangolo.com/"
target="_blank" rel="noopener"
>server&lt;/a
>, který přijímá parametry, volá ty moje skripty, procesuje
výstupy a vrací to přes API.&lt;/p>
&lt;h2 id="aktuální-stav-diagnóza">
&lt;a href="https://www.zelicko.dev/notes/2026-03-26-ebook-translator/#aktu%c3%a1ln%c3%ad-stav-diagn%c3%b3za" aria-hidden="true" tabindex="-1">#&lt;/a>Aktuální stav: Diagnóza
&lt;/h2>&lt;p>Knihu jsem stále nepřečetl. Nejsem ani za první kapitolou.&lt;/p>
&lt;p>Místo toho teď sedím nad návrhem Frontendové aplikace, která se na to bude připojovat. Samozřejmě
tam musím dodělat správu uživatelů a kreditový systém, protože tyhle srandy přes API něco stojí a
nehodlám dotovat zbytek světa, až se to rozhodnu releasnout.&lt;/p>
&lt;p>&lt;em>Závěr?&lt;/em> Chtěl jsem si přečíst knihu. Teď buduju SaaS platformu pro orchestraci AI modelů. Jestli se
mi někdy podaří dočíst tu první kapitolu, pravděpodobně k tomu napíšu skript, který tu knihu rovnou
zfilmuje&amp;hellip; v té době už by to AI mely být schopny udělat dobře.&lt;/p>
&lt;p>Kdyby se někdo chtěl k projektu připojit:
&lt;a
href="https://github.com/alfonsZelicko/python-ebook-reader"
target="_blank" rel="noopener"
>Zde je GIT repo &lt;/a
>&lt;/p>
&lt;blockquote>
&lt;p>&amp;hellip; a ano - po cestě jsem se naučil mnoho zajímavých věcí: &lt;a
href="https://strawberry.rocks/"
target="_blank" rel="noopener"
>Strawberry&lt;/a
>
lib, nuance v modelech pro &lt;a
href="https://github.com/coqui-ai/tts"
target="_blank" rel="noopener"
>COQUI&lt;/a
>, jak klonovat hlas, pracovat s
&lt;a
href="#ZgotmplZ"
>Google AI studio&lt;/a
>&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup> a jak otravné je vyvýjet, když mi nikdo
nešlape na krk s roadmapou :-D&lt;/p>
&lt;/blockquote>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Původně jsem to chtěl sepsat chronologicky, abych mohl průběžně text prokládat odkazy na
konkrétní commit messages, ale to by bylo opravdu hodně práce. Navíc jsem je nevedl tak čistě,
jak bych si přál.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>to by konec koncu zvladlo celou tuhle praci obstarat v ramci sveho ekosystemu -&amp;gt; za relativne
drobne, ale ja si to chtěl osahat :-)&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item></channel></rss>