Egy GPU-s gép a hálózaton, több munkaállomás
A feliratozó szerver, a fordító és a beszédszolgáltatás egy videokártyás gépen fut, a munkaállomások hálózaton érik el: tűzfal, titkosítás, kulcsok.
A tipikus elrendezés: egyetlen gép erős videokártyával adja a három kiszolgálót, a munkaállomásokon csak a feliratozó program (livecaption) fut – ott videokártya sem kell. A telepítést a Telepítés oldal, az első indítást az Első indítás útmutató írja le.
Miért egy gép
A három kiszolgáló együtt 22,3 GB videómemóriát foglal (mérve; a legnagyobb tétel a fordítómodell 16,7 GB-tal), tehát egy 24 GB-os kártyán szűkös. A hálózat késleltetése alig ront: vezetékes helyi hálózaton néhány ezredmásodperc.
| Rész | Hol fut | Hol adja meg a címét |
|---|---|---|
Feliratozó program (livecaption) |
minden munkaállomáson | – |
Feliratozó szerver (captionserver, Whisper) |
a GPU-s gépen | Beállítások → Szerverek |
Fordító (translatorserver) |
a GPU-s gépen | Beállítások → Szerverek |
Beszédszolgáltatás (voiceserver, a tolmács hangja) |
a GPU-s gépen | Beállítások → Szerverek |
A negyedik rész a fiókszolgáltatás (accountserver): a felhasználók, a jelszavak és az API-kulcsok gazdája. Videokártyát nem használ; az adatait egy PostgreSQL-adatbázisban tartja, amit a repó AccountServer\managed-postgres.cmd indítója Docker-konténerben futtat. A kiszolgálók egyetlen fiókszolgáltatás-címet ismernek, és legegyszerűbb a fiókszolgáltatást és az adatbázisát is ugyanarra a gépre tenni. Ha az adatbázis másik gépen van, a kapcsolat csak ellenőrzött titkosítással megy (SSL Mode=VerifyFull) – a managed-postgres.ps1 -ListenAddress <cím> ezt előkészíti.
A kiszolgáló gép
Indítási sorrend
A sorrend kötött: fiókszolgáltatás → fordító és beszédszolgáltatás → feliratozó szerver. A feliratozó szerver a szabad videómemóriához méretezi a modellkészletét, és gyakorlatilag az egészet lefoglalja: elsőnek indulva elvenné a másik kettő helyét. A fiókszolgáltatás címe nélkül a kiszolgálók el sem indulnak, ezért a fiókszolgáltatás indul elsőnek – előtte az adatbázisa. A napi indító (launch-system.cmd) a négy háttérszolgáltatást ebben a sorrendben hozza fel, mindegyiket a saját ablakában, és a feliratablakot nem indítja: a kiszolgáló gépen ez maga a napi indítás. Ami másik gépen fut (például a fiókszolgáltatás), azt a -NoAccount, -NoTranslator, -NoVoice vagy -NoCaption kapcsolóval kell kihagyni; a fiókszolgáltatást a napi indító egyébként is csak akkor indítja, ha a LCP_ACCOUNT_URL erre a gépre mutat.
Tűzfal
A feliratozó szerver alapból minden hálózati csatolón figyel. Ez önmagában kevés: a Windows tűzfal a bejövő kapcsolatot alapból eldobja, és a kliens oldalán csak annyi látszik, hogy „nincs válasz”. A szerver ezért induláskor megnézi, van-e szabály a portjához (alapból TCP 5111), és ha nincs, kérdés nélkül felveszi az alapbeállítással: a privát és a tartományi hálózatra, a nyilvánosra soha. A felvétel a háttérben fut, az indulás nem vár rá; rendszergazdai megerősítés (UAC) kellhet hozzá – ha az ablaka nem látszik, nézze meg a tálcát. A távoli kliensek a szabály elkészülte után érik el a szervert. Ha a Windows a hálózatot nyilvánosnak (Public) sorolja be, az alapbeállítású szabály nem érvényes rá: ilyenkor jelölje privátnak a hálózatot, vagy – csak megbízható hálózaton – törölje a már felvett szabályt (a webes felület Hálózat lapján), és indítsa újra a szervert a --firewall any kapcsolóval – a meglévő szabályt a szerver nem írja át. Más profil a --firewall private|domain|both|any kapcsolóval kérhető, a --firewall skip pedig a tűzfalhoz nem nyúl. Ha a szabály nem jön létre (például elutasítja a megerősítést), a szerver attól még fut tovább, csak a távoli kliensek nem érik el.
Titkosítás
Titkosítatlan hálózaton a hang, az átirat és a hozzáférési kulcs olvashatóan utazik. A --tls kapcsoló ezt szünteti meg:
.\start-captionserver.ps1 -Tls self-signed
A szerver ilyenkor induláskor kiírja a tanúsítvány ujjlenyomatát (SHA-256), és a címeit https:// sémával mutatja. A fordító és a beszédszolgáltatás indítója ugyanezt a -Tls self-signed kapcsolót ismeri. A napi indítónak nincs -Tls kapcsolója: ott a titkosítás a szolgáltatás saját, a webes felületen mentett beállításából jön. Az önaláírt tanúsítványt a klienseknek egyszer el kell fogadniuk.
A munkaállomások
A munkaállomáson nem fut szolgáltatás, a napi indító ott nem kell: a feliratablakot a LiveCaption\start-livecaptionpro.cmd indítja, és a szolgáltatásokat a Szerverek lapon megadott címeken éri el.
A Szerverek lap
A beállítóablak Szerverek lapján mind a három kiszolgáló egy helyen áll, azonos rendben: a cím (http://gép:port, titkosítva https://), az API-kulcs és a webes admin gombja – az utóbbi csak akkor él, ha a szerver ezen a gépen fut. A cím melletti Ellenőrzés gomb megkérdezi a szervert; az eredmény a mező keretén látszik, zölden vagy pirosan.
Titkosított szervernél a tanúsítványt így fogadja el:
- Nyomja meg az Ellenőrzés gombot. Ha a kapcsolat a tanúsítványon bukik el, megjelenik egy Tanúsítvány gomb.
- A gomb megmutatja a tanúsítvány kiadóját, érvényességét és ujjlenyomatát.
- Vesse össze az ujjlenyomatot azzal, amit a szolgáltatás gépe induláskor kiírt (vagy amit a webes felület Hálózat lapja mutat), és csak utána fogadja el.
Az elfogadás a közös adatgyökér certs\trusted.json fájljába kerül; onnantól a program csak azt az egy tanúsítványt fogadja el ahhoz a címhez. Ha a tanúsítvány később megváltozik, a kapcsolat elutasítódik, és a párbeszéd kimondja, hogy a mostani nem az, amit Ön elfogadott.
Kulcs minden munkaállomásnak
Mind a három kiszolgáló hitelesít, kikapcsolni nem lehet: mindegyiknek kulcsot kell adni a Szerverek lapon. A kulcs titkosítva, a felhasználói fiókhoz kötve tárolódik, tehát másik gépre nem vihető át: minden munkaállomás a saját kulcsát kapja a fiókszolgáltatás webes Kulcsok lapján vagy karbantartási módjában – lásd a Fiókok, kulcsok, jogosultságok útmutatót.
A fiókszolgáltatás címe
A kiszolgálók félpercenként letöltik a fiókszolgáltatástól a jogosultsági pillanatképet (a felhasználók, kulcsok és jogok másolatát), és abból döntenek. A címét a LCP_ACCOUNT_URL környezeti változó adja (az AccountServer\setup-account-peers.ps1 szkript állítja be), és kötelező: enélkül a kiszolgálók nem indulnak el. Minden gépen, ahol kiszolgáló fut, ugyanarra az egy fiókszolgáltatásra kell mutatnia. A beállítás után a nyitott ablakokat indítsa újra.
Ellenőrzés
A kötegelt kliens --check kapcsolója átírás nélkül végigméri a láncot a munkaállomásról (névfeloldás, TCP-port, szerver, modellválasztás), és megmondja, melyik lépcsőn akadt el:
captionclient --check --server http://192.168.30.27:5111
A kilépési kód: 0 minden rendben, 3 az FFmpeg, 6 a szerver. A feliratozó program ugyanezt a livecaption --check kapcsolóval teszi mind a három kiszolgálóra. Ha valami nem áll össze: Hibaelhárítás, vagy kérdezzen a Kapcsolat oldalon.