Co się dzieje po zatrzymaniu

Od zatrzymania do gotowego podsumowania: etapy, notatki i co może pójść nie tak.

Zatrzymanie kończy nagrywanie i uruchamia całą resztę. Dźwięk trafia na serwery Chui, powstaje z niego transkrypcja, a potem podsumowanie. Na telefonie nagranie jest już bezpieczne na dysku, zanim cokolwiek z tego się wydarzy: jeśli nie ma połączenia, czeka i wysyła się, gdy połączenie się pojawi. Nic nie ginie przez słabą sieć i nie trzeba niczego naciskać.

Na Macu lub Windowsie nagranie nie przepada, jeśli Chui zamknęło się, gdy wciąż się zatrzymywało: przy następnym uruchomieniu Chui znajduje to nagranie i wysyła je do spotkania, które zacząłeś, razem z notatkami (od wersji 236).

Etapy, po kolei

Spotkanie przechodzi przez nie, a aplikacja pokazuje, na którym jest:

Powiadomienie informuje, kiedy tekst i podsumowanie spotkania są gotowe. Nie zawiera tytułu ani treści.

Notatki są najważniejsze

Chui nie jest produktem do transkrypcji. Zamysł jest taki, że w trakcie spotkania zapisujesz dwie linijki — imię, liczbę, twoją obietnicę — a Chui łączy je z tym, co faktycznie zostało powiedziane. Podsumowanie powstaje z obu; wpisane linijki nadają mu kierunek, a nie trafiają do niego dosłownie. Notatki można też napisać albo poprawić po spotkaniu.

Co zawiera spotkanie

list_meetings() daje listę: identyfikator, tytuł, datę, czas trwania, stan i nic więcej. get_meeting() daje podsumowanie jednego spotkania, jego notatki, czas trwania i liczbę wykrytych osób mówiących — zwykle to właściwe miejsce, żeby się zatrzymać. Transkrypcja to osobny, znacznie droższy odczyt: zobacz Jak znaleźć to, co padło.

Spotkanie, które się nie skończyło

Spotkanie, w którym właśnie jesteś, też jest na tej liście, oznaczone jako in_progress, więc asystent zapytany «w czym jestem w tej chwili?» może na to odpowiedzieć. Nie ma transkrypcji ani podsumowania, dopóki nagranie nie dotrze — Chui robi transkrypcję spotkania po jego zakończeniu — ani ostatecznej długości, więc w zamian wraca to, jak długo trwa, kiedy Chui ostatnio usłyszało dźwięk z urządzenia, i notatki wpisywane do niego na bieżąco, w miarę pisania. Asystent może przeczytać te notatki, dopisać coś do nich i powiedzieć, że spotkanie się nie skończyło; nie powinien zgłaszać go jako pustego ani nieudanego, choć z zewnątrz tak właśnie wyglądają te brakujące elementy.

Oznacza to «niezakończone», a nie «trwa teraz», i warto znać tę różnicę. Chui dowiaduje się, że nagranie się skończyło, gdy urządzenie mu to powie, a trzy zupełnie różne rzeczy wyglądają z serwera identycznie: rozmowa, która właśnie trwa; taka, która skończyła się minutę temu, a jej dźwięk wciąż się wysyła; i telefon, który padł w połowie spotkania i już nigdy nic nie powie. Dlatego asystent ma polecenie, żeby nie twierdzić, że mikrofon jest włączony.

W zamian dostaje jeden wąski fakt. Podczas nagrywania spotkania telefon co dziewięćdziesiąt sekund wysyła kawałek dźwięku, więc Chui wie, ile czasu temu dotarł najnowszy kawałek tego nagrania — i nic poza tym. Długa przerwa oznacza, że nie dotarł do niego żaden nowy dźwięk: nagrywanie może być wstrzymane, telefon może być offline albo spotkanie mogło się skończyć, a Chui nikt o tym nie powiadomił. Krótka przerwa też nie dowodzi, że trwa na żywo, bo telefon, który przez nowe połączenie nadrabia starsze nagranie, wygląda równie świeżo. Chui przekazuje liczbę, zamiast wskazywać przyczynę, a tam, gdzie w ogóle nie mogło tego sprawdzić, nic nie mówi, zamiast zgadywać.

Chui samo nadaje spotkaniu tytuł, zwykle z zaproszenia w kalendarzu albo z tego, co zostało powiedziane, więc nazwa jest często tylko domysłem. Można ją poprawić w aplikacji albo mówiąc o tym asystentowi — rename_meeting(). Notatki wpisane w trakcie spotkania asystent też może poprawić, i o to najpierw pyta, bo nowy tekst zastępuje je wszystkie naraz, a stare nie są nigdzie przechowywane. prepare_update_meeting() odczytuje notatki takie, jakie są, i takie, jakie byłyby, a w tym momencie nic się jeszcze nie stało; dopiero gdy powiesz tak, update_meeting() je zapisuje, i zapisuje dokładnie ten tekst, który ci pokazano. Asystent powinien wysłać cały tekst ze zmianą, inaczej reszta przepadnie. Jeśli notatki w międzyczasie się zmieniły — na przykład na innym urządzeniu — nic nie zostaje zapisane i trzeba zapytać jeszcze raz.

Podsumowanie można poprawić tak samo — złe imię, zła liczba, decyzja zapisana na odwrót. prepare_update_summary() odczytuje podsumowanie takie, jakie jest, i takie, jakie byłoby, w tym momencie nic się jeszcze nie stało, i dopiero gdy powiesz tak, update_summary() zapisuje dokładnie ten tekst, który ci pokazano, zastępując całość. Transkrypcji nie da się edytować — ani przez asystenta, ani w aplikacji; to jest to, co zostało powiedziane.

Podsumowanie poprawione ręcznie jest potem zwykłym podsumowaniem i nic go nie chroni: nazwanie osoby mówiącej, zmiana notatek, scalenie lub rozdzielenie osoby w spotkaniu, zmiana imienia którejś z nich albo prośba o świeże podsumowanie sprawia, że Chui pisze podsumowanie od nowa z transkrypcji i notatek, a poprawka zostaje zastąpiona. Więc gdy błąd dotyczy tego, kto mówił, albo tego, co było w notatce, popraw właśnie to — podsumowanie samo podąży za tym minutę lub dwie później.

Co mówiliśmy ostatnio

Cotygodniowy stand-up to jedno spotkanie, które się powtarza, a Chui wie, które nagrania są jego kolejnymi odsłonami — z serii w kalendarzu, do której należą, zapisanej przy nagraniu, a nie wyszukiwanej później. get_series() daje wcześniejsze odsłony jednego spotkania, od najnowszej, więc «na co się umówiliśmy w zeszłym tygodniu?» i «co zostało nierozstrzygnięte na poprzednim?» to jedno wywołanie, a potem get_meeting(), zamiast przeszukiwania tytułów, które mogą nie być do siebie podobne. Spotkanie nagrane bez wpisu w kalendarzu nie należy do żadnej serii, a odpowiedź to mówi, zamiast wracać pusta.

Gdy nagrała się tylko część

Spotkanie może wrócić oznaczone jako ucięte (cut short) albo częściowe (partial). W ten sposób Chui mówi, że nagranie nie obejmuje całej rozmowy — aplikacja została wstrzymana albo nagranie odbudowano po awarii, a jego koniec nigdy nie trafił na dysk. Podsumuj to, co jest, jako fragment; nie opisuj tego jako całego spotkania. Spotkanie nie ma takiego oznaczenia, gdy nic nie poszło źle, a importowany plik nigdy go nie ma, bo nie ma zegara spotkania, z którym można by go porównać.

get_coverage() zadaje to pytanie wprost i odpowiada jednym zdaniem: czy nagranie obejmuje spotkanie, jak długi jest plik, jak długo trwało spotkanie i jaka jego część trafiła do nagrania. Nic w transkrypcji tego nie pokazuje — dwadzieścia minut z dziewięćdziesięciominutowego spotkania czyta się dokładnie tak jak całe dwudziestominutowe — więc warto zapytać, zanim powie się komuś, co ustalono. Odróżnia też «nikt tego nie zmierzył» od «wszystko w porządku», a to nie jest ta sama odpowiedź.

Ponowne pisanie podsumowania

Podsumowanie to te notatki wplecione w to, co zostało powiedziane, więc gdy zmienia się jedno albo drugie, Chui samo pisze je od nowa minutę lub dwie później — nazwanie osoby mówiącej albo poprawienie notatki zwykle wystarcza. W aplikacji «Napisz podsumowanie od nowa» (Write the summary again) pokazuje dyskretną linijkę, gdy podsumowanie powstaje od nowa (od wersji 248). Asystent może poprosić o to wprost, i to jedyna rzecz, jaką może tu zrobić, która kosztuje prawdziwe pieniądze przy każdym wywołaniu: przebieg modelu językowego po całym spotkaniu, a dla spotkania, które nigdy nie dostało transkrypcji, także przebieg transkrypcji po nagraniu. Do tego wyrzuca istniejące podsumowanie. Dlatego najpierw o to pyta: prepare_resummarise_meeting() odczytuje podsumowanie, które by zniknęło, i mówi, który z dwóch przebiegów kupiłoby «tak», i nic nie jest wydawane; dopiero gdy powiesz tak, resummarise_meeting() uruchamia przebieg. Jeśli Chui w międzyczasie samo już napisało podsumowanie od nowa, mówi o tym i niczego nie kupuje. Spotkania, w którym Chui nie usłyszało żadnych słów, nie da się podsumować ponownie, i Chui to mówi, zamiast płacić za dwukrotne słuchanie ciszy.

Krótka notatka, dla jednego głosu (od wersji 235). Nagranie, w którym jest tylko jeden głos, na przykład myśl wypowiedziana do siebie, może zamiast tego wrócić jako krótka notatka: sama myśl, uporządkowana, bez nagłówków i imion mówców, oznaczona na liście spotkań żarówką. Od wersji 236 dotyczy to też długiego nagrania, trwającego godzinami, które wcześniej mogło zostać odczytane jako dwa głosy i potraktowane jak spotkanie.

Własny kształt, nauczony raz. Jeśli twoje spotkanie ma własne nagłówki — przegląd tygodnia to zawsze liczby, ryzyka, prośby — powiedz to asystentowi raz, a Chui będzie je tak pisać. Spotkanie cykliczne uczy się go przez set_series_shape() (z dowolnego jego spotkania; get_series() go odczytuje), etykieta przez summary_shape w update_label() (list_labels() go pokazuje). Chui nadal zaczyna od krótkiego «w skrócie» i kończy następnymi krokami i otwartymi pytaniami. Kształt spotkania cyklicznego ma pierwszeństwo przed etykietą; dwie etykiety o różnych kształtach zostawiają wybór Chui. Pusty kształt oddaje wybór Chui. To część płatnego planu i prosi się o to słowami — w aplikacji nie ma na to przycisku.

Kto mówił

Transkrypcja wraca jako speaker_0, speaker_1 … — silnik rozróżnia głosy, ale nie potrafi ich nazwać. Nazwanie jednego w aplikacji albo przez asystenta za pomocą name_speaker() wstawia imię w miejsce oznaczenia wszędzie, gdzie to spotkanie jest czytane, dodaje osobę do listy, żeby następne spotkanie ją podpowiedziało, i przepisuje podsumowanie wokół tego imienia.

Gdy nazywasz głos w aplikacji, lista zaczyna się od «Ja» (Me), z imieniem z twojego konta obok: jedno dotknięcie podpisuje ten głos twoim imieniem dokładnie tak, jak jest zapisane na koncie (od wersji 249).

Rozpoznawanie głosu z jednego spotkania na drugie działa tylko dla osób, które same włączyły u siebie «Rozpoznawanie własnego głosu» (Own-voice recognition) (Ustawienia, zmieniane na prośbę). Ich głos przychodzi już nazwany w ich własnych spotkaniach i w spotkaniach ich firmy, na które byli zaproszeni; każdy inny głos zaczyna jako speaker_0, speaker_1 … i jest nazywany ręcznie. Imię, które Chui nadało głosowi, zmienia się jednym dotknięciem, jak każde inne.

Imię, które Chui wywnioskowało z rozmowy i którego nikt jeszcze nie potwierdził, wyświetla się jak zwykłe imię, które jest tylko domysłem. Dotknięcie go proponuje «Tak, to …» (Yes, this is …), co czyni je trwałym, i «To nie …» (Not …), co je zdejmuje. Przez asystenta get_meeting() wymienia takie imiona w tentative_speaker_names; nazwanie głosu tym samym imieniem je potwierdza, a prepare_reject_speaker_name(), a potem reject_speaker_name() je zdejmuje.

Gdy coś się nie uda

Każdy błąd mówi, który to jest i co można zrobić: plik został ucięty, zanim się zapisał; dźwięk nigdy nie dotarł; formatu nie da się odczytać; transkrypcji zabrakło czasu (nagranie jest bezpieczne — spróbuj później); podsumowanie nie powstało, ale transkrypcja jest. Większość z nich proponuje ponowną próbę.

Gdy podsumowanie nie może powstać z powodu błędu po stronie Chui, Chui samo ponawia próbę co godzinę przez mniej więcej dobę (od wersji 230), więc problem w nocy nie zostawia spotkania czekającego na «Napisz podsumowanie od nowa» (Write the summary again).

Usuwanie

Usunięcie spotkania niszczy nagranie, transkrypcję, podsumowanie i notatki, wszędzie, gdzie istnieją, na zawsze — a razem z nimi wszystko, czego Chui dowiedziało się z tej rozmowy o osobach, które w niej brały udział. Każdy publiczny link do niego przestaje działać. Chui pamięta, że spotkanie zostało usunięte, więc telefon, który wciąż ma nagranie, wyrzuca je, zamiast później wysłać je ponownie. Nic nie przywróci niczego z tego.

W aplikacji jest to Usuń spotkanie (Delete meeting) na dole spotkania albo przesunięcie wiersza, i w obu przypadkach Chui najpierw pyta w panelu, który podaje nazwę spotkania.

Asystent też może to zrobić i pyta o to w ten sam sposób — w dwóch krokach, bo to jedna z rzeczy, których nie da się cofnąć. prepare_delete_meeting() odczytuje, o które spotkanie chodzi: jak się nazywa, kiedy było, jak długo trwało, czy wpisano w nim notatki i czy ktoś spoza Chui czyta je przez link. W tym momencie nic się jeszcze nie stało. Dopiero gdy powiesz tak, delete_meeting() je niszczy, i nie przyjmuje niczego poza odpowiedzią na to pytanie — nie da się go wycelować w spotkanie, którego przed chwilą ci nie pokazano. Kolega, który może otworzyć spotkanie udostępnione zespołowi, nie może go usunąć; może to zrobić tylko osoba, która je nagrała.

Gdy jedna rozmowa skończyła się jako dwa spotkania

Zatrzymano nagrywanie w przerwie i włączono je ponownie po niej albo nagranie padło i Chui zapisało resztę spotkania osobno. Tak czy inaczej jedna rozmowa siedzi na twojej liście jako dwa wiersze, z dwoma podsumowaniami i dwoma zestawami osób mówiących.

Poproś asystenta, żeby je połączył. prepare_merge_meetings() odczytuje oba — które zostaje, jak długie jest każde, jak długa była przerwa między nimi i jak długie byłoby połączone nagranie — a w tym momencie nic się jeszcze nie stało. Dopiero gdy powiesz tak, merge_meetings() to robi, i nie przyjmuje niczego poza odpowiedzią na to pytanie.

Co robi: dwa nagrania zostają ustawione jedno za drugim, w kolejności, w jakiej powstały, we wcześniejszym spotkaniu, które zachowuje swój identyfikator i datę. Późniejsze spotkanie zostaje potem usunięte. Chui czyta połączone nagranie od nowa od początku, więc spotkanie kończy z jedną transkrypcją, jednym podsumowaniem i jednym zestawem osób mówiących obejmującym całą rozmowę — to trwa kilka minut. Notatki wpisane w którymkolwiek spotkaniu zostają zachowane, w kolejności, a te z drugiej połowy przesunięte odpowiednio na osi czasu.

Nigdy nie traci się przez to dźwięku. Każda sekunda obu nagrań jest w spotkaniu, które zostaje, zmierzona, zanim drugi wiersz zostanie ruszony. Nie wracają słowa: oba podsumowania i obie transkrypcje zostają zastąpione, łącznie z ręcznymi poprawkami w którymkolwiek z nich, i nic nie przywraca dwóch wierszy. Nie ma cofania.

Jeszcze dwie rzeczy, które warto wiedzieć, zanim o to poprosisz. Jeśli obie połowy widzą różne osoby — jedną udostępniono firmie, drugą zachowano dla siebie — połączone spotkanie widzą ci, którzy mogli widzieć bardziej prywatną z nich, więc nic, co zachowano dla siebie, nie trafia przed czyjeś oczy przez połączenie. A jeśli którakolwiek połowa była powiązana z wpisem w kalendarzu, połączone spotkanie zachowuje to powiązanie, więc zostaje w swojej serii.

Trzech rzeczy Chui odmawia, i mówi o tym, zanim zdecydujesz, a nie po.

Nie połączy dwóch nagrań, których nie potrafi uczciwie złożyć — dwóch połówek nagranych w różnych ustawieniach albo jednej nagranej na telefonie i jednej na Macu — zamiast tworzyć plik, który odtwarza się jako niewłaściwe spotkanie. Nie połączy dwóch wierszy, które zaczęły się w tej samej chwili i trwały tyle samo: to jedna rozmowa, która dotarła do Chui dwa razy, a nie dwie połowy jednej, i połączenie ich dałoby spotkanie, które mówi wszystko dwa razy. W takim przypadku usuń jedno z nich.

I nie potrafi jeszcze połączyć niczego, co nagrano w karcie przeglądarki. Nagranie zrobione w przeglądarce zapisuje swój indeks na bieżąco, a nie w jednym miejscu na końcu, i Chui nie ma sposobu, żeby złożyć dwa takie nagrania. Same nagrania są w porządku i odtwarzają się normalnie; Chui nie potrafi tylko ich połączyć. Dwie połowy spotkania, które chcesz połączyć, muszą być nagrane na telefonie, Macu albo komputerze z systemem Windows.

A na darmowym koncie, jeśli spotkanie, które ma zostać, nie zostało jeszcze odczytane — na przykład takie, przy którym coś poszło nie tak — a dziesięć spotkań w miesiącu jest już wykorzystanych, Chui odmawia: odczytanie połączonego nagrania byłoby pierwszym odczytem, zostałoby wstrzymane do końca miesiąca, a obie połowy zostałyby zablokowane naraz. Płatne konto nie ma takiego limitu; w przeciwnym razie można je połączyć w przyszłym miesiącu. Ile kosztuje konto wyjaśnia, jakie ograniczenia ma darmowe konto.

Nigdzie w Chui nie ma do tego przycisku. To naprawa, którą zauważasz, czytając oba spotkania, i właśnie tam jest miejsce, żeby o nią poprosić.

Gdy jedno nagranie okazało się kilkoma spotkaniami

Odwrotnie: telefon został na stole albo laptop otwarty, i trzy rozmowy trafiły do jednego nagrania. Chui zapisało jedno spotkanie z jednym podsumowaniem, które jest o wszystkich, a więc o żadnej.

W wersjach 238 i 239 nagranie na telefonie samo dzieliło się na osobne spotkania przy każdej długiej ciszy, w trakcie nagrywania; od wersji 240 «Nowe nagranie» na telefonie znów tworzy jedno nagranie, które trwa do «Zatrzymaj» (Nagrywanie spotkania).

Chui zwykle samo to zauważa. Po odczytaniu nagrania trwającego pół godziny lub dłużej Chui sprawdza, czy to naprawdę kilka spotkań — głównie po tym, kto mówi: tam, gdzie jedni milkną na dobre, a inni zaczynają, kończy się jedno spotkanie. Każde takie miejsce porównuje z tym, o czym jest rozmowa, z twoim kalendarzem i z ewentualną przerwą, i dopiero gdy to się zgadza, na ekranie spotkania pojawia się karta: «Wygląda na osobne spotkania. Liczba: 3» (Looks like 3 separate meetings), z każdym kawałkiem, jego czasem, tytułem i osobami w nim. Odznacz kawałek, żeby został połączony z sąsiednim; «Podziel na N» (Split into N) go tnie, a «To jedno spotkanie» (It’s one meeting) sprawia, że karta znika na dobre.

Albo zapytaj, gdzie się łamie. find_split_points() odpowiada własną propozycją Chui — tymi samymi kawałkami, które pokazuje karta, z imionami — i wymienia też długie cisze: jak daleko od początku nagrania jest każda, jak długo trwała, co powiedziano tuż przed nią i co pierwsze po niej. Nie zmienia niczego, co widać. Jeśli powiesz, że to jedno spotkanie, keep_as_one_meeting() to wpisane słowami «To jedno spotkanie».

Potem poproś o cięcie. prepare_split_meeting() wymienia każdy kawałek, który by powstał — kiedy się zaczyna, jak jest długi i co pierwsze w nim pada — a w tym momencie nic się jeszcze nie stało. Dopiero gdy powiesz tak, split_meeting() to robi, i nie przyjmuje niczego poza odpowiedzią na to pytanie.

Co robi: dźwięk zostaje podzielony dokładnie tam, gdzie wskazano, a każdy kawałek staje się osobnym spotkaniem. Pierwszy kawałek zachowuje identyfikator tego spotkania, jego datę, tytuł i opublikowany link; reszta to nowe spotkania, zaczynające się w chwilach, w których naprawdę zostały nagrane. Nic nie jest nagrywane od nowa i nic nie jest ponownie transkrybowane — Chui wie, w której sekundzie padło każde słowo, więc słowa z pierwszej godziny po prostu zostają z pierwszą godziną, a imiona przypisane głosom zostają dokładnie takie, jakie są. Twoje notatki idą z kawałkiem, w trakcie którego zostały wpisane. Chui pisze potem nowe podsumowanie dla każdego kawałka, co trwa mniej niż minutę.

Nie liczy się do dziesięciu spotkań miesięcznie na darmowym koncie. Nic nie jest wysyłane do ponownej transkrypcji, więc nie ma za co liczyć: jeśli przed cięciem wykorzystano dziewięć spotkań, po nim też jest dziewięć.

Tracisz podsumowanie całego nagrania — i to, co to podsumowanie dopisało do informacji o osobach biorących w nim udział; Chui zapisuje te informacje od nowa na podstawie nowych podsumowań. Nie ginie żaden dźwięk i żadne słowo. Nie ma cofania: ponowne złączenie kawałków za pomocą merge_meetings() by zadziałało, ale to odczytuje połączone nagranie od zera i trwa kilka minut.

Chui odmawia cięcia, zanim cokolwiek cię zapyta, w czterech przypadkach: kawałek, który byłby krótszy niż dziesięć sekund; nagranie zrobione w karcie przeglądarki, którego indeksu Chui nie potrafi jeszcze przeciąć; spotkanie, które wciąż odczytuje; i spotkanie, dla którego nie ma czasów poszczególnych słów — o czym mówi, a ponowne odczytanie spotkania to naprawia.

Spotkanie, które Chui złożyło po tym, jak urządzenie nagrywające przestało wysyłać, można od razu podzielić albo połączyć z innym spotkaniem (od wersji 247). Jeśli to urządzenie później wyśle resztę swojego nagrania, część, której Chui nie miało, pojawi się jako osobne spotkanie.

Jedyny przycisk do tego jest na karcie, którą Chui pokazuje, gdy podejrzewa, że nagranie to kilka spotkań; cięcie gdziekolwiek indziej zamawia się słowami.