Настройки, которые меняются по просьбе

Переключатели аккаунта: обучение, распознавание голоса, напоминания, оповещение, диктовка.

Всё, что есть в Настройках (Settings) приложения Chui, можно поменять и в разговоре. Обычно именно там их и находят: это переключатели, которые никто не ищет, нажимая на экран.

get_account() даёт всю картину в одном коротком ответе: на кого оформлен аккаунт, какой у него тариф, сколько встреч осталось в этом месяце, компания, если она есть, и в каком положении каждый из переключателей ниже. Это нужно прочитать перед тем, как менять любой из них, чтобы сначала вслух сказать, что именно изменится.

Можно ли Chui учиться на моих записях

Политика конфиденциальности Chui обещает, что это можно выключить в любой момент, и set_privacy() — тот самый переключатель здесь. Если он выключен, Chui не будет читать записи этого аккаунта, чтобы становиться лучше. Ничего не удаляется, и со встречами самого аккаунта ничего не меняется: сводки, поиск и всё остальное работают точно так же, как раньше.

Это согласие, поэтому оно меняется, только когда человек сам говорит, что его нужно изменить. Никогда не меняй его из-за настроения, общего замечания о приватности или вопроса об этом.

Распознавание своего голоса

Человек может попросить Chui узнавать его собственный голос. Только его, и никто не может попросить об этом за другого. Когда это включено, Chui хранит один образец его голоса. Образец создаётся на основе встреч, которые он записывает и в которых он назван (его имя стоит у одного из голосов). Chui подписывает его голос его именем в его собственных встречах и во встречах его компании, на которые его пригласили через календарь. Во встречах другой компании этого не происходит никогда. Это выключено, пока он сам не включит, потому что образец голоса — биометрические данные, и нужно согласие самого человека.

Все, кто этого не включил, остаются «Спикер N» (Speaker N): их голос сравнивается один раз и выбрасывается, и ничего от него не сохраняется. Назвать кого угодно вручную можно всегда, и для этого ничего из перечисленного не нужно. На компьютере «ты» (you) — по-прежнему твой собственный микрофон, которому образец голоса не нужен. Выключение сразу удаляет образец; уже данные имена остаются. Образец, который не использовался год, тоже удаляется.

set_voice_recognition() принимает один ответ — включено или выключено. Менять это можно только потому, что так сказал сам человек, и только о своём голосе. Перед включением прочитай ему фразу из описания инструмента и получи на неё «да»: эта фраза сохраняется как текст его согласия. Администратор компании может выключить это для всех в компании, но включить не может никогда; get_account() сообщает, когда это так.

Человека, который не пользуется Chui, тоже можно узнавать на твоих встречах, если он лично сказал тебе, что не против. prepare_recognise_voice() принимает встречу, голос (speaker_N), его имя и то, как он согласился — лично в определённый день или на записанной встрече в определённый момент, что лучшее доказательство, — и цитирует, что сказал этот голос, чтобы ты проверил, что это нужный, вместе с фразой, на которую он согласился. Затем recognise_voice() это делает: Chui за несколько минут выучивает голос по той встрече и подписывает его имя на каждой следующей встрече, которую ты записываешь, на любом твоём аккаунте, без приглашения в календаре. Та же пара с off удаляет образец, а имена, которые он поставил на встречах, снова становятся «Говорящий N».

Кто видит мои новые встречи — это не настройка

Переключателя для этого нет. В компании каждая встреча, которую человек записывает, начинается в его собственном пространстве «Личное» (Private). Никто другой в компании не может её открыть, включая администраторов. К коллегам она попадает, только когда этот человек добавит эту одну встречу в другое пространство (add_meeting_to_workspace() или в приложении), во время записи или позже. Ничто и никто не меняет эту отправную точку; Кто ещё видит встречу объясняет, кому доступно каждое пространство.

Как долго Chui хранит аудио

По умолчанию Chui хранит аудио встречи бессрочно. В разделе Настройки → Конфиденциальность → «Хранить аудио» (Settings → Privacy → Keep the audio) вместо этого задаётся число дней, а prepare_keep_audio() и затем keep_audio() делают то же самое текстом. Когда после встречи проходит столько дней, исчезает только аудио — из хранилища Chui и с каждого устройства, где есть копия. Название, расшифровка, сводка, заметки, люди и поиск остаются; на месте плеера встреча сообщает, что её запись удалена. Встречу, которая ещё записывается или загружается, это никогда не затрагивает.

Более короткий срок может сразу удалить аудио у старых встреч, и это нельзя отменить. Поэтому первый вызов сообщает, сколько встреч потеряют аудио прямо сейчас, и ничего не меняется, пока человек не согласится с этим числом.

В компании администратор может задать это для всех (company: true). Тогда участники видят срок компании и не могут поменять его для себя; get_account() сообщает, какой срок действует и кто его установил.

Как громко Chui напоминает о встрече

set_reminder() задаёт три вещи, и отправлять нужно только те, о которых действительно попросили:

Будильник звонит даже в беззвучном режиме и в режиме «Фокусирование» (Focus), поэтому выбирать его за человека наугад нельзя. Это должно быть то, о чём он попросил.

А будильнику нужно разрешение самого телефона, и попросить его Chui может только на телефоне. Выбор в разговоре сохраняет намерение. Телефон, который разрешения не дал, откатывается к тихой карточке и ничего об этом не говорит.

Chui спрашивает iOS ровно в тот момент, когда строка Как (How) в разделе Настройки → Напоминание о встрече (Settings → Meeting reminder) переключается на «Будильник» (Alarm), и только со значения, которое ещё не было «Будильником». Поэтому установка будильника по просьбе никогда не вызывает запрос. Не вызывает его и открытие этой строки, если там уже выбран «Будильник». Если переключить на другое и обратно, телефон спросит.

Это одна настройка на весь аккаунт. Она применяется на каждом устройстве, где человек вошёл в аккаунт, а не только на том, что у него в руке.

Говорит ли Chui вслух о записи

Chui никогда не отправляет бота в звонок, поэтому никто другой в комнате никак не узнает, что идёт запись, если Chui об этом не скажет. И Chui говорит: одну короткую фразу через динамик, один раз, когда встреча начинается, на языке приложения.

На ноутбуке фраза звучит из динамика самого компьютера. Люди на другой стороне видеозвонка слышат её, только если её уловит микрофон, так же как до них доходит всё остальное, сказанное в комнате. В наушниках её не слышит никто, кроме того, кто их носит. Скажи это человеку и не обещай, что другую сторону предупредили.

set_announcement() принимает один ответ — включено или выключено. Оповещение включено, если человек его не выключил.

Выключение — это не обычное изменение настройки, и не стоит делать его таким. Во многих местах записывать разговор, не предупредив других его участников, незаконно. Проговори это перед выключением. Скажи, что, выключая оповещение, человек подтверждает, что сам предупредит всех присутствующих, и дай ему ответить. Никогда не выключай его потому, что кто-то звучал раздражённо или спросил, что это такое.

Это одна настройка на весь аккаунт, и в этом весь смысл: тот, кто выключил её на телефоне, не должен столкнуться с тем, что его ноутбук неожиданно сообщит о записи во время звонка с клиентом.

Диктовка на Mac

Там, где аккаунту доступна диктовка, можно удерживать fn (или выбранную человеком кнопку мыши) на Mac, и текст надиктовывается в то приложение, где стоит курсор. Внизу экрана при этом висит маленькая плашка Chui. set_dictation() принимает один ответ — включено или выключено. Выключение убирает плашку и освобождает fn для других приложений, например панели эмодзи. Диктовка включена, пока человек её не выключит. Это одна настройка на аккаунт, поэтому она применяется на каждом Mac, где он вошёл в аккаунт. get_account() показывает её только там, где диктовка вообще доступна.

Вставка в виде цитаты (начиная со сборки 229). На Mac сочетание Command + Option + V в текстовом поле вставляет содержимое буфера обмена в виде цитаты: каждая строка начинается со знака цитаты, как в ответах в почте и чатах, а все переносы строк, отступы и пункты списков сохраняются как были (начиная со сборки 233). По умолчанию это включено, а выключается в настройках диктовки. Если нажать эти клавиши не в текстовом поле, они делают то же, что и раньше. Начиная со сборки 233 диктовка и такая вставка работают и в приложениях, которые сами отрисовывают текст, например в некоторых редакторах кода, где раньше вместо вставки появлялась карточка.

Что Chui делает с диктовкой перед вставкой, можно прочитать и поменять так же. get_dictation_settings() сообщает, включена ли очистка, и перечисляет собственные слова человека и стили диктовки, отмечая стиль по умолчанию. add_dictation_word() добавляет имя или термин в его написании либо замену: услышано «slash go do», записано «/godo». remove_dictation_word() убирает одно слово и называет его, чтобы его можно было вернуть. set_dictation_cleanup() выключает очистку (тогда вставляется ровно то, что было услышано) или снова включает её. На Mac и Windows слова вставляются не позже чем примерно через секунду после того, как ты отпустишь клавиши; если очистка занимает больше времени, вставляется ровно то, что было услышано (начиная со сборки 249).

Стиль — это целый набор инструкций для очистки. Четыре стиля встроены и бесплатны: «Чистый» (Clean), «Сжатый» (Tight), «Идеи» (Ideas) и «Как сказано» (As spoken). «Чистый» действует по умолчанию, пока человек не выберет другой. list_dictation_styles() перечисляет их все: описывает, что делает каждый встроенный стиль, и полностью приводит собственные инструкции человека. set_dictation_style() делает один из стилей стилем по умолчанию. Прежний стиль по умолчанию есть в ответе, чтобы его можно было вернуть. Плашка на Mac и кнопки на телефоне по-прежнему позволяют выбрать стиль для отдельной диктовки.

add_dictation_style() добавляет собственный стиль человека: название и все инструкции для очистки. Это доступно только подписчикам. Без подписки ответ об этом сообщит, а оформить её можно в приложении или на chui.io.

Перед изменением или удалением собственного стиля Chui сначала спрашивает. prepare_update_dictation_style() и prepare_delete_dictation_style() зачитывают его название и инструкции в нынешнем виде; другой копии Chui не хранит. update_dictation_style() и delete_dictation_style() срабатывают только после «да». Встроенные стили нельзя изменить или удалить. Если удалить стиль по умолчанию, им снова становится «Чистый». Что бы ни говорил стиль, очистка, которая меняет алфавит, переписывает диктовку или отвечает на неё, отклоняется, и вставляется то, что было сказано. Всё это есть только там, где доступна диктовка.

get_dictation_settings() также сообщает, сколько БЕСПЛАТНЫХ СЛОВ осталось на этой неделе на каждом типе устройств. У iPhone, Android, Mac и Windows своя неделя, и считаются они отдельно. Неделя начинается заново в понедельник, и ответ называет эту дату. Устройство, на котором исчерпан недельный лимит, до тех пор не может начать диктовку; у платного аккаунта лимита нет. Начиная со сборки 231 диктовка считается платной, если Pro есть у любого аккаунта, на который можно переключиться с того же входа (например, у платного аккаунта компании), а слова по-прежнему засчитываются открытому аккаунту. С этого начинается ответ на вопрос «Почему диктовка перестала работать?».

Там же перечислены все Mac и компьютеры с Windows, где выполнен вход, по имени и с датой, когда их видели в последний раз. Для каждого указано:

С этого начинается ответ на жалобу «Держу fn, и ничего не происходит». На Mac диктовка, которая слышит только тишину, называет микрофон, который слушал, и открывает список микрофонов, чтобы можно было выбрать другой (начиная со сборки 231). set_dictation_device() меняет любой из этих параметров для одного компьютера. Компьютер применит изменение, когда Chui в следующий раз запустится на нём или выйдет на передний план, а до тех пор оно показано как ожидающее. Что-то всегда должно запускать диктовку, поэтому клавишу можно выключить, только если остаётся назначенная кнопка мыши. У телефона такого переключателя нет: он диктует только с того, что человек сам для этого настроил, — с «Кнопки действия» (Action Button) или «Касания задней панели» (Back Tap) на iPhone либо с клавиатуры Chui на iPhone и Android (начиная со сборки 233). Нажатие на микрофон клавиатуры в любом приложении набирает слова там, где стоит курсор. На Android клавиатура заменяет плитку в панели быстрых настроек, а начиная со сборки 235 показывает полную клавиатуру, пока ты не говоришь, твои слова по мере того, как ты их произносишь, и галочку, чтобы их набрать. На iPhone первое нажатие один раз открывает Chui, после этого клавиатура слушает пять минут, а «Кнопка действия» открывает экран прослушивания клавиатуры вместо того, чтобы копировать диктовку для вставки. Когда диктовка начинается, Chui сам возвращает тебя в приложение, в котором ты печатал; в Chrome клавиатура сразу показывает экран с просьбой смахнуть назад, а микрофон уже включён (начиная со сборки 247). В некоторых приложениях-ассистентах Chui сразу возвращает тебя в твой разговор; в тех, где самостоятельный возврат открывал новый чат или список чатов, клавиатура показывает экран с просьбой смахнуть назад (начиная со сборки 248). Начиная со сборки 249 ещё три приложения-ассистента вместо этого снова открываются в том же чате с твоим черновиком. Пока на iPhone идёт запись встречи, клавиатура всё равно диктует, используя микрофон самой встречи, и запись не теряет звука (начиная со сборки 249). Если во время диктовки с клавиатуры пропадает соединение, Chui переподключается и продолжает, и ничего из сказанного не теряется; если связи нет около минуты, Chui набирает то, что успело дойти, и сообщает, что конец не дошёл, чтобы ты мог произнести его ещё раз (начиная со сборки 243). Если микрофон перестаёт передавать звук, диктовка завершается примерно через четыре секунды, уже услышанные слова набираются, а клавиатура сообщает, что микрофон перестал работать (начиная со сборки 247). На iPhone клавиши клавиатуры выглядят и ведут себя как у собственной клавиатуры iPhone (начиная со сборки 246): если удерживать букву, над ней появляются её варианты с диакритикой, проведение по пробелу перемещает курсор, удаление ускоряется, чем дольше держишь клавишу, а с полным доступом (Full Access) каждая клавиша щёлкает и даёт лёгкую отдачу. Два пробела ставят точку, только если нажать их быстро один за другим сразу после буквы или цифры.

Каждая диктовка также сохраняется в аккаунте: что было услышано, что вставлено, язык, тайминги и её звук. Поэтому другой Mac видит ту же историю. list_dictations() читает их от новых к старым, а get_dictation() — одну целиком. Удаление идёт в два шага. prepare_delete_dictation() зачитывает, когда диктовка была произнесена и как начиналась, а delete_dictation() удаляет из аккаунта её слова и звук. Настройка «Как долго Chui хранит аудио» удаляет звук диктовки по истечении этого срока, как и звук встречи, а слова сохраняет. transcribe_dictation_again() ещё раз отправляет сохранённый звук диктовки на расшифровку и хранит новые слова рядом с услышанным и напечатанным, которое никогда не меняется; это делается один раз на диктовку, и повторная просьба даёт те же слова.

Чего здесь нет

Удаление аккаунта, подключение календаря и добавление способа входа намеренно недоступны — Chui внутри ассистента объясняет, что именно и почему.