De la apăsarea pe stop până la rezumatul scris: etapele, notițele și ce poate merge prost.
Când apeși pe stop, înregistrarea se încheie și pornește tot restul. Sunetul ajunge pe serverele Chui, unde este transcris și apoi rezumat. Pe telefon, înregistrarea e deja salvată pe disc înainte de toate acestea. Dacă nu există conexiune, așteaptă și se încarcă atunci când apare. Nimic nu se pierde din cauza unei rețele slabe și nu trebuie să apeși nimic.
Pe Mac sau Windows, o înregistrare nu se pierde dacă Chui s-a închis cât încă se oprea: data viitoare când deschizi Chui, o găsește și o încarcă în întâlnirea pe care ai pornit-o, inclusiv cu notițele (din build 236).
O întâlnire trece prin ele, iar aplicația arată unde se află:
O notificare te anunță când textul și rezumatul unei întâlniri sunt gata. Nu conține nici titlul, nici conținutul.
Chui nu este un produs de transcriere. Ideea e să notezi două rânduri în timpul întâlnirii, de pildă un nume, un număr sau ce ai promis. Chui le îmbină apoi cu ce s-a spus de fapt. Rezumatul se scrie din ambele. Rândurile tastate îl orientează, dar nu apar în el cuvânt cu cuvânt. Notițele pot fi scrise sau corectate și după întâlnire.
list_meetings() dă lista: id, titlu, dată, durată, stare și nimic altceva. get_meeting() dă rezumatul unei întâlniri, notițele ei, durata și numărul de vorbitori detectați. De obicei, aici e locul potrivit să te oprești. Transcrierea este o citire separată, mult mai costisitoare: vezi Cum găsești ce s-a spus.
Întâlnirea în care ești apare și ea în listă, marcată in_progress. Astfel, un asistent întrebat „în ce sunt acum?” poate răspunde. Transcrierea și rezumatul nu există până nu ajunge înregistrarea, pentru că Chui transcrie o întâlnire după ce se încheie. Nu există nici durată finală. În schimb, primești de cât timp durează întâlnirea, când a auzit Chui ultima oară sunet de la dispozitiv și notițele tastate în ea, pe măsură ce sunt tastate. Un asistent poate citi aceste notițe, poate adăuga la ele și poate spune că întâlnirea nu s-a terminat. Nu ar trebui să o raporteze ca goală sau eșuată, deși din afară exact așa arată piesele care lipsesc.
Înseamnă „neterminată”, nu „are loc acum”, și merită să știi diferența. Chui află că o înregistrare s-a încheiat abia când îi spune dispozitivul. Văzute de pe server, trei situații destul de diferite arată identic:
De aceea, asistentului i se spune să nu afirme că microfonul e pornit.
În schimb, primește o singură informație, limitată. Cât timp se înregistrează o întâlnire, telefonul trimite o bucată de sunet la fiecare nouăzeci de secunde. Astfel, Chui știe cu cât timp în urmă a sosit cea mai nouă bucată din acea înregistrare și nimic în plus. Un interval lung înseamnă că nu a mai sosit sunet nou. Înregistrarea poate fi pusă pe pauză, telefonul poate fi offline sau întâlnirea s-ar fi putut încheia fără ca Chui să fie anunțat. Nici un interval scurt nu dovedește că întâlnirea e în desfășurare. Un telefon care trimite o înregistrare mai veche printr-o conexiune nouă arată la fel de recent. Chui transmite numărul fără să numească o cauză. Acolo unde nu a putut verifica deloc, nu spune nimic, în loc să ghicească.
Chui îi dă singur un titlu unei întâlniri, de obicei din invitația din calendar sau din ce s-a spus. De aceea, numele e adesea o presupunere. Îl poți corecta în aplicație sau îi poți spune unui asistent să-l corecteze cu rename_meeting().
Și notițele tastate în timpul întâlnirii pot fi corectate de un asistent, dar mai întâi ești întrebat. Textul nou le înlocuiește pe toate deodată, iar cele vechi nu sunt păstrate nicăieri. prepare_update_meeting() îți arată notițele așa cum sunt și așa cum ar deveni, iar în acel moment nu s-a întâmplat încă nimic. Abia după ce spui da, update_meeting() le salvează, exact în forma care ți-a fost arătată. Asistentul ar trebui să trimită tot textul, cu modificarea inclusă, altfel restul se pierde. Dacă notițele s-au schimbat între timp, de exemplu pe alt dispozitiv, nu se salvează nimic și trebuie să întrebe din nou.
Rezumatul poate fi corectat la fel, de pildă un nume greșit, un număr greșit sau o decizie notată invers. prepare_update_summary() îți arată rezumatul așa cum este și așa cum ar deveni, iar în acel moment nu s-a întâmplat încă nimic. Abia după ce spui da, update_summary() salvează exact textul care ți-a fost arătat și înlocuiește rezumatul în întregime. Transcrierea nu poate fi editată, nici de un asistent, nici în aplicație. Ea este ceea ce s-a spus.
Un rezumat corectat de mână devine apoi un rezumat obișnuit și nimic nu îl protejează. Chui scrie rezumatul din nou, din transcriere și notițe, iar corectura este înlocuită dacă:
Așa că, dacă greșeala ține de cine a vorbit sau de ce scria într-o notiță, corectează direct asta. Rezumatul se actualizează singur un minut sau două mai târziu.
Un stand-up săptămânal e aceeași întâlnire care se repetă, iar Chui știe care înregistrări fac parte din ea. Informația vine din seria din calendar căreia îi aparțin, salvată odată cu înregistrarea, nu căutată ulterior. get_series() dă edițiile anterioare ale unei întâlniri, cele mai noi mai întâi. Așa, întrebări ca „ce am stabilit săptămâna trecută?” sau „ce a rămas nerezolvat de data dinainte?” se rezolvă cu un singur apel, urmat de un get_meeting(). Nu mai e nevoie de o căutare prin titluri care s-ar putea să nu semene între ele. O întâlnire înregistrată fără intrare în calendar nu aparține niciunei serii, iar răspunsul spune asta, în loc să vină gol.
O întâlnire poate apărea marcată întreruptă (cut short) sau parțială (partial). Așa îți spune Chui că înregistrarea nu acoperă toată conversația. Fie aplicația a fost suspendată, fie înregistrarea a fost refăcută după o cădere și finalul ei n-a ajuns niciodată pe disc. Rezumă ce există ca fragment și nu îl descrie ca întreaga întâlnire. Când nu a mers nimic prost, întâlnirea nu are un astfel de marcaj. Un fișier importat nu îl are niciodată, pentru că nu există un ceas al întâlnirii cu care să fie comparat.
get_coverage() pune această întrebare direct și răspunde într-o singură propoziție: dacă înregistrarea acoperă întâlnirea, cât de lung e fișierul, cât a durat întâlnirea și ce parte din ea a fost înregistrată. Transcrierea nu arată asta. Douăzeci de minute dintr-o întâlnire de nouăzeci de minute se citesc exact ca o întâlnire întreagă de douăzeci de minute. Așa că merită să întrebi înainte să-i spui cuiva ce s-a stabilit. Funcția face și diferența între „nimeni n-a măsurat asta” și „totul e în regulă”, care nu înseamnă același lucru.
Rezumatul îmbină notițele cu ce s-a spus. Când se schimbă oricare dintre ele, Chui îl rescrie singur un minut sau două mai târziu. De obicei ajunge să numești un vorbitor sau să corectezi o notiță. În aplicație, „Scrie din nou rezumatul” (Write the summary again) afișează un rând discret cât timp îl rescrie (din build 248).
Un asistent poate cere și direct un rezumat nou. Este singura acțiune de aici care costă bani reali la fiecare apel. Presupune o trecere a modelului lingvistic peste toată întâlnirea. Pentru o întâlnire care n-a fost transcrisă niciodată, se adaugă și o trecere de transcriere peste înregistrare. În plus, rezumatul existent este șters.
De aceea ești întrebat mai întâi. prepare_resummarise_meeting() îți arată rezumatul care ar dispărea și spune care dintre cele două procesări ar porni un „da”. Până aici nu se cheltuie nimic. Abia după ce spui da, resummarise_meeting() pornește procesarea. Dacă între timp Chui a rescris deja singur rezumatul, îți spune asta și nu te costă nimic. O întâlnire în care Chui n-a auzit niciun cuvânt nu poate fi rezumată din nou. Chui îți spune asta, în loc să plătească pentru a asculta liniștea de două ori.
Dacă Chui a înțeles greșit tipul înregistrării, schimbă-l. La finalul unui rezumat, un buton arată drept ce tip de înregistrare a luat-o Chui, de exemplu o notiță, un interviu sau o întâlnire (din build 248). Alege alt tip și rezumatul este scris din nou în forma aceea, cu cel vechi estompat până sosește cel nou; același buton îi poate și da alegerea înapoi lui Chui. În scris, dacă îi dai shape lui prepare_resummarise_meeting(), rezumatul este scris din nou în forma pe care o numești și se păstrează pentru acea întâlnire; auto îi dă alegerea înapoi lui Chui.
O notiță scurtă, pentru o singură voce (din build 235). O înregistrare cu o singură voce, de pildă un gând pe care ți-l spui ție, poate primi în schimb o notiță scurtă: gândul în sine, pus în ordine, fără titluri sau nume de vorbitori, marcat cu un bec în întâlnirile tale. Din build 236, asta e valabil și pentru una lungă, de ore întregi, care înainte putea fi citită ca două voci și tratată ca o întâlnire.
O formă a ta, învățată o dată. Dacă o ședință a ta are propriile titluri — revizuirea săptămânală e mereu cifre, riscuri, cereri — spune-o o dată unui asistent și Chui o scrie așa de atunci încolo. Unei ședințe recurente i se învață forma cu set_series_shape() (din oricare ședință a ei; get_series() o citește), unei etichete cu summary_shape din update_label() (list_labels() o arată). Chui începe în continuare cu un scurt «pe scurt» și încheie cu pașii următori și întrebările deschise. Forma ședinței recurente are prioritate față de cea a etichetei; două etichete cu forme diferite lasă alegerea lui Chui. O formă goală îi dă alegerea înapoi lui Chui. Face parte din planul plătit și se cere în cuvinte — în aplicație nu există buton pentru asta.
Transcrierea vine cu etichete precum speaker_0, speaker_1 … Motorul deosebește vocile, dar nu le poate numi. Poți numi o voce în aplicație sau printr-un asistent, cu name_speaker(). Numele înlocuiește apoi eticheta peste tot unde e citită acea întâlnire. Persoana este adăugată în listă, ca întâlnirea următoare să o propună, iar rezumatul este rescris în jurul numelui.
Când numești o voce în aplicație, lista începe cu „Eu” (Me), cu numele contului tău alături: o atingere pune numele tău pe acea voce exact cum e scris în cont (din build 249).
Recunoașterea unei voci de la o întâlnire la alta funcționează doar pentru persoanele care și-au activat „Recunoașterea propriei voci” (Own-voice recognition) (Setări, schimbate la cerere). Vocea lor apare deja cu nume în propriile întâlniri și în întâlnirile companiei la care au fost invitate. Orice altă voce pornește ca speaker_0, speaker_1 … și se numește manual. Un nume pus de Chui unei voci se schimbă cu o atingere, ca oricare altul.
Uneori, Chui deduce un nume din conversație, dar nimeni nu l-a confirmat încă. Acest nume apare ca unul obișnuit, însă este doar o presupunere. Dacă îl atingi, poți alege „Da, e …” (Yes, this is …), ca să-l faci permanent, sau „Nu e …” (Not …), ca să-l elimini. Printr-un asistent, get_meeting() listează astfel de nume în tentative_speaker_names. Dacă numești vocea cu același nume, îl confirmi. Ca să-l elimini, folosești prepare_reject_speaker_name(), apoi reject_speaker_name().
Fiecare eroare spune ce s-a întâmplat și ce se poate face:
Majoritatea erorilor oferă opțiunea de a încerca din nou.
Când un rezumat nu poate fi scris din cauza unei defecțiuni din partea Chui, Chui încearcă singur din nou la fiecare oră, timp de aproximativ o zi (din build 230). Astfel, o problemă apărută peste noapte nu lasă întâlnirea să aștepte după „Scrie din nou rezumatul” (Write the summary again).
Ștergerea unei întâlniri distruge definitiv înregistrarea, transcrierea, rezumatul și notițele, oriunde există. Se șterge și tot ce aflase Chui din acea conversație despre persoanele care au participat. Orice link public către întâlnire nu mai funcționează. Chui ține minte că întâlnirea a fost ștearsă. Astfel, un telefon care încă are sunetul îl aruncă, în loc să-l încarce din nou mai târziu. Nimic din toate acestea nu mai poate fi recuperat.
În aplicație, folosește Șterge întâlnirea (Delete meeting) din partea de jos a întâlnirii sau glisează pe rând. În ambele cazuri, Chui cere mai întâi confirmarea într-un panou care afișează numele întâlnirii.
Și un asistent poate șterge o întâlnire, tot cu confirmare și în doi pași, pentru că acțiunea nu poate fi anulată. prepare_delete_meeting() îți arată despre ce întâlnire e vorba: cum se numește, când a avut loc, cât a durat, dacă ai tastat notițe în ea și dacă o citește cineva din afara Chui printr-un link. În acel moment nu s-a întâmplat încă nimic. Abia după ce spui da, delete_meeting() o distruge. Funcția acceptă doar răspunsul la acea întrebare, deci nu poate fi folosită pe o întâlnire care nu ți-a fost arătată chiar atunci. Un coleg care poate deschide o întâlnire partajată cu echipa nu o poate șterge. Doar persoana care a înregistrat-o poate face asta.
Poate ai oprit înregistrarea în pauză și ai pornit-o din nou după aceea. Sau înregistrarea s-a oprit brusc și Chui a salvat separat restul întâlnirii. Oricum ar fi, aceeași conversație apare în lista ta pe două rânduri, cu două rezumate și două seturi de vorbitori.
Cere-i unui asistent să le unească. prepare_merge_meetings() îți arată ambele întâlniri: care rămâne, cât durează fiecare, cât a durat pauza dintre ele și cât ar dura înregistrarea unită. În acel moment nu s-a întâmplat încă nimic. Abia după ce spui da, merge_meetings() face unirea. Funcția acceptă doar răspunsul la acea întrebare.
Ce face: cele două înregistrări sunt puse una după alta, în ordinea în care au fost făcute, în întâlnirea mai veche. Aceasta își păstrează id-ul și data. Întâlnirea mai nouă este apoi ștearsă. Chui citește din nou înregistrarea unită de la început. Astfel, întâlnirea ajunge să aibă o singură transcriere, un singur rezumat și un singur set de vorbitori pentru toată conversația. Procesul durează câteva minute. Notițele tastate în oricare dintre întâlniri se păstrează, în ordine, iar cele din a doua parte sunt mutate corespunzător pe axa timpului.
Unirea nu pierde niciodată sunet. Fiecare secundă din ambele înregistrări este verificată în întâlnirea care rămâne înainte ca celălalt rând să fie atins. Ce nu se păstrează sunt textele. Ambele rezumate și ambele transcrieri sunt înlocuite, inclusiv corecturile făcute de mână. Cele două rânduri nu mai pot fi refăcute. Unirea nu poate fi anulată.
Încă două lucruri de știut înainte să ceri unirea:
Există trei situații în care Chui refuză unirea și îți spune asta înainte să decizi, nu după.
Înregistrări incompatibile. Chui nu unește două înregistrări pe care nu le poate îmbina corect, de exemplu două părți înregistrate cu setări diferite sau una făcută pe telefon și una pe Mac. Altfel, ar rezulta un fișier care se redă greșit.
Aceeași conversație de două ori. Chui nu unește două rânduri care au început în același moment și au durat la fel. Este o singură conversație care a ajuns de două ori la Chui, nu două părți ale aceleiași întâlniri. Unirea lor ar da o întâlnire care repetă totul. În acest caz, șterge unul dintre rânduri.
Înregistrări din browser. Deocamdată, Chui nu poate uni nimic înregistrat într-o filă de browser. O înregistrare făcută în browser își scrie indexul pe parcurs, nu într-un singur loc la final, iar Chui nu poate îmbina două astfel de înregistrări. Înregistrările în sine sunt în regulă și se redau normal, doar unirea lor nu e posibilă. Ca să le poți uni, ambele părți trebuie înregistrate pe telefon, pe Mac sau pe un PC cu Windows.
Pe un cont gratuit mai există o limită. Poate întâlnirea care ar rămâne nu a fost încă citită, de exemplu pentru că ceva a mers prost. Dacă în plus cele zece întâlniri ale lunii sunt deja folosite, Chui refuză unirea. Citirea înregistrării unite ar fi prima citire, așa că ar fi amânată până la sfârșitul lunii, iar ambele părți ar rămâne blocate. Un cont plătit nu are această limită. Altfel, întâlnirile pot fi unite luna viitoare. Cât costă un cont explică ce limite are un cont gratuit.
Nu există niciun buton pentru unire în Chui. O astfel de problemă se observă când citești cele două întâlniri, iar atunci e momentul s-o ceri.
Situația inversă: ai lăsat telefonul pe masă sau laptopul deschis, iar trei conversații au ajuns într-o singură înregistrare. Chui a salvat o singură întâlnire, cu un singur rezumat despre toate trei, deci practic despre niciuna.
În build-urile 238 și 239, o înregistrare pe telefon se împărțea singură, pe parcurs, în întâlniri separate la fiecare pauză lungă de liniște; din build 240, «Înregistrare nouă» pe telefon face din nou o singură înregistrare, care merge până la «Oprește» (Înregistrarea unei întâlniri).
De obicei, Chui observă singur. După ce citește o înregistrare de o jumătate de oră sau mai mult, verifică dacă sunt de fapt mai multe întâlniri. Se uită mai ales la cine vorbește: acolo unde unii tac definitiv și alții încep, se termină o întâlnire. Fiecare astfel de punct este comparat cu subiectul discuției, cu calendarul tău și cu eventualele pauze.
Doar când aceste semne se potrivesc, pe ecranul întâlnirii apare un card: „Par să fie întâlniri separate: 3” (Looks like 3 separate meetings). Cardul arată fiecare bucată, cu ora, un titlu și persoanele din ea. Debifează o bucată ca să rămână unită cu cea vecină. „Împarte în N” (Split into N) taie înregistrarea. „E o singură întâlnire” (It’s one meeting) ascunde cardul definitiv.
Sau întreabă unde se poate tăia. find_split_points() răspunde cu propunerea lui Chui, adică aceleași bucăți pe care le arată cardul, cu numele persoanelor. Listează și pauzele lungi: unde apare fiecare în înregistrare, cât a durat, ultimul lucru spus înainte și primul spus după. Funcția nu schimbă nimic din ce vezi. Dacă spui că e o singură întâlnire, keep_as_one_meeting() are același efect ca butonul „E o singură întâlnire”.
Apoi cere tăierea. prepare_split_meeting() arată fiecare bucată care ar rezulta: când începe, cât durează și primul lucru spus în ea. În acel moment nu s-a întâmplat încă nimic. Abia după ce spui da, split_meeting() face tăierea. Funcția acceptă doar răspunsul la acea întrebare.
Ce face: sunetul e împărțit exact unde ai cerut, iar fiecare bucată devine o întâlnire separată. Prima bucată păstrează id-ul acestei întâlniri, data, titlul și linkul publicat. Celelalte devin întâlniri noi, care încep la orele la care au fost înregistrate de fapt.
Nimic nu se reînregistrează și nimic nu se transcrie din nou. Chui știe secunda exactă a fiecărui cuvânt. Cuvintele din prima oră rămân în prima bucată, iar numele vocilor se păstrează exact cum sunt. Notițele tale ajung în bucata în timpul căreia le-ai tastat. Apoi Chui scrie un rezumat nou pentru fiecare bucată, în mai puțin de un minut.
Tăierea nu consumă nimic din cele zece întâlniri pe lună ale unui cont gratuit. Nu se trimite nimic la transcriere din nou, deci nu se contorizează nimic. Dacă foloseai nouă întâlniri înainte de tăiere, rămâi tot la nouă.
Ce pierzi este rezumatul întregii înregistrări. Se pierde și ce adăugase acel rezumat la informațiile despre participanți, dar Chui le reface din noile rezumate. Sunetul și cuvintele nu se pierd. Tăierea nu poate fi anulată. Poți reuni bucățile cu merge_meetings(), dar înregistrarea unită va fi citită de la zero, în câteva minute.
Chui refuză tăierea din start, fără să te întrebe ceva, în patru cazuri:
O întâlnire pe care Chui a asamblat-o după ce dispozitivul care înregistra a încetat să mai trimită poate fi tăiată sau unită cu o altă întâlnire imediat (din build 247). Dacă acel dispozitiv trimite mai târziu restul înregistrării, partea pe care Chui nu o avea ajunge ca întâlnire separată.
Singurul buton pentru asta e pe cardul afișat când Chui bănuiește că o înregistrare conține mai multe întâlniri; orice altă tăiere trebuie cerută în cuvinte.