Как найти фрагмент по всем встречам и когда стоит читать полную расшифровку.
Каждая встреча доступна для поиска сразу после расшифровки: названия, заметки, расшифровки и сводки. Поиск — дешёвый способ добраться до содержания; чтение расшифровки — дорогой.
search_meetings() ищет по всем встречам в аккаунте и возвращает короткие совпадающие фрагменты, у каждого указана встреча, откуда он взят. Искать нужно на языке, на котором прошла встреча, — обычно на болгарском.
Слово находит и другие свои окончания. Перед поиском каждое слово обрезается до основы, поэтому «срещи» находит «среща», «срещата» и «срещите», а «meetings» находит «meeting». Это работает на болгарском, английском, немецком, испанском, французском, итальянском, венгерском, нидерландском, португальском, румынском, русском, сербском, хорватском, боснийском, турецком и греческом; на чешском, словацком, польском и македонском слово по-прежнему находит только то, что с него НАЧИНАЕТСЯ. Основа находит и слова, которые лишь похожи на родственные («срещ» находит «срещу»), а слово, у которого основа меняется в середине («напускане», «напусна»), по-прежнему пропускается — если поиск ничего не нашёл, стоит попробовать ещё раз с другой формой, прежде чем отвечать.
Поиск в одном алфавите находит слово в другом, если это одна и та же прямая транслитерация: «deploy» находит и «деплой», так что незачем искать термин дважды, чтобы охватить оба написания. На слово, записанное на слух, а не транслитерированное («рилийз» вместо «release»), это не распространяется.
Встречи, в которых есть все слова, идут первыми. Если ни в одной нет всех слов, Chui расширяет поиск до встреч, где есть хотя бы одно из них, и сообщает об этом.
get_meeting().get_transcript() нужен, когда важна точная формулировка. Полная расшифровка встречи занимает пятнадцать–двадцать тысяч токенов, поэтому расшифровка приходит по одному окну за раз. В окне только целые реплики спикеров, предложения никогда не обрываются. К окну прилагается смещение (offset), по которому запрашивают следующее.Расшифровка разделяет голоса, но не может их назвать: в ней стоит speaker_0, speaker_1 и так далее. Если дать спикеру имя в приложении, он сохраняется как человек, и с этого момента в расшифровке вместо номера стоит его имя — см. Участники твоих встреч.
В приложении тот же поиск есть в отдельной строке, по тем же четырём видам текста. Есть и второй поиск — внутри одной открытой встречи.