Od zaustavljanja do napisanog sažetka: faze, beleške i šta može da pođe naopako.
Zaustavljanje završava snimanje i pokreće sve ostalo. Zvuk ide na Chui servere, transkribuje se, a zatim se pravi sažetak. Na telefonu je snimak bezbedno sačuvan na disku pre svega toga: ako nema veze, čeka i otprema se kada veza postoji. Ništa se ne gubi zbog loše mreže i ne moraš ništa da pritiskaš.
Na Mac ili Windows računaru snimak se ne gubi ako se Chui zatvorio dok se snimanje još zaustavljalo: sledeći put kada se Chui otvori, pronalazi taj snimak i otprema ga u sastanak koji si započeo, zajedno sa beleškama (od build 236).
Sastanak prolazi kroz njih, a aplikacija pokazuje gde se nalazi:
Obaveštenje javlja kada su tekst i sažetak sastanka spremni. Ne sadrži ni naslov ni sadržaj.
Chui nije proizvod za transkripciju. Zamisao je da tokom sastanka zapišeš dva reda (ime, broj, tvoje obećanje), a da ih Chui spoji sa onim što je zaista rečeno. Sažetak nastaje iz oba. Ukucani redovi ga usmeravaju, ali se u njemu ne pojavljuju doslovno. Beleške se mogu napisati ili ispraviti i posle sastanka.
list_meetings() daje spisak: identifikator, naslov, datum, trajanje, status i ništa više. get_meeting() daje sažetak jednog sastanka, njegove beleške, trajanje i broj prepoznatih govornika. Tu je obično pravo mesto da se stane. Transkript je zasebno, mnogo skuplje čitanje: vidi Kako pronaći ono što je rečeno.
I sastanak na kom si trenutno nalazi se na tom spisku, označen kao in_progress, pa asistent koga pitaju „usred čega sam?“ može da odgovori. Transkripta i sažetka nema dok snimak ne stigne, jer Chui transkribuje sastanak tek kad se završi. Nema ni konačne dužine. Zato se umesto toga vraća koliko dugo traje, kada je Chui poslednji put čuo zvuk sa uređaja i beleške koje se u njega unose dok se kucaju. Asistent može da pročita te beleške, da ih dopuni i da kaže da sastanak nije završen. Ne treba da ga prijavi kao prazan ili neuspeo, iako upravo tako spolja izgledaju delovi koji nedostaju.
To znači „nije završen“, a ne „dešava se sada“, i vredi znati razliku. Chui sazna da je snimak završen tek kada mu uređaj to javi, a tri sasvim različite stvari sa servera izgledaju isto: razgovor koji je u toku, razgovor koji je stao pre minut, a zvuk mu se još otprema, i telefon koji se ugasio usred sastanka i više se nikada neće javiti. Zato asistent ima uputstvo da ne tvrdi da je mikrofon uključen.
Umesto toga dobija jednu usku činjenicu. Dok se sastanak snima, telefon svakih devedeset sekundi šalje deo zvuka, pa Chui zna pre koliko vremena je stigao najnoviji deo tog snimka, i ništa više od toga. Duga pauza znači da nov zvuk nije stigao: snimanje je možda pauzirano, telefon je možda van mreže, a možda se sastanak završio, a da Chui o tome nije obavešten. Ni kratka pauza ne dokazuje da je sastanak uživo, jer telefon koji preko nove veze nadoknađuje stariji snimak izgleda jednako sveže. Chui prosleđuje broj i ne navodi uzrok, a gde uopšte nije mogao da proveri, ne kaže ništa umesto da nagađa.
Chui sam daje naslov sastanku, obično iz pozivnice u kalendaru ili iz onoga što je rečeno, pa je naziv često samo pretpostavka. Možeš da ga ispraviš u aplikaciji ili da to kažeš asistentu: rename_meeting(). Asistent može da ispravi i beleške ukucane tokom sastanka, ali za to prvo pita, jer novi tekst zamenjuje sve beleške odjednom, a stare se nigde ne čuvaju. prepare_update_meeting() čita beleške onakve kakve jesu i kakve bi bile, a u tom trenutku se još ništa nije desilo. Tek kada kažeš da, update_meeting() ih upisuje, i to tačno tekst koji ti je prikazan. Asistent treba da pošalje ceo tekst zajedno sa izmenom, inače ostatak nestaje. Ako su se beleške u međuvremenu promenile, recimo na drugom uređaju, ništa se ne upisuje i asistent mora ponovo da pita.
Na isti način se može ispraviti i sažetak: pogrešno ime, pogrešan broj, odluka zapisana naopako. prepare_update_summary() čita sažetak onakav kakav jeste i kakav bi bio. U tom trenutku se još ništa nije desilo. Tek kada kažeš da, update_summary() upisuje tačno tekst koji ti je prikazan i zamenjuje ceo sažetak. Transkript ne može da se menja, ni preko asistenta ni u aplikaciji, jer on beleži ono što je rečeno.
Ručno ispravljen sažetak posle toga je običan sažetak i ništa ga ne štiti. Chui ponovo piše sažetak iz početka, na osnovu transkripta i beleški, u svim ovim slučajevima:
Tada se ispravka zamenjuje. Zato, ako je greška u tome ko je govorio ili šta je pisalo u belešci, ispravi baš to. Sažetak će sam pratiti minut-dva kasnije.
Nedeljni stendap je jedan sastanak koji se ponavlja, a Chui zna koji snimci su njegova ponavljanja. To zna iz serije u kalendaru kojoj snimci pripadaju, a koja se čuva uz snimak i ne traži se naknadno. get_series() daje ranija ponavljanja jednog sastanka, od najnovijeg. Tako su „šta smo dogovorili prošle nedelje?“ i „šta je ostalo otvoreno sa onog pre toga?“ jedan poziv i zatim get_meeting(), bez pretrage po naslovima koji možda nimalo ne liče jedan na drugi. Sastanak snimljen bez unosa u kalendaru ne pripada nijednoj seriji, i odgovor to kaže umesto da stigne prazan.
Sastanak može da se vrati označen kao prekinut (cut short) ili delimičan (partial). Time Chui kaže da snimak ne obuhvata ceo razgovor: aplikacija je bila suspendovana, ili je snimak obnovljen posle pada, a njegov kraj nikada nije stigao na disk. Sažmi ono što postoji kao odlomak i ne opisuj ga kao ceo sastanak. Kada ništa nije pošlo naopako, sastanak nema takvu oznaku. Uvezena datoteka je nikada nema, jer nema sata sastanka sa kojim bi se poredila.
get_coverage() postavlja to pitanje direktno i odgovara jednom rečenicom: da li snimak obuhvata sastanak, koliko je datoteka duga, koliko je sastanak trajao i koji njegov deo je dospeo u snimak. Ništa u transkriptu to ne pokazuje. Dvadeset minuta devedesetominutnog sastanka čita se potpuno isto kao ceo dvadesetominutni sastanak, pa vredi pitati pre nego što nekome kažeš šta je dogovoreno. Ovaj poziv razlikuje i „ovo niko nije izmerio“ od „ovo je u redu“, a to nisu isti odgovori.
Sažetak čine beleške utkane u ono što je rečeno. Kad se promeni jedno ili drugo, Chui ga sam ponovo napiše minut-dva kasnije. Obično je dovoljno da dođeš ime govorniku ili ispraviš belešku. U aplikaciji „Ponovo napiši sažetak“ (Write the summary again) prikazuje diskretan red dok ponovo piše (od build-a 248).
Asistent može i izričito da zatraži novi sažetak. To je jedina stvar koju ovde može da uradi koja košta pravi novac pri svakom pozivu:
Uz to se odbacuje postojeći sažetak. Zato asistent prvo pita. prepare_resummarise_meeting() čita sažetak koji bi nestao i kaže koje od dva pokretanja bi „da“ platilo, a ništa se ne troši. Tek kada kažeš da, resummarise_meeting() pokreće obradu. Ako je Chui u međuvremenu već sam ponovo napisao sažetak, to kaže i ništa ne plaća. Sastanak u kom Chui nije čuo nijednu reč ne može ponovo da se sažme. Chui to kaže, umesto da plati da dvaput sluša tišinu.
Kratka beleška, za jedan glas (od build 235). Snimak u kom je samo jedan glas, na primer misao koju izgovoriš sebi, može da se vrati kao kratka beleška: sama misao, sređena, bez naslova i imena govornika, i označena sijalicom među tvojim sastancima. Od build 236 to važi i za dugačak snimak koji traje satima, a koji je ranije mogao da se pročita kao dva glasa i obradi kao sastanak.
Sopstveni oblik, naučen jednom. Ako tvoj sastanak ima svoje naslove — nedeljni pregled je uvek brojke, rizici, molbe — reci to asistentu jednom i Chui ga od tada piše tako. Ponavljajućem sastanku oblik se uči sa set_series_shape() (sa bilo kog njegovog sastanka; get_series() ga čita), a oznaci sa summary_shape u update_label() (list_labels() ga prikazuje). Chui i dalje počinje kratkim «ukratko» i završava sledećim koracima i otvorenim pitanjima. Oblik ponavljajućeg sastanka ima prednost pred oznakom; dve oznake sa različitim oblicima prepuštaju izbor Chui-ju. Prazan oblik vraća izbor Chui-ju. Deo je plaćenog plana i traži se rečima — u aplikaciji nema dugmeta za to.
Transkript se vraća kao speaker_0, speaker_1 … Sistem razlikuje glasove, ali ne ume da im da imena. Ime možeš da daš u aplikaciji ili preko asistenta sa name_speaker(). Tada se:
Kada imenuješ glas u aplikaciji, lista počinje sa «Ja», a pored je ime tvog naloga: jedan dodir stavlja tvoje ime na taj glas tačno onako kako ga tvoj nalog piše (od build-a 249).
Glas se prepoznaje od jednog sastanka do drugog samo kod osoba koje su same sebi uključile „Prepoznavanje sopstvenog glasa“ (Own-voice recognition) (Podešavanja koja se menjaju na zahtev). Njihov glas stiže već imenovan na njihovim sopstvenim sastancima i na sastancima njihove firme na koje su bili pozvani. Svaki drugi glas počinje kao speaker_0, speaker_1 … i imenuje se ručno. Ime koje je Chui stavio na glas menja se jednim dodirom, kao i svako drugo.
Ime koje je Chui zaključio iz razgovora, a koje još niko nije potvrdio, prikazuje se kao obično ime, ali je samo pretpostavka. Dodir na njega nudi dve mogućnosti:
Preko asistenta, get_meeting() navodi takva imena pod tentative_speaker_names. Ako glasu daš isto ime, ono se potvrđuje. Poziv prepare_reject_speaker_name(), pa zatim reject_speaker_name(), uklanja ime.
Svaka greška kaže koja je i šta može da se uradi:
Većina njih nudi ponovni pokušaj.
Kada sažetak ne može da se napiše zbog greške na strani Chui servisa, Chui sam pokušava ponovo svakog sata, oko jedan dan (od build-a 230). Tako problem tokom noći ne ostavlja sastanak da čeka na „Ponovo napiši sažetak“ (Write the summary again).
Brisanje sastanka trajno uništava snimak, transkript, sažetak i beleške, svuda gde postoje. Sa njima nestaje i sve što je Chui iz tog razgovora saznao o ljudima koji su u njemu učestvovali. Svaki javni link ka sastanku prestaje da radi. Chui pamti da je sastanak obrisan, pa telefon koji još ima zvuk odbacuje ga umesto da ga kasnije ponovo otpremi. Ništa od toga ne može da se vrati.
U aplikaciji je to Obriši sastanak (Delete meeting) na dnu sastanka, ili prevlačenje reda. U oba slučaja Chui prvo pita u panelu u kom piše naziv sastanka.
I asistent to može da uradi, i pita na isti način, u dva koraka, jer je ovo jedna od stvari koje ne mogu da se ponište. prepare_delete_meeting() čita o kom sastanku je reč:
U tom trenutku se još ništa nije desilo. Tek kada kažeš da, delete_meeting() ga uništava. Taj poziv ne prima ništa osim odgovora na to pitanje, pa nema načina da se usmeri na sastanak koji ti malopre nije prikazan. Kolega koji može da otvori sastanak podeljen sa timom ne može da ga obriše. To može samo osoba koja ga je snimila.
Snimanje je zaustavljeno na pauzi i ponovo pokrenuto posle nje. Ili se snimanje prekinulo, pa je Chui ostatak sastanka sačuvao zasebno. U svakom slučaju, jedan razgovor stoji na tvom spisku kao dva reda, sa dva sažetka i dva skupa govornika.
Zamoli asistenta da ih spoji. prepare_merge_meetings() čita oba sastanka i kaže:
U tom trenutku se još ništa nije desilo. Tek kada kažeš da, merge_meetings() to radi. Taj poziv ne prima ništa osim odgovora na to pitanje.
Šta radi: dva snimka se nadovezuju jedan na drugi, redom kojim su nastali, u raniji sastanak. On zadržava svoj identifikator i datum. Kasniji sastanak se zatim briše. Chui ponovo čita spojeni snimak od početka, pa sastanak na kraju ima jedan transkript, jedan sažetak i jedan skup govornika za ceo razgovor. To traje nekoliko minuta. Beleške ukucane u bilo kom od dva sastanka se zadržavaju redom, a one iz druge polovine se pomeraju duž vremenske linije.
Zvuk se time nikada ne gubi. Svaka sekunda oba snimka nalazi se u sastanku koji ostaje i izmerena je pre nego što se drugi red uopšte dotakne. Ono što se ne vraća su reči. Oba sažetka i oba transkripta se zamenjuju, uključujući ručne ispravke u bilo kom od njih, i ništa ne vraća dva reda. Nema poništavanja.
Pre nego što to zatražiš, vredi znati još dve stvari:
Chui odbija spajanje u nekoliko slučajeva, i to kaže pre nego što odlučiš, a ne posle.
Neće spojiti dva snimka koja ne može pošteno da sastavi, na primer dve polovine snimljene sa različitim podešavanjima, ili jednu snimljenu na telefonu, a drugu na Mac računaru. Tako izbegava datoteku koja bi se puštala kao pogrešan sastanak.
Neće spojiti ni dva reda koja su počela u istom trenutku i trajala isto. To je jedan razgovor koji je u Chui stigao dvaput, a ne dve polovine jednog, pa bi spajanje dalo sastanak u kom se sve ponavlja dvaput. U tom slučaju obriši jedan od njih.
I još ne može da spoji ništa što je snimljeno u kartici pregledača. Snimak napravljen u pregledaču upisuje svoj indeks u hodu, a ne na jednom mestu na kraju, i Chui nema način da sastavi dva takva snimka. Sami snimci su u redu i puštaju se normalno, samo njihovo spajanje Chui ne može da uradi. Obe polovine sastanka koje želiš da spojiš moraju biti snimljene na telefonu, na Mac računaru ili na računaru sa sistemom Windows.
Na besplatnom nalogu Chui odbija spajanje ako važe oba uslova:
Čitanje spojenog snimka bilo bi tada prvo čitanje i čekalo bi do kraja meseca, a obe polovine bi odjednom bile zaključane. Plaćeni nalog nema takvo ograničenje. Na besplatnom nalogu sastanci mogu da se spoje sledećeg meseca. Koliko košta nalog objašnjava kakva ograničenja ima besplatni nalog.
Nigde u Chui aplikaciji ne postoji dugme za ovo. To je popravka koju primetiš dok čitaš oba sastanka, i upravo tu je mesto da je zatražiš.
Obrnut slučaj: telefon je ostao na stolu ili laptop otvoren, i tri razgovora su završila u jednom snimku. Chui je sačuvao jedan sastanak sa jednim sažetkom, koji govori o svima njima, a samim tim ni o jednom.
U build-ovima 238 i 239 snimak na telefonu se u hodu sam delio na zasebne sastanke na svakoj dugoj tišini; od build 240 «Novo snimanje» na telefonu ponovo pravi jedan snimak koji traje do «Zaustavi» (Snimanje sastanka).
Chui to obično sam primeti. Kada pročita snimak od pola sata ili duži, Chui proverava da li je to zapravo više sastanaka. Uglavnom gleda ko govori: tamo gde jedni ljudi zauvek utihnu, a drugi počnu, tu se jedan sastanak završava. Svako takvo mesto poredi sa temom razgovora, tvojim kalendarom i eventualnom pauzom. Tek kada se to poklopi, na ekranu sastanka se pojavljuje kartica „Izgleda kao 3 zasebna sastanka“ (Looks like 3 separate meetings). Na njoj je svaki deo sa svojim vremenom, naslovom i ljudima u njemu. Zatim:
Ili pitaj gde se snimak prelama. find_split_points() odgovara predlogom koji sam Chui daje, istim delovima koje pokazuje kartica, sa imenima. Navodi i duge tišine:
Taj poziv ne menja ništa što se vidi. Ako kažeš da je to jedan sastanak, keep_as_one_meeting() je isto što i „Ovo je jedan sastanak“, samo rečima.
Zatim zatraži sečenje. prepare_split_meeting() navodi svaki deo koji bi nastao: kada počinje, koliko traje i šta je prvo rečeno u njemu. U tom trenutku se još ništa nije desilo. Tek kada kažeš da, split_meeting() to radi. Taj poziv ne prima ništa osim odgovora na to pitanje.
Šta radi: zvuk se deli tačno tamo gde je rečeno, i svaki deo postaje zaseban sastanak. Prvi deo zadržava identifikator ovog sastanka, njegov datum, naslov i objavljeni link. Ostali su novi sastanci, koji počinju u trenucima kada su zaista snimljeni. Ništa se ne snima ponovo i ništa se ponovo ne transkribuje. Chui zna u kojoj sekundi je izgovorena svaka reč, pa reči iz prvog sata jednostavno ostaju sa prvim satom, a imena na glasovima ostaju tačno onakva kakva jesu. Tvoje beleške idu sa delom tokom kog su ukucane. Chui zatim piše novi sažetak za svaki deo, što traje manje od minuta.
Sečenje se ne računa u deset sastanaka mesečno na besplatnom nalogu. Ništa se ne šalje na ponovnu transkripciju, pa nema šta da se naplati. Ako je pre sečenja bilo iskorišćeno devet sastanaka, posle njega ih je i dalje devet.
Gubiš sažetak celog snimka, kao i ono što je taj sažetak upisao u podatke o ljudima u njemu. Chui te podatke ponovo piše na osnovu novih sažetaka. Ne gubi se ni zvuk ni ijedna reč. Nema poništavanja. Ponovno spajanje delova sa merge_meetings() bi uspelo, ali tada se spojeni snimak čita od nule, što traje nekoliko minuta.
Chui odbija sečenje pre nego što te bilo šta pita, u četiri slučaja:
Sastanak koji je Chui sastavio nakon što je uređaj za snimanje prestao da šalje može odmah da se iseče ili spoji sa drugim sastankom (od build 247). Ako taj uređaj kasnije pošalje ostatak snimka, deo koji Chui nije imao stiže kao zaseban sastanak.
Jedino dugme za ovo nalazi se na kartici koju Chui prikazuje kada posumnja da je snimak više sastanaka. Sečenje bilo gde drugo traži se rečima.