Od zastavení po hotové shrnutí: fáze, poznámky a co se může pokazit.
Zastavení ukončí nahrávání a spustí všechno ostatní. Zvuk se odešle na servery Chui, přepíše se a pak se shrne. Na telefonu je nahrávka bezpečně uložená na disku ještě předtím: když není připojení, počká a odešle se, jakmile připojení bude. Kvůli špatné síti se nic neztratí a nemusíš nic mačkat.
Na Macu nebo ve Windows se nahrávka neztratí, ani když se Chui zavřelo ve chvíli, kdy se ještě zastavovala: až se Chui příště otevře, tu nahrávku najde a odešle ji do schůzky, kterou jsi začal, i s poznámkami (od buildu 236).
Schůzka jimi prochází a aplikace ukazuje, ve které právě je:
Oznámení dá vědět, až bude text a shrnutí schůzky hotové. Neobsahuje název ani obsah.
Chui není produkt na přepisy. Je myšlené tak, že si během schůzky napíšeš dva řádky (jméno, číslo, svůj slib) a Chui je spojí s tím, co skutečně zaznělo. Shrnutí vzniká z obojího. Napsané řádky ho směrují, ale doslova se v něm neobjeví. Poznámky jde napsat nebo opravit i po schůzce.
list_meetings() dává seznam: ID, název, datum, délku, stav a nic dalšího. get_meeting() dává shrnutí jedné schůzky, její poznámky, délku a počet rozpoznaných mluvčích. Obvykle je to správné místo, kde skončit. Přepis je samostatné a mnohem dražší čtení: viz Jak najít, co zaznělo.
Schůzka, na které právě jsi, je v tom seznamu taky, označená in_progress. Asistent, kterého se zeptáš „Uprostřed čeho teď jsem?“, tak umí odpovědět. Přepis ani shrnutí neexistují, dokud nahrávka nedorazí, protože Chui přepisuje schůzku až po jejím konci. Chybí i konečná délka. Místo toho se vrátí, jak dlouho už schůzka probíhá, kdy Chui naposledy slyšelo zvuk ze zařízení, a poznámky, které se do ní právě píšou, tak, jak přibývají. Asistent může tyhle poznámky číst, něco do nich doplnit a říct, že schůzka neskončila. Neměl by ji hlásit jako prázdnou nebo nepovedenou, i když přesně tak ty chybějící části zvenčí vypadají.
Znamená to „neskončila“, ne „právě probíhá“, a ten rozdíl stojí za to znát. Chui se dozví, že nahrávka skončila, až když mu to zařízení řekne. Tři docela odlišné věci přitom ze serveru vypadají stejně: rozhovor, který právě probíhá; rozhovor, který skončil před minutou a jeho zvuk se ještě odesílá; a telefon, který se uprostřed schůzky vybil a už nikdy nic neřekne. Proto má asistent pokyn netvrdit, že je mikrofon zapnutý.
Místo toho dostane jeden úzký fakt. Během nahrávání schůzky telefon každých devadesát sekund odešle úsek zvuku, takže Chui ví, před jakou dobou dorazil nejnovější úsek té nahrávky, a nic víc. Dlouhá prodleva znamená, že k ní nedorazil žádný nový zvuk: nahrávání může být pozastavené, telefon může být offline, nebo schůzka mohla skončit, aniž by se to Chui dozvědělo. Ani krátká prodleva nedokazuje, že schůzka probíhá živě, protože telefon, který přes nové připojení dohání starší nahrávku, vypadá stejně čerstvě. Chui předá číslo, místo aby jmenovalo příčinu. Kde to vůbec nemohlo ověřit, neřekne nic, místo aby hádalo.
Chui dává schůzce název samo, obvykle podle pozvánky v kalendáři nebo podle toho, co zaznělo, takže název je často jen odhad. Opravit ho jde v aplikaci, nebo tím, že to řekneš asistentovi: rename_meeting(). Poznámky napsané během schůzky může asistent opravit taky, ale nejdřív se zeptá, protože nový text je nahradí všechny najednou a ty staré se nikde neuchovávají. prepare_update_meeting() vypíše poznámky tak, jak jsou, a tak, jak by byly, a v tu chvíli se ještě nic nestalo. Teprve když řekneš ano, update_meeting() je zapíše, a to přesně ten text, který ti byl ukázán. Asistent by měl poslat celý text včetně změny, jinak zbytek zmizí. Pokud se poznámky mezitím změnily, třeba na jiném zařízení, nic se nezapíše a musí se zeptat znovu.
Stejně jde opravit i shrnutí: špatné jméno, špatné číslo, rozhodnutí zapsané obráceně. prepare_update_summary() vypíše shrnutí tak, jak je, a tak, jak by bylo, a v tu chvíli se ještě nic nestalo. Teprve když řekneš ano, update_summary() zapíše přesně ten text, který ti byl ukázán, a nahradí jím celé shrnutí. Přepis upravit nejde, ani přes asistenta, ani v aplikaci. Je to, co zaznělo.
Ručně opravené shrnutí je potom obyčejné shrnutí a nic ho nechrání. Když pojmenuješ mluvčího, změníš poznámky, sloučíš nebo rozdělíš osobu ve schůzce, přejmenuješ některou z nich nebo požádáš o nové shrnutí, Chui napíše shrnutí znovu z přepisu a poznámek a oprava se tím nahradí. Takže když je chyba v tom, kdo mluvil, nebo v tom, co stálo v poznámce, oprav radši tohle. Shrnutí se samo přizpůsobí o minutu či dvě později.
Týdenní stand-up je jedna schůzka, která se opakuje, a Chui ví, které nahrávky jsou její jednotlivé výskyty. Pozná to podle série v kalendáři, ke které patří a která je uložená přímo u nahrávky, místo aby se dohledávala. get_series() dává dřívější výskyty jedné schůzky, od nejnovějšího. Na „Na čem jsme se minulý týden dohodli?“ a „Co zůstalo otevřené z té předchozí?“ tak stačí jedno volání a pak get_meeting(), místo hledání podle názvů, které si nemusí být podobné. Schůzka nahraná bez záznamu v kalendáři nepatří do žádné série a odpověď to řekne, místo aby se vrátila prázdná.
Schůzka se může vrátit označená jako useknutá (cut short) nebo částečná (partial). Tím Chui říká, že nahrávka nepokrývá celý rozhovor: aplikace byla pozastavena, nebo se nahrávka po pádu obnovovala a její konec se na disk nikdy nezapsal. To, co je k dispozici, shrň jako útržek, ne jako celou schůzku. Schůzka takové označení nemá, když se nic nepokazilo. Importovaný soubor ho nemá nikdy, protože chybí čas schůzky, se kterým by se dal porovnat.
get_coverage() se na to zeptá přímo a odpoví jednou větou: jestli nahrávka pokrývá schůzku, jak dlouhý je soubor, jak dlouho schůzka trvala a jaká její část se do nahrávky dostala. Z přepisu se tohle nepozná. Dvacet minut z devadesátiminutové schůzky se čte úplně stejně jako celá dvacetiminutová, takže stojí za to se zeptat, než někomu řekneš, na čem se domluvilo. Taky to rozliší „tohle nikdo neměřil“ od „tohle je v pořádku“, což není stejná odpověď.
Shrnutí vzniká z poznámek vpletených do toho, co zaznělo. Když se změní jedno nebo druhé, Chui ho samo napíše znovu o minutu či dvě později. Obvykle stačí pojmenovat mluvčího nebo opravit poznámku. V aplikaci „Napsat shrnutí znovu“ (Write the summary again) během přepisování ukazuje tichý řádek (od buildu 248). Asistent o to může požádat i přímo, a je to jediná věc, kterou tu může udělat a která pokaždé stojí skutečné peníze: průchod jazykového modelu celou schůzkou, a u schůzky, která se nikdy nepřepsala, navíc i přepis celé nahrávky. Zároveň zahodí stávající shrnutí. Proto se nejdřív zeptá: prepare_resummarise_meeting() vypíše shrnutí, které by zmizelo, řekne, která z obou zpracování by „ano“ zaplatilo, a nic se neutratí. Teprve když řekneš ano, resummarise_meeting() průchod spustí. Pokud Chui mezitím shrnutí samo napsalo znovu, řekne to a nic nezaplatí. Schůzku, ve které Chui neslyšelo žádná slova, znovu shrnout nejde. Chui to řekne, místo aby platilo za to, že bude ticho poslouchat dvakrát.
Pokud Chui druh nahrávky určilo špatně, změň ho. Na konci shrnutí je tlačítko, které jmenuje, za jaký druh nahrávky ji Chui považovalo, třeba poznámka, rozhovor nebo schůzka (od buildu 248). Vyber jiný druh a shrnutí se napíše znovu v jeho podobě; staré zůstane ztlumené, dokud nedorazí nové. Stejné tlačítko umí volbu i vrátit Chui. Slovy: když předáš shape do prepare_resummarise_meeting(), shrnutí se napíše znovu v podobě, kterou určíš, a ta se pro schůzku zachová; auto vrací volbu Chui.
Krátká poznámka pro jeden hlas (od buildu 235). Nahrávka, ve které je jen jeden hlas, třeba myšlenka, kterou si říkáš sám pro sebe, se může vrátit jako krátká poznámka: samotná myšlenka, učesaná, bez nadpisů a jmen mluvčích, a ve schůzkách označená žárovkou. Od buildu 236 to platí i pro dlouhou nahrávku, trvající hodiny, která se dřív mohla přečíst jako dva hlasy a brát jako schůzka.
Vlastní podoba, naučená jednou. Má-li vaše schůzka vlastní nadpisy — týdenní přehled je vždy čísla, rizika, prosby — řekněte to asistentovi jednou a Chui ji od té doby píše tak. Opakované schůzce se podoba naučí přes set_series_shape() (z kterékoli její schůzky; get_series() ji přečte), štítku přes summary_shape v update_label() (list_labels() ji ukáže). Chui dál začíná krátkým «stručně» a končí dalšími kroky a otevřenými otázkami. Podoba opakované schůzky má přednost před štítkem; dva štítky s různou podobou nechají volbu na Chui. Prázdná podoba vrací volbu Chui. Je součástí placeného tarifu a žádá se slovy — v aplikaci pro to tlačítko není.
Přepis se vrátí jako speaker_0, speaker_1 … Systém hlasy od sebe rozliší, ale neumí je pojmenovat. Když jeden pojmenuješ v aplikaci nebo přes asistenta pomocí name_speaker(), jméno nahradí označení všude, kde se ta schůzka čte. Osoba se přidá do seznamu, aby ji příští schůzka nabídla, a shrnutí se přepíše kolem toho jména.
Když v aplikaci pojmenováváš hlas, seznam začíná položkou „Já“ (Me) a vedle ní je jméno tvého účtu: jedno klepnutí dá na ten hlas tvoje jméno přesně tak, jak ho píše tvůj účet (od buildu 249).
Rozpoznávání hlasu z jedné schůzky na další funguje jen u lidí, kteří si sami zapnuli „Rozpoznávání vlastního hlasu“ (Own-voice recognition) (Nastavení, která se dají změnit na požádání). Jejich hlas přichází už pojmenovaný v jejich vlastních schůzkách a ve schůzkách jejich firmy, na které byli pozvaní. Každý jiný hlas začíná jako speaker_0, speaker_1 … a pojmenovává se ručně. Jméno, které Chui hlasu přiřadilo, se mění jedním klepnutím, jako každé jiné.
Jméno, které Chui odvodilo z rozhovoru a které ještě nikdo nepotvrdil, se zobrazuje jako obyčejné jméno, ale je to jen odhad. Klepnutí na něj nabídne „Ano, to je …“ (Yes, this is …), čímž se jméno ustálí, a „Není to …“ (Not …), čímž se odebere. Přes asistenta get_meeting() uvádí taková jména v tentative_speaker_names. Pojmenování hlasu stejným jménem ho potvrdí a prepare_reject_speaker_name() a pak reject_speaker_name() ho odebere.
Každá chyba řekne, o kterou jde a co se dá dělat: soubor se useknul dřív, než se uložil; zvuk nikdy nedorazil; formát nejde přečíst; přepis narazil na časový limit (nahrávka je v bezpečí, zkus to později); shrnutí nevzniklo, ale přepis je k dispozici. Většina z nich nabízí zkusit to znovu.
Když shrnutí nejde napsat kvůli chybě na straně Chui, Chui to samo zkouší znovu každou hodinu zhruba po dobu jednoho dne (od buildu 230). Problém přes noc tak nenechá schůzku čekat na „Napsat shrnutí znovu“ (Write the summary again).
Smazání schůzky zničí nahrávku, přepis, shrnutí i poznámky, všude, kde existují, natrvalo. Spolu s nimi zmizí i všechno, co se Chui z toho rozhovoru dozvědělo o lidech, kteří v něm byli. Každý veřejný link na ni přestane fungovat. Chui si pamatuje, že schůzka byla smazána, takže telefon, který ještě má zvuk, ho zahodí, místo aby ho později odeslal znovu. Nic z toho už nejde vrátit.
V aplikaci je to Smazat schůzku (Delete meeting) dole na stránce schůzky nebo přejetí po řádku. V obou případech se Chui nejdřív zeptá v panelu, který schůzku jmenuje.
Asistent to může udělat taky a ptá se stejně, ve dvou krocích, protože tohle je jedna z věcí, které nejde vrátit. prepare_delete_meeting() vypíše, o kterou schůzku jde: jak se jmenuje, kdy byla, jak dlouho trvala, jestli v ní máš poznámky a jestli ji někdo mimo Chui čte přes link. V tu chvíli se ještě nic nestalo. Teprve když řekneš ano, delete_meeting() ji zničí. Nepřijme nic jiného než odpověď na tu otázku, takže ho nejde namířit na jinou schůzku, než jaká ti byla právě ukázána. Kolega, který může otevřít schůzku sdílenou s týmem, ji smazat nemůže. Může to jen ten, kdo ji nahrál.
Nahrávání se o přestávce zastavilo a po ní znovu spustilo, nebo nahrávka spadla a Chui uložilo zbytek schůzky zvlášť. Tak či tak je jeden rozhovor ve tvém seznamu jako dva řádky, se dvěma shrnutími a dvěma sadami mluvčích.
Požádej asistenta, ať je spojí. prepare_merge_meetings() vypíše obě: která zůstane, jak dlouhá je každá, jak dlouhá byla mezera mezi nimi a jak dlouhá by byla spojená nahrávka. V tu chvíli se ještě nic nestalo. Teprve když řekneš ano, merge_meetings() to udělá, a nepřijme nic jiného než odpověď na tu otázku.
Co to dělá: obě nahrávky se postaví za sebe, v pořadí, v jakém vznikly, do té dřívější schůzky, která si ponechá své ID a datum. Pozdější schůzka se pak smaže. Chui spojenou nahrávku přečte znovu od začátku, takže schůzka nakonec má jeden přepis, jedno shrnutí a jednu sadu mluvčích pro celý rozhovor. To trvá pár minut. Poznámky napsané v kterékoli schůzce zůstanou ve správném pořadí a ty z druhé poloviny se posunou na časové ose.
Žádný zvuk se tím nikdy neztratí. Každá sekunda obou nahrávek je uvnitř schůzky, která zůstane, a je změřená dřív, než se na druhý řádek sáhne. Co se nevrátí, jsou slova: obě shrnutí a oba přepisy se nahradí, včetně ručních oprav v kterémkoli z nich, a nic už ty dva řádky nevrátí. Vrátit to nejde.
Ještě dvě věci, které stojí za to vědět, než o to požádáš. Pokud obě poloviny vidí různí lidé, třeba jedna je sdílená s firmou a druhá jen pro tebe, spojenou schůzku uvidí ti, kdo mohli vidět tu soukromější z nich. Nic, co bylo jen pro tebe, se tak spojením nikomu neukáže. A pokud byla některá polovina propojená se záznamem v kalendáři, spojená schůzka to propojení zachová, takže zůstane ve své sérii.
Tři věci Chui odmítne, a řekne to dřív, než se rozhodneš, ne až potom.
Nespojí dvě nahrávky, které nedokáže poctivě složit dohromady, třeba dvě poloviny nahrané s různým nastavením nebo jednu z telefonu a druhou z Macu. Nechce vyrobit soubor, který se přehraje jako jiná schůzka. Nespojí ani dva řádky, které začaly ve stejnou chvíli a trvaly stejně dlouho: to je jeden rozhovor, který do Chui dorazil dvakrát, ne dvě poloviny jednoho, a jejich spojením by vznikla schůzka, která všechno říká dvakrát. Jeden z nich radši smaž.
A zatím neumí spojit nic, co se nahrávalo v kartě prohlížeče. Nahrávka pořízená v prohlížeči zapisuje svůj index průběžně, ne na jedno místo na konci, a Chui nemá jak dvě takové složit dohromady. Samotné nahrávky jsou v pořádku a normálně se přehrávají, jen je Chui neumí spojit. Obě poloviny schůzky, které chceš spojit, musí být nahrané na telefonu, Macu nebo počítači s Windows.
Na bezplatném účtu Chui odmítne i v jednom dalším případě: když schůzka, která má zůstat, ještě nebyla přečtena (třeba ta, u které se něco pokazilo) a deset schůzek na tento měsíc je už vyčerpaných. Přečtení spojené nahrávky by bylo prvním čtením, spojená nahrávka by zůstala do konce měsíce zablokovaná a obě poloviny by se zablokovaly najednou. Placený účet takový limit nemá. Jinak je jde spojit příští měsíc. Kolik stojí účet vysvětlí, jaká omezení má bezplatný účet.
Nikde v Chui na to není tlačítko. Je to oprava, které si všimneš při čtení obou schůzek, a právě tam o ni patří požádat.
Opačná situace: telefon zůstal na stole nebo notebook otevřený a do jedné nahrávky se dostaly tři rozhovory. Chui uložilo jednu schůzku s jedním shrnutím, které je o všech, a tedy o žádném.
V buildech 238 a 239 se nahrávka na telefonu při každém dlouhém tichu průběžně sama rozdělila na samostatné schůzky; od buildu 240 vytvoří «Nový záznam» na telefonu opět jednu nahrávku, která běží až do «Zastavit» (Nahrávání schůzky).
Chui si toho obvykle všimne samo. Když přečte nahrávku dlouhou půl hodiny nebo víc, zkontroluje, jestli to ve skutečnosti není několik schůzek. Řídí se hlavně tím, kdo mluví: kde jedni lidé definitivně přestanou mluvit a jiní začnou, tam končí jedna schůzka. Každé takové místo porovná s tím, o čem se mluví, s tvým kalendářem a s případnou pauzou. Teprve když to souhlasí, objeví se na obrazovce schůzky karta „Vypadá to na 3 samostatné schůzky“ (Looks like 3 separate meetings) s každým kusem, jeho časem, názvem a lidmi v něm. Když u kusu zrušíš zaškrtnutí, zůstane spojený se sousedním. „Rozdělit na N“ (Split into N) nahrávku rozdělí a „Je to jedna schůzka“ (It’s one meeting) kartu nadobro skryje.
Nebo se zeptej, kde se láme. find_split_points() odpoví vlastním návrhem Chui, tedy stejnými kusy, jaké ukazuje karta, i se jmény. Vypíše i dlouhá ticha: jak daleko od začátku nahrávky každé je, jak dlouho trvalo, co zaznělo těsně před ním a co jako první po něm. Nic z toho, co vidíš, nezmění. Pokud řekneš, že je to jedna schůzka, keep_as_one_meeting() je totéž co „Je to jedna schůzka“, jen slovy.
Potom požádej o rozdělení. prepare_split_meeting() vypíše každý kus, který by vznikl: kdy začíná, jak je dlouhý a co v něm zazní jako první. V tu chvíli se ještě nic nestalo. Teprve když řekneš ano, split_meeting() to udělá, a nepřijme nic jiného než odpověď na tu otázku.
Co to dělá: zvuk se rozdělí přesně tam, kde určíš, a z každého kusu se stane samostatná schůzka. První kus si ponechá ID téhle schůzky, její datum, název i zveřejněný link. Ostatní jsou nové schůzky, které začínají v časech, kdy se opravdu nahrály. Nic se nenahrává znovu a nic se znovu nepřepisuje. Chui ví, ve které sekundě které slovo zaznělo, takže slova z první hodiny prostě zůstanou u první hodiny a jména přiřazená hlasům zůstanou přesně tak, jak jsou. Tvoje poznámky půjdou s kusem, během kterého vznikly. Chui pak napíše nové shrnutí pro každý kus, což trvá necelou minutu.
Nepočítá se do deseti schůzek měsíčně na bezplatném účtu. Nic se neposílá znovu k přepisu, takže není co počítat: pokud bylo před rozdělením využitých devět schůzek, po něm jich je taky devět.
Přijdeš o shrnutí celé nahrávky a o to, co to shrnutí doplnilo do údajů o lidech v ní. Chui tyto údaje napíše znovu z nových shrnutí. Žádný zvuk ani žádné slovo se neztratí. Vrátit to nejde. Kusy by šlo znovu spojit pomocí merge_meetings(), ale to přečte spojenou nahrávku úplně od začátku a trvá to několik minut.
Chui rozdělení odmítne, ještě než se tě na cokoli zeptá, ve čtyřech případech: kus, který by byl kratší než deset sekund; nahrávka pořízená v kartě prohlížeče, jejíž index Chui zatím neumí rozdělit; schůzka, kterou ještě čte; a schůzka, pro kterou nemá časy jednotlivých slov. V posledním případě to Chui řekne a nové přečtení schůzky to opraví.
Schůzku, kterou Chui složilo poté, co nahrávací zařízení přestalo posílat, jde rozdělit nebo spojit s jinou schůzkou hned (od buildu 247). Pokud to zařízení později pošle zbytek své nahrávky, část, kterou Chui nemělo, dorazí jako samostatná schůzka.
Jediné tlačítko k tomu je na kartě, kterou Chui ukáže, když má podezření, že nahrávka obsahuje několik schůzek; rozdělení kdekoli jinde se zadává slovy.