Что внутри экспорта WhatsApp

Когда вы открываете чат в WhatsApp и выбираете Экспорт чата, вы решаете, добавлять ли медиафайлы: на iPhone — С медиафайлами, С выбранными медиафайлами или Без медиафайлов, на Android — Включить медиафайлы или Без медиафайлов. Вы получаете файл .zip (на Android иногда файлы приходят отдельно). Внутри:

  • один текстовый файл, обычно _chat.txt или WhatsApp Chat with Name.txt, по одной строке на сообщение: дата, время, отправитель и текст;
  • по одному файлу на каждое вложение: голосовые сообщения (.opus), фото (.jpg), видео (.mp4), документы и контакты.

На месте отправленного голосового сообщения текстовый файл содержит лишь что-то вроде <attached: 00000012-AUDIO-2024-03-12-14-22-05.opus> или PTT-20240312-WA0003.opus (file attached). Слова есть только в аудиофайле и больше нигде. Почему часть таких файлов пропадает, рассказано в статье Экспорт WhatsApp: почему пропали голосовые сообщения.

Где чат-бот не справляется

  • Он видит имена файлов, а не речь. Читая текстовый файл, ассистент узнаёт, что голосовое сообщение существует. Но он не слышит, что в нём сказано, если не может обработать каждый аудиофайл по отдельности.
  • Длинные чаты не помещаются в один ответ. В нашем тесте четырёх длинных задач на перевод чата из 2 000 сообщений ушло от 53 000 до 71 000 выходных токенов. Две из трёх протестированных моделей исчерпали лимит и оборвались на полуслове — на сообщениях 1 804 и 1 903, — не предупредив, что остановились.
  • Важны порядок и точная формулировка. Для протокола нужно, чтобы каждое сообщение было с отправителем, датой и временем ровно так, как в оригинале. В том же тесте одна модель изменила время сообщения с 10:25:20 на 10:25:40.
  • Смешанные языки. Голосовые сообщения на хинди с английским или на урду, арабском и персидском нужно записывать на том языке, на котором они сказаны, и часто ещё и переводить.

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

Как проверить самому

Экспортируйте чат с несколькими голосовыми сообщениями, загрузите .zip в чат-бот и попросите: «каждое сообщение, а каждое голосовое сообщение расшифровано там, где оно было отправлено». Затем сравните ответ с телефоном: проверьте, что последнее сообщение чата на месте, откройте два-три голосовых сообщения и сверьте слова, посчитайте сообщения за один насыщенный день. Пропущенные сообщения и пересказанные вместо расшифровки голосовые так легко заметить.

Что работает

  1. Экспортируйте с медиафайлами. Без них WhatsApp не включает голосовые сообщения, и расшифровать их никто не сможет.
  2. Обрабатывайте экспорт так, как он устроен. Читайте текстовый файл построчно, сопоставляйте каждое вложение с его сообщением и отправляйте каждое голосовое сообщение в модель распознавания речи отдельно — тогда сообщение № 300 получит столько же внимания, как и № 1.
  3. Сначала сохраните оригинал. Если нужен перевод, размещайте его под исходным сообщением и под каждой расшифровкой, а не вместо них.
  4. Фиксируйте источник. Цифровой отпечаток SHA-256 файла экспорта позволяет любому позже подтвердить, из какого файла сделан документ.

Наш инструмент Чат WhatsApp в PDF делает именно это: загрузите экспорт, бесплатно проверьте первые сообщения с расшифрованными голосовыми сообщениями и получите весь чат, до 10,000 сообщений, одним PDF плюс текстовые файлы и таблицы за $5 — разовый платёж. Готовый пример можно открыть в демо. Для голосовых сообщений на конкретном языке смотрите: хинди, арабский, португальский и испанский.

Если PDF нужен юристу, HR или суду

Расшифровка, сделанная программой, — это читаемая запись, а не заверенное доказательство. Суды и ведомства сами устанавливают правила для переписки как доказательства и могут запросить исходный телефон, исходный файл экспорта или заверенный перевод. Храните файл экспорта без изменений, запишите его контрольный отпечаток и уточните у юриста, что ему нужно, прежде чем полагаться на любой документ. Подробнее об этом — в материале Экспорт чата WhatsApp для суда.