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 导出:为什么你的语音消息不见了。
AI聊天机器人的不足
- 它看到的是文件名,而不是语音。 读取文本文件时,AI助手只知道有一条语音消息存在。除非能逐个处理每个音频文件,否则它听不到说了什么。
- 长聊天记录一次回复装不下。 在我们对四项长任务的测试中,翻译一份 2,000 条消息的聊天记录需要 53,000 到 71,000 个输出 token。我们试用的三个模型里有两个篇幅不够,分别在第 1,804 条和第 1,903 条消息处中途停下,而且没有任何提示说明它们已经停了。
- 顺序和原话都很重要。 作为记录,每条消息都需要保留发送人、日期和时间,并与原文完全一致。在同一次测试中,有一个模型把某条消息的时间从 10:25:20 改成了 10:25:40。
- 多种语言混用。 印地语夹杂英语的语音消息,或乌尔都语、阿拉伯语和波斯语的语音消息,需要按说话时使用的语言转写,往往还需要翻译。
这并不是粗心。聊天窗口的设计目标是给出长度适中、便于阅读的回答;而对话记录需要的恰恰相反:一条不漏、按顺序、逐字逐句。
如何自己测试
导出一份含有几条语音消息的聊天记录,把 .zip 文件上传给某个AI助手,并要求它“列出每条消息,并在发送位置转写每条语音消息”。然后把它的回答与你的手机对照:检查聊天的最后一条消息是否在其中,打开两三条语音消息,对比其中的内容,再数一数某个消息密集的日子里有多少条消息。这样一来,缺失的消息和被概括掉的语音消息很容易就能发现。
可行的做法
- 导出时包含媒体文件。 否则 WhatsApp 不会附上语音消息,也就没人能转写它们。
- 按导出文件的结构来处理。 逐行读取文本文件,把每个附件对应到它所属的消息,并把每条语音消息单独交给语音模型处理,让第 300 条和第 1 条得到同样的对待。
- 先保留原文。 如果需要翻译,请把译文放在原消息和每段转写的下方,而不是取代它们。
- 记录来源。 导出文件的 SHA-256 指纹可以让任何人日后确认这份文档是由哪个文件生成的。
我们的 WhatsApp聊天记录转PDF 工具正是这样做的:上传导出文件,免费查看前几条消息及其语音消息文字,然后一次付费 $5,即可获得完整聊天记录(最多 10,000 条消息),包括一份 PDF 以及文本和电子表格文件。你可以在演示中打开一个完成的示例。如需处理特定语言的语音消息,请参见印地语、阿拉伯语、葡萄牙语和西班牙语。
如果这份PDF要交给律师、人事或法院
由软件生成的转写文本只是一份便于阅读的记录,并不是经过认证的证据。法院和相关机构对聊天记录证据各有规定,可能会要求提供原始手机、原始导出文件或经认证的译文。请保持聊天记录导出文件原封不动,记下它的指纹,并在依赖任何文档之前,先问清楚律师需要哪些材料。更多内容请见WhatsApp聊天记录导出用于法庭。