[{"data":1,"prerenderedAt":592},["ShallowReactive",2],{"blog-local-text-to-speech-pipeline-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":35,"cover":57,"og":58,"expertise":59,"locales":60,"lang":63,"title":64,"description":65,"coverAlt":66,"metaTitle":67,"takeaways":68,"faq":74,"toc":90,"blocks":118,"others":366},"local-text-to-speech-pipeline","2026-10-01",11,"llmops",[9,10,11,12,13],"Text-to-speech","Audio","Kokoro","FFmpeg","Vue",[15,16,17,18,19,20,21,22,23,24],"local text-to-speech","text-to-speech pipeline","kokoro tts","piper tts","bark tts comparison","narrate blog posts","wav to m4a ffmpeg","aac 192 kbit\u002Fs faststart","vue audio player","onnx tts mac",[26,29,32],{"name":27,"url":28},"Speech synthesis","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSpeech_synthesis",{"name":30,"url":31},"Advanced Audio Coding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAdvanced_Audio_Coding",{"name":33,"url":34},"ESpeak","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FESpeak",[36,39,42,45,48,51,54],{"title":37,"url":38},"Kokoro onnx: runtime bindings","https:\u002F\u002Fgithub.com\u002Fthewh1teagle\u002Fkokoro-onnx",{"title":40,"url":41},"Kokoro-82M model card","https:\u002F\u002Fhuggingface.co\u002Fhexgrad\u002FKokoro-82M",{"title":43,"url":44},"Piper text-to-speech","https:\u002F\u002Fgithub.com\u002Frhasspy\u002Fpiper",{"title":46,"url":47},"Bark by Suno","https:\u002F\u002Fgithub.com\u002Fsuno-ai\u002Fbark",{"title":49,"url":50},"FFmpeg AAC encoder documentation","https:\u002F\u002Fffmpeg.org\u002Fffmpeg-codecs.html#aac",{"title":52,"url":53},"torch.load weights_only documentation","https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Fgenerated\u002Ftorch.load.html",{"title":55,"url":56},"ESpeak NG phonemizer","https:\u002F\u002Fgithub.com\u002Fespeak-ng\u002Fespeak-ng","\u002Fimages\u002Fblog\u002Flocal-text-to-speech-pipeline\u002Fcover.webp","\u002Fimages\u002Fblog\u002Flocal-text-to-speech-pipeline\u002Fog.jpg","ai-engineer",[61,62,63],"en","de","hu","Helyi felolvasás nagyban: 95 cikk narrálása nyílt modellekkel","Három nyílt TTS-modell egy laptopon: hogyan lett 95 cikkből 153 perc felolvasás — a SQLite-soroktól a tagolt szintézisen és a 192 kbit\u002Fs AAC-en át az oldal mellett maradó lejátszóig.","Hullámdiagram a narrációs pipeline-ról: az adatbázsissorok mondatokra hullanak, egy helyi modell szintetizálja őket, AAC-kódolásra kerülnek, és a képernyő szélén ragadó fülről indulnak.","Helyi TTS nagyban: 95 cikk, 3 modell · Balázs Csorba",[69,70,71,72,73],"A helyi TTS megfordítja a narrálás gazdaságát: 95 cikk és 153 perc hang körülbelül 35 perc számítási időbe és nulla API-díjba kerül — egy plusz cikk határköltsége az áram.","Ilyen méretben a modellválasztás sebesség-minőség Pareto, nem benchmark-harc: a Piper volt a leggyorsabb, a Bark sosem fejezett be, a Kokoro v1.0 (82M, ONNX) pedig a proszódiát nyerte nagyjából négyszeres valós idejű sebességgel.","Mondatoknál tagolj, 400 karakterig, 80 ms csenddel a darabok között; az okosabb vágópontok szinte semmit nem adnak, amit a hallgató észrevenne.","A WAV munkaformátum, nem kézbesítési formátum: a 192 kbit\u002Fs-os AAC faststarttel 406 MB-ról 181 MB-ra vágta a méretet, és a letöltés befejezése előtt teszi használhatóvá a hosszt és a pörgetést.","A prerenderelt lejátszóban az események verik a feltételezéseket: a loadedmetadata lefuthat a hidratálás előtt, ezért a hosszt durationchange-en, canplay-en és mountkor újra kell olvasni — az állapotot iratkozz fel, ne az értesítésre.",[75,78,81,84,87],{"q":76,"a":77},"Miért nem felhő alapú text-to-speech API-t használsz?","Mert 95 cikknél a mért díjak minden szerkesztésnél és újraépítésnél számítanak, és mert a reprodukálhatóság fontosabb: ugyanaz a szöveg ugyanazzal a modellverzióval jövőre ugyanazt a fájlt állítja elő. A felhőben futó hangok továbbra is az expresszív csúcson győznek, de nem egy teljes archívum gazdaságosságában.",{"q":79,"a":80},"Melyik modell hangzik a legjobban?","A Kokoro v1.0 — és ez szállít ki: 82 millió paraméter, természetes hangsúlyozás, tiszta szám- és terméknevek. A Piper a LibriTTS hanggal szorosan mögötte, érezhetően gyorsabban. A Bark a három legexpresszívebb, de túl lassú volt ehhez a volumenhez.",{"q":82,"a":83},"Mennyi idő egy teljes futás?","Körülbelül 35 perc mind a 95 cikkre egy Apple Silicon laptopon — nagyjából 4,5-szörös valós idő —, 2 GB alatti csúcsfoglalással. Egyetlen cikk körülbelül 20 másodperc alatt áll újra elő.",{"q":85,"a":86},"Miért AAC (M4A) és nem MP3 vagy Opus?","192 kbit\u002Fs-on a kodekkülönbségek beszédnél hallhatatlanok, szólt a döntés a csomagolásról: az AAC natívan fut mindenhol, Safari alatt is, a faststart a letöltés vége előtt megmutatja a hosszt, az Opus kisebb lenne, de a böngészőtámogatása egyenetlen WebM-en kívül.",{"q":88,"a":89},"Lézik német és magyar narráció is?","Egyelőre nem. A narráció minden cikk angol eredetét olvassa fel; maga a lejátszó felülete teljesen lokalizált angolul, németül és magyarul.",[91,94,97,100,103,106,109,112,115],{"id":92,"title":93},"why-local","Miért helyi a text-to-speech",{"id":95,"title":96},"model-shootout","Három modell, egy laptop",{"id":98,"title":99},"the-pipeline","A generálási pipeline",{"id":101,"title":102},"wav-to-aac","A WAV munkaformátum, nem kézbesítési formátum",{"id":104,"title":105},"the-player","A lejátszó",{"id":107,"title":108},"what-broke","Mi tört össze menet közben",{"id":110,"title":111},"the-numbers","A számok",{"id":113,"title":114},"verdict","Mit csinálnék másképp",{"id":116,"title":117},"sources","Források",[119,123,126,129,132,135,142,143,146,149,152,155,201,202,205,208,212,215,222,228,229,232,235,237,240,241,244,247,250,256,257,282,283,325,328,329,332,335,336],{"type":120,"content":121},"paragraph",[122],"Mostantól minden cikkhez tartozik felolvasás: 95 bejegyzés, 153 perc hang, egyetlen laptopon generálva, egyetlen API-hívás nélkül. Ez a poszt a teljes beszámoló — hogyan hasonlítottunk össze három nyílt text-to-speech modellt, hogyan alakítja a pipeline a SQLite-sorokat mondatnyi szintézis-darabokká, miért AAC a kézbesített formátum 192 kbit\u002Fs-on, és hogyan épül a lejátszó, hogy a hang együtt fusson az oldallal.",{"type":120,"content":124},[125],"Először a számok, mert ezek keretezik az alábbi minden döntést: 95 cikk (45 blogbejegyzés és 50 eszközismertető), 153 perc kész narráció, körülbelül 35 perc generálási idő, 406 MB köztes WAV 181 MB kézbesített AAC-ra csökkentve, és nulla euró API-díj. Minden egyetlen, 16 GB memóriájú Apple Silicon laptopon futott.",{"type":127,"level":128,"id":92,"text":93},"heading",2,{"type":120,"content":130},[131],"A felhőben futó text-to-speech kiváló és negyedévről negyedévre jobb lesz — de mérik. ilyen volumenben a számla minden szóval, minden szerkesztés utáni újraépítéssel, minden hang- vagy sebességkísérlettel nő. A helyi pipeline megfordítja a gazdaságot: egy plusz cikk határköltsége néhány cent áram és két perc várakozás. Ráadásul reprodukálható — ugyanaz a szöveg, ugyanaz a modellverzió és ugyanaz a hang jövőre ugyanazt a fájlt adja, és ez számít, amikor egy szerkesztett cikket újra kell narrálni, hogy a hang ne csússzon el.",{"type":120,"content":133},[134],"Van egy másik ok is: a szöveg nem hagyja el a gépet. Egy még publikálatlan cikk vázlatát ugyanaz a folyamat olvassa, amely közzéteszi, ugyanazon a gépen — és ha egy bekezdés változik, egy slug újrafuttatása egy fájlt állít elő, nem kilencvenötöt.",{"type":136,"variant":137,"title":138,"body":139},"callout","note","A keretfeltétel",[140],[141],"Nincs GPU-klaszter és nincs felhős batch: egy 16 GB-os Apple Silicon laptop, amit minden más is használ. Ez a választást a memóriában kényelesen elférő, CPU-n közel valós idejű modellekre szűkítette — néhány száz millió paraméterű modellre, nem néhány milliárdosra.",{"type":127,"level":128,"id":95,"text":96},{"type":120,"content":144},[145],"A Piper indult, mert a legjobb értelemben unalmas: kis ONNX-modell (a LibriTTS high hang körülbelül 137 MB), espeak-ng fonémázás, 22,05 kHz kimenet, generálás nagyjából ötszörös valós idejű sebességgel. Az eredmény tiszta és konsztisztens — egy kompetens hírolvasó —, de egyben egyenletes. A hosszú cikkek kissé laposak.",{"type":120,"content":147},[148],"Az első akadály a csomagolás volt, nem a minőség: a prebuilt macOS bináris csak x86_64-re készült, és Apple Siliconon megtagadta a linkelést az arm64-es espeak-ng könyvtárral architektúra-ütközés miatt. A Python csomag teljesen kikerüli a binárist, és percek alatt futott. Hasznos emlékeztető: az „nem fut\" gyakran eszközlánc-probléma, nem modellprobléma.",{"type":120,"content":150},[151],"A Bark volt a három legcsábítóbb: expresszív, képes nevetésre és sóhajtásra, publikált mintákkal, amelyek bármelyik másik modellt metronómnak hangoltatnak. Ez volt az is, amelyik sosem produkált használható mondatot. A jelenlegi PyTorch a torch.load alapértelmezését weights_only-ra állította, így a checkpoint kicsomagolása addig bukott, amíg nem patchelték; amikor a betöltés működött, a CPU-s inferencia elég lassú volt, hogy 95 cikk a nap nagy részét vigye. Az expresszivitás nem érte meg ezt az árat — a Bark erre a munkára kutatási játék marad.",{"type":120,"content":153},[154],"A Kokoro v1.0 a kokoro-onnx kötéseken keresztül volt a megtalálás: 82 millió paraméter, körülbelül 325 MB ONNX, 24 kHz kimenet, 54 hang, és generálás nagyjából négyszeres valós idejű sebességgel, érezhetően jobb proszódiával, mint a Piper — a mondatok leteszik a hangsúlyukat, a számok és rövidítések pedig nem a kisebb modellre jellemző akadozással szólnak. Így szól most minden cikk ezen az oldalon.",{"type":156,"head":157,"rows":168},"table",[158,160,162,164,166],[159],"Modell",[161],"Súlyok",[163],"Kimenet",[165],"Sebesség ezen a gépen",[167],"Ítélet",[169,180,191],[170,172,174,176,178],[171],"Piper, LibriTTS high",[173],"körülbelül 137 MB, ONNX",[175],"22,05 kHz WAV",[177],"körülbelül 5x valós idő",[179],"Gyors és konsztisztens, kissé lapos",[181,183,185,187,189],[182],"Bark a Sunótól",[184],"körülbelül 2 GB, PyTorch",[186],"24 kHz WAV",[188],"a költségkereten belül sosem készült el",[190],"Expresszív, itt gyakorlatlan",[192,194,196,197,199],[193],"Kokoro v1.0",[195],"82M, körülbelül 325 MB, ONNX",[186],[198],"körülbelül 4x valós idő",[200],"Természetes proszódia; a kiszállított hang",{"type":127,"level":128,"id":98,"text":99},{"type":120,"content":203},[204],"A tartalmi adatbázis az egyetlen igazságforrás, ezért a pipeline közvetlenül onnan olvas: cím, leírás, kulcsmondatok és GYIK egyik oldalon, a cikk blokklistája a másikon. Semmit nem kapar le a renderelt oldalról. Ha egy bekezdés a posztban van, narrálja — és ha tábla, callout vagy kódblokk, akkor úgy bontja szét, hogy a hallgató követni tudja: a táblasorok vesszővel elválasztott sorokká válnak, a callout-címeket fejezetként mondják, a kód úgy hangzik, ahogy íródott.",{"type":120,"content":206},[207],"Két keretfeltétel formálja a pipeline középső részét. A modellek levágják a hosszú bemenetet, ezért a cikkeket bontani kell; a proszódiát nem szabad félbevágni, ezért a vágások mondatvégeken landolnak. A chunker szándékosan egyszerű: mondatok gyűjtése 400 karakterig, kiürítés a határon, a darabok 80 milliszekundum csenddel fűzve. Az okosabb vágópontok — bekezdésvégek, fejezetek mint intonációs újraindítás — szinte semmit nem hoztak; a mondat az a mértékegység, amit a hallgató valóban észrevesz.",{"type":127,"level":209,"id":210,"text":211},3,"the-chunker","A chunker",{"type":213,"code":214},"code","def chunks(text, limit=400):\n    \"\"\"Accumulate sentences up to limit characters; never split mid-sentence.\"\"\"\n    out, buf = [], \"\"\n    for sentence in text.split(\". \"):\n        cand = (buf + \" \" + sentence).strip()\n        if len(cand) > limit and buf:\n            out.append(buf + \".\")\n            buf = sentence\n        else:\n            buf = cand\n    if buf:\n        out.append(buf)\n    return out\n\npieces = []\nfor part in chunks(article_text):\n    audio, _ = model.create(part, voice=\"af_bella\")\n    pieces.append(audio)\n    pieces.append(np.zeros(int(24000 * 0.08)))   # 80 ms between chunks\nsf.write(tmp_wav, np.concatenate(pieces), 24000)",{"type":120,"content":216},[217,221],{"tag":218,"children":219},"strong",[220],"Egy hang olvassa fel mind a 95 cikket."," Ez af_bella, miután ugyanazt a bekezdést a 54 hang többjével is lejátszottuk. A konzisztencia a lényeg: az archívumnak egy kiadványnak kell hangzania, nem lottónak. A narráció minden cikk angol szövegét olvassa fel — a német és magyar oldalakról is —, és a cikk angol felolvasásaként van megjelölve, nem fordításaként.",{"type":136,"variant":223,"title":224,"body":225},"tip","Csak a változottat újítsd fel",[226],[227],"A generátor kihagy minden slugot, amelyiknek a kimeneti fájlja már létezik, így egy cikk szerkesztése egy újragenerálást kerül, nem teljes futást. Egy teljes, frisss futás mind a 95 cikkre körülbelül 35 perc — elég olcsó ahhoz, hogy a teljes újraépítés is jó alapértelmezés legyen.",{"type":127,"level":128,"id":101,"text":102},{"type":120,"content":230},[231],"A szintézis lépés 24 kHz, 16 bites PCM-et ír: helyes, pörgethető, tömörítetlen — és körülbelül 406 MB 153 perc hangért. A lemezen ártalmatlan, a hálózaton hiba, és mindent prerenderelő oldalon egy nagyságrenddel a legnagyobb asset-osztály lenne.",{"type":120,"content":233},[234],"A kézbesített formátum AAC M4A-konténerben, 192 kbit\u002Fs, mono. Ez a bitsebesség bőkezű beszédre — 96 és 128 kbit\u002Fs 24 kHz-en már átlátszóan hangzik —, de a 192 tartalékot hagy, és cikkenként körülbelül egy megabájtba kerül. A konténer ugyanannyit számít, mint a kodek: a faststart a moov atomot a fájl elejére teszi, így a böngésző letöltés vége előtt ismeri a hosszt és pörgetni tud. Nélküle a lejátszók 0:00-n állnak, és az utolsó bájtig nem hajlandóak tekerni.",{"type":213,"code":236},"ffmpeg -i article.wav -c:a aac -b:a 192k -ac 1 -movflags +faststart article.m4a",{"type":120,"content":238},[239],"406 MB lett 181 MB — 55 százalék csökkenés, minden fájl 1,5 MB alatt, sima range-kérésekkel és cache-headerekkel kiszállítva. A WAV-fájlok sosem érik el a build kimenetét: a kódoló sikerét követően töröljük őket.",{"type":127,"level":128,"id":104,"text":105},{"type":120,"content":242},[243],"A kései hangot senki sem hallja, ezért a lejátszó csak a metadatokat tölti le: a header lejön, a hossz kiderül, és egyetlen minta sem töltődik le, amíg az olvasó meg nem nyomja a Playt. Semmi sem indul automatikusan — az az oldal, amelyik megszólal, olyan oldal, amit bezárnak.",{"type":120,"content":245},[246],"Minden cikk egy soros lejátszót kap a tartalomjegyzék alatt: play és pause, pörgethető haladásvonal aktuális és teljes idővel, és 1x, 1,25x, 1,5x és 2x között váltó sebességkapcsoló. A pörgető natív range input az oldal stílusában — a billentyűzetes navigáció és a képernyőolvasó-szemantika örökölve, nem újraimplementálva.",{"type":120,"content":248},[249],"A soros lejátszó hasztalan, amint alá görget az ember, ezért átadja a helyét a nézet jobb szélére rögzített ragadós fülnek. Egy IntersectionObserver figyeli a sort: amint eltűnik a képernyőről, a fül megjelenik; visszagörgetve félreáll. A fül alulról töltődik a haladással — a fejlédés egy pillantással olvasható —, és tiszteletben tartja a prefers-reduced-motiont, akárcsak a felület többi része.",{"type":136,"variant":251,"title":252,"body":253},"warn","A 0:00-hiba",[254],[255],"Az első kiadott verzió minden oldalon 0:00-t mutatott teljes hosszként. Az audio elem loadedmetadata eseményt küld az oldalbetöltéskor, és gyors kapcsolaton faststart fájlnál ez még azelőtt megtörténik, hogy a JavaScript hidratált és csatlakoztatta volna a kezelőit — így az egyetlen esemény, amely a hosszt hozta volna, elveszett. A megoldás: nem bízni meg egyetlen eseményben — a hosszat most durationchange-en és canplay-en olvassuk újra, és mountkor egyszer ellenőrizzük. A lejátszóban a médiaesemények folyam, nem üzenet — az állapotra iratkozz fel, nem az értesítésre.",{"type":127,"level":128,"id":107,"text":108},{"type":258,"ordered":259,"items":260},"list",false,[261,266,271,275,277],[262,265],{"tag":218,"children":263},[264],"A csomagolás kétszer verte a modelleket."," A Piper csak x86_64-es binárist szállított arm64-es gépre, a Bark checkpoint-betöltése pedig akkor bukott, amikor a PyTorch a weights_only alapértelmezést fordította. Egyik hibának sem volt köze a beszédhez.",[267,270],{"tag":218,"children":268},[269],"A verzió-eltolódás valós."," A kokoro-onnx csomag int32-ként adta át a speed paramétert, miközben a kiszállított modell floatet vár — egy soros javítás, két soros stacktrace olvasásával megtalálva, nem találgatva.",[272],{"tag":218,"children":273},[274],"A hangot ellenőrizd, nem csak a fájlt.",[276]," Az ffprobe minden kimeneten fogta ki a hossz-problémákat, mielőtt böngészőhöz értek volna; a létező fájl nem játszó fájl.",[278,281],{"tag":218,"children":279},[280],"A régi formátumok nehezen halnak meg."," Az első kör WAV-okat hagyott a build kimenetén, és csak azért derült ki, mert egy kérés rossz bájtszámot adott vissza.",{"type":127,"level":128,"id":110,"text":111},{"type":156,"head":284,"rows":289},[285,287],[286],"Mutasató",[288],"Érték",[290,295,300,305,310,315,320],[291,293],[292],"Narrált cikkek",[294],"95 (45 blogbejegyzés, 50 eszközismertető)",[296,298],[297],"Kész hang",[299],"153 perc",[301,303],[302],"Generálási falidő",[304],"körülbelül 35 perc, 4,5x valós idő",[306,308],[307],"Csúcsfoglalás",[309],"2 GB alatt",[311,313],[312],"Köztes WAV",[314],"406 MB",[316,318],[317],"Kiszállított AAC",[319],"181 MB, körülbelül 1 MB cikkenként",[321,323],[322],"API-költség",[324],"0 EUR",{"type":120,"content":326},[327],"Együtt olvasva a számok azt mondják, hogy ennek a pipeline-nak a költsége a türelem, nem a pénz. Egy teljes újraépítés — hangcsere után vagy olyan szerkesztés után, ami minden cikket érint — bőven egy óra alatt megvan egy olyan gépen, ami közben tovább használható. Ez az érv a helyi text-to-speech mellett ekkora léptékben: nem az, hogy felülmúl egy felhős Frontier-hangot expresszivitásban, hanem az, hogy a narrációt alapértelmezéssé teszi, nem költségrovattá.",{"type":127,"level":128,"id":113,"text":114},{"type":120,"content":330},[331],"A Kokoroval kezdeni. A shoot-out nem volt kidobott idő — modelleket összehasonlítani az, ami a választást védhetővé teszi —, de a kiszállított pipeline a Kokoróval egyetlen jelöltként is azonos lett volna. Másodszor: közvetlenül a szintézisből AAC-be kódolni, WAV-okat nem tárolni; a köztes formátum egy takarító lépést és 406 MB sosem szükséges fájlt adott hozzá. Harmadszor: a lejátszó médiaeseményeit feliratkozandó állapotként kezelni, nem elkapandó értesítésként — és a hossz-hiba sosem történik meg.",{"type":120,"content":333},[334],"Ami marad, az a hatókör. A narráció egyelőre angol nyelvű — egy hang, egy nyelv, 95 cikk —, és a nyelvenkénti hangok az egyértelmű következő lépés, ha a német és magyar olvasóközönség kéri. Addig az angol narráció az oldal minden terméknevének kiejtési útmutatója is — ez maga egy csendes hasznosság.",{"type":127,"level":128,"id":116,"text":117},{"type":258,"ordered":337,"items":338},true,[339,344,348,351,354,358,362],[340],{"tag":341,"href":38,"children":342},"a",[343],"Kokoro onnx: futtatókötések",[345],{"tag":341,"href":41,"children":346},[347],"Kokoro-82M modellkártya",[349],{"tag":341,"href":44,"children":350},[43],[352],{"tag":341,"href":47,"children":353},[182],[355],{"tag":341,"href":50,"children":356},[357],"FFmpeg AAC-encoder dokumentáció",[359],{"tag":341,"href":53,"children":360},[361],"torch.load weights_only dokumentáció",[363],{"tag":341,"href":56,"children":364},[365],"ESpeak NG fonémázó",[367,423,511,547],{"slug":368,"published":369,"updated":370,"minutes":371,"category":7,"tags":372,"keywords":377,"about":388,"sources":398,"cover":417,"og":418,"expertise":59,"locales":419,"lang":63,"title":420,"description":421,"coverAlt":422},"artificial-analysis-leaderboard-claude-opus-5-5","2026-09-07","2026-09-11",8,[373,374,375,376],"Claude Opus 5.5","Artificial Analysis","LLM benchmarks","LLM cost",[378,379,373,380,381,382,383,384,385,386,387],"Claude Opus 5.5 benchmark","Claude Opus 5.5 pricing","Artificial Analysis Intelligence Index","AI model leaderboard","Opus 5.5 benchmark","Opus 5.5 vs GPT-6 Astra","LLM cost per task","reasoning effort setting","Opus 5.5 pricing","best LLM September 2026",[389,392,395],{"name":390,"url":391},"Claude (language model)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FClaude_(language_model)",{"name":393,"url":394},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",{"name":396,"url":397},"Benchmark (computing)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBenchmark_(computing)",[399,402,405,408,411,414],{"title":400,"url":401},"Artificial Analysis: Claude Opus 5.5 takes the top spot on the Artificial Analysis Intelligence Index (22 September 2026)","https:\u002F\u002Fartificialanalysis.ai\u002Farticles\u002Fclaude-opus-5-5",{"title":403,"url":404},"Artificial Analysis: Claude Opus 5.5 (max) model page","https:\u002F\u002Fartificialanalysis.ai\u002Fmodels\u002Fclaude-opus-5-5",{"title":406,"url":407},"Artificial Analysis: Claude Opus 5.5 (medium) model page","https:\u002F\u002Fartificialanalysis.ai\u002Fmodels\u002Fclaude-opus-5-5-medium",{"title":409,"url":410},"Artificial Analysis: Claude Opus 5 (max) model page","https:\u002F\u002Fartificialanalysis.ai\u002Fmodels\u002Fclaude-opus-5",{"title":412,"url":413},"OfficeChai: Claude Opus 5.5 creates a 5-point lead over GPT-6 Astra","https:\u002F\u002Fofficechai.com\u002Fai\u002Fclaude-opus-5-5-creates-5-point-lead-over-gpt-6-astra-jumps-to-top-spot-on-artificial-analysis-intelligence-index\u002F",{"title":415,"url":416},"Claude API docs: Models overview, context windows and prices (as of September 2026)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fmodels\u002Foverview","\u002Fimages\u002Fblog\u002Fartificial-analysis-leaderboard-claude-opus-5-5\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fartificial-analysis-leaderboard-claude-opus-5-5\u002Fog.jpg",[61,62,63],"Claude Opus 5.5 az Artificial Analysis élén, de az igazi hír a medium effort","A Claude Opus 5.5 az 1. a 211 modellből az Artificial Analysisnél, 58 ponttal. Medium efforttal hozza az Opus 5 szintjét, 1,34 $ helyett 5,86 $ feladatonként.","Vízszintes sávok az Intelligence Index pontszámaival: Claude Opus 5.5 max effort mellett 58, GPT-6 Astra és Claude Fable 5.1 53, Opus 5 51, Opus 5.5 medium effort mellett 51",{"slug":424,"published":425,"minutes":426,"category":7,"tags":427,"keywords":433,"about":444,"sources":453,"cover":505,"og":506,"expertise":59,"locales":507,"lang":63,"title":508,"description":509,"coverAlt":510},"agent-observability-opentelemetry","2026-08-06",12,[428,429,430,431,432],"OpenTelemetry","LLM observability","AI agents","Tracing","Evals",[434,435,436,437,438,439,440,441,442,443],"LLM agent observability OpenTelemetry","OpenTelemetry GenAI semantic conventions","how to trace LLM agents","gen_ai semantic conventions attributes","LLM token usage and cost metrics","LLM tracing sampling","PII in LLM traces","Langfuse vs Arize Phoenix vs Datadog","AI agent tracing evals","OpenTelemetry LLM tracing",[445,447,450],{"name":428,"url":446},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpenTelemetry",{"name":448,"url":449},"Observability","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FObservability_(software)",{"name":451,"url":452},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[454,457,460,463,466,469,472,475,478,481,484,487,490,493,496,499,502],{"title":455,"url":456},"OpenTelemetry: GenAI semantic conventions repository (open-telemetry\u002Fsemantic-conventions-genai)","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai",{"title":458,"url":459},"GenAI conventions: overview (status Development)","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002FREADME.md",{"title":461,"url":462},"GenAI conventions: model spans, execute_tool and content capture","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-spans.md",{"title":464,"url":465},"GenAI conventions: agent spans","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-agent-spans.md",{"title":467,"url":468},"GenAI conventions: metrics","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-metrics.md",{"title":470,"url":471},"GenAI conventions: inference token metrics","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-token-metrics.md",{"title":473,"url":474},"GenAI conventions: events (gen_ai.evaluation.result)","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-events.md",{"title":476,"url":477},"GenAI conventions: Model Context Protocol","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fmcp.md",{"title":479,"url":480},"OpenTelemetry docs: GenAI conventions moved notice","https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Fspecs\u002Fsemconv\u002Fgen-ai\u002F",{"title":482,"url":483},"OpenTelemetry docs: Sampling","https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Fconcepts\u002Fsampling\u002F",{"title":485,"url":486},"John Hodge: The state of the OpenTelemetry GenAI semantic conventions (July 2026)","https:\u002F\u002Fjohn-hodge.com\u002Fblog\u002Fopentelemetry-genai-semantic-conventions\u002F",{"title":488,"url":489},"Langfuse docs: OpenTelemetry integration","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fopentelemetry\u002Fget-started",{"title":491,"url":492},"Langfuse repository and licence","https:\u002F\u002Fgithub.com\u002Flangfuse\u002Flangfuse",{"title":494,"url":495},"Arize Phoenix repository","https:\u002F\u002Fgithub.com\u002FArize-ai\u002Fphoenix",{"title":497,"url":498},"Arize OpenInference repository","https:\u002F\u002Fgithub.com\u002FArize-ai\u002Fopeninference",{"title":500,"url":501},"Datadog docs: OpenTelemetry instrumentation for LLM Observability","https:\u002F\u002Fdocs.datadoghq.com\u002Fllm_observability\u002Finstrumentation\u002Fotel_instrumentation\u002F",{"title":503,"url":504},"Honeycomb docs: Send data with OpenTelemetry","https:\u002F\u002Fdocs.honeycomb.io\u002Fsend-data\u002Fopentelemetry\u002F","\u002Fimages\u002Fblog\u002Fagent-observability-opentelemetry\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fagent-observability-opentelemetry\u002Fog.jpg",[61,62,63],"LLM-ügynökök megfigyelhetősége OpenTelemetryvel: trace-ek, tokenek, PII és eval","Így trace-eld az LLM-ügynököket OpenTelemetryvel: GenAI semantic conventions és státuszuk, span-fa, token-metrikák, sampling, PII, eval és eszközök.","Ábra: egy ügynökfuttatás OpenTelemetry span-okra ágazik szét a modellhívásokhoz, eszközhívásokhoz, token-metrikákhoz és eval-eredményekhez, majd egy trace-backendbe exportálódik.",{"slug":512,"published":513,"minutes":514,"category":7,"tags":515,"keywords":519,"about":528,"sources":533,"cover":541,"og":542,"expertise":59,"locales":543,"lang":63,"title":544,"description":545,"coverAlt":546},"llm-cost-latency-prompt-caching-routing","2026-06-01",9,[516,517,376,518],"Prompt caching","Model routing","Latency",[520,521,522,523,524,525,526,527],"prompt caching","LLM cost optimization","LLM latency","model routing","batch API LLM","LLM cost per request","cheaper LLM model","cache hit rate LLM",[529,530],{"name":393,"url":394},{"name":531,"url":532},"Latency (engineering)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLatency_(engineering)",[534,537,540],{"title":535,"url":536},"Claude API docs: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fdocs\u002Fbuild-with-claude\u002Fprompt-caching",{"title":538,"url":539},"OpenAI API docs: Prompt caching","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-caching",{"title":415,"url":416},"\u002Fimages\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing\u002Fog.jpg",[61,62,63],"Prompt caching és modell-routing: LLM költség és késleltetés csökkentése","A prompt caching, a kisebb modellre routing és a batch API-k csökkentik az éles LLM költségét és késleltetését. Így használd mindegyiket.","Négy relatív költségsáv egy kéréshez: drága modell cache nélkül, olcsóbb modell, gecachelt prefix, illetve gecachelt prefix egy batch jobban",{"slug":548,"published":549,"minutes":371,"category":7,"tags":550,"keywords":555,"about":562,"sources":567,"cover":586,"og":587,"expertise":59,"locales":588,"lang":63,"title":589,"description":590,"coverAlt":591},"llm-evals-for-product-features","2026-05-15",[551,552,553,554],"LLM evals","LLM-as-judge","Error analysis","CI",[551,556,552,557,558,559,560,561],"AI evals","eval-driven development","pass^k vs pass@k","agent evaluation harness","regression eval suite","error analysis LLM",[563,564],{"name":393,"url":394},{"name":565,"url":566},"Software testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_testing",[568,571,574,577,580,583],{"title":569,"url":570},"Anthropic: Demystifying evals for AI agents (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"title":572,"url":573},"Hamel Husain: LLM evals FAQ (updated September 2026)","https:\u002F\u002Fhamel.dev\u002Fblog\u002Fposts\u002Fevals-faq\u002F",{"title":575,"url":576},"Shankar et al., Who Validates the Validators? (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.12272",{"title":578,"url":579},"Zheng et al., Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.05685",{"title":581,"url":582},"Yao et al., tau-bench: A Benchmark for Tool-Agent-User Interaction (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.12045",{"title":584,"url":585},"Anthropic: Quantifying infrastructure noise in agentic coding evals (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Finfrastructure-noise","\u002Fimages\u002Fblog\u002Fllm-evals-for-product-features\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-evals-for-product-features\u002Fog.jpg",[61,62,63],"LLM evals termékfunkciókhoz: a valódi trace-ektől a CI kapuig","Az LLM evals teszthalmazzá alakítja a benyomást: hibaelemzés valódi trace-eken, grader választás, validált LLM-as-judge, pass^k és CI kapu.","Pipeline valódi trace-ektől a nyílt kódoláson és a megszámolt hibaforma-taxonómián át a graderekig, a validált judge-ig és a CI kapuig",1791386957521]