高级阅读时间约 4 分钟更新日期:2026年10月20日

JSON 格式:面向开发者的结构化数据

导出包含文本分段、时间戳、文件信息和说话人信息的 JSON 数据,便于开发和集成。

JSON 会将转写文本导出为结构化数据:完整文本、每个片段及其开始和结束时间、说话人,以及带置信度的逐词时间信息。可用于您自己的脚本、数据分析或自定义工具。JSON 导出适用于所有套餐,包括 Free。

JSON 结构

以下是一份真实导出文件的精简示例(仅显示一个片段和两个词):

{
  "id": "cmvfviwjf00wnb6hzcwfodyhz",
  "fileName": "Weekly team sync.mp3",
  "text": "Speaker 1: Okay, I think everyone's here. Thanks for jumping on...",
  "language": "en",
  "duration": 145,
  "segments": [
    {
      "id": 1,
      "end": 10.088,
      "text": "Thanks for jumping on.",
      "start": 8.968,
      "speaker": "SPEAKER_00",
      "words": [
        { "end": 9.368, "word": "Thanks", "start": 8.968, "confidence": 0.911 },
        { "end": 9.528, "word": "for", "start": 9.368, "confidence": 0.989 }
      ]
    }
  ],
  "speakerNames": null,
  "createdAt": "2026-10-19T23:16:45.243Z"
}
在代码编辑器中打开的 JSON 导出文件

顶层字段

  • id:转写文本的唯一标识符
  • fileName:文件名,与 TranscribeNext 中显示的一致
  • text:整份转写文本,为一个字符串;开启说话人后,每段发言以说话人名称开头(“Speaker 1: …”)
  • language:语言代码(en、es、fr 等);未知时省略
  • duration:音频时长,以整秒计;未知时省略
  • segments:带时间信息的片段数组(见下文)
  • speakerNames:您为说话人设置的名称,例如 {"SPEAKER_00": "Anna"},或为 null
  • createdAt:创建时间,ISO 8601 格式(UTC)

片段对象

  • id:片段编号,从 0 开始
  • start、end:开始和结束时间,以秒计
  • text:该片段中说的内容
  • speaker:说话人 ID,例如“SPEAKER_00”(仅在识别了说话人时提供)
  • words:每个词及其 start、end 和 0 到 1 之间的 confidence(如有)

实用技巧

时间是未经四舍五入的原始数值,因此可能会看到 7.768000000000001 这样的值。如需显示,请在代码中自行取整。

影响输出的因素

  • 工具栏中的“说话人”复选框:关闭时,text 中没有说话人名称,片段中没有 speaker 字段,speakerNames 为 null
  • “时间戳”复选框不影响 JSON——片段时间始终包含在内
  • 从“翻译”标签页或“重点分析”结果导出时,文件中是对应的文本,segments 为空数组
  • 如果大量修改导致时间信息与文本不再对应,segments 会被省略

适用场景

  • 自定义数据处理脚本
  • 分析和文本挖掘
  • 构建您自己的字幕工具
  • 导入数据库或搜索索引
  • 找出识别器不确定的词(低置信度)

处理 JSON 数据(JavaScript)

const data = JSON.parse(jsonString);

// 总时长(分钟)
const minutes = Math.floor((data.duration ?? 0) / 60);

// 输出每个片段及其说话人
data.segments.forEach(segment => {
  const who = data.speakerNames?.[segment.speaker] ?? segment.speaker ?? '';
  console.log(`[${segment.start.toFixed(1)}s] ${who} ${segment.text}`);
});

// 识别器不确定的词
const unsure = data.segments
  .flatMap(seg => seg.words ?? [])
  .filter(w => w.confidence < 0.5);

处理 JSON 数据(Python)

import json

with open('transcription.json', encoding='utf-8') as f:
    data = json.load(f)

print(f"File: {data['fileName']}")
print(f"Duration: {data.get('duration', 0)} s")

names = data.get('speakerNames') or {}
for segment in data['segments']:
    who = names.get(segment.get('speaker'), segment.get('speaker', ''))
    print(f"[{segment['start']:.1f}s] {who} {segment['text']}")

重要

由于每个词都附有各自的时间信息,JSON 文件比 TXT 大得多。一小时的录音会生成约 2 MB 的文件。

标签

JSONAPI开发者结构化数据集成

相关文章

🎬

SRT 时间戳格式:详解 hh:mm:ss,mmm

逐项了解 SubRip 时间戳 hh:mm:ss,mmm --> hh:mm:ss,mmm 的含义、常见格式错误、它与 VTT 和 SBV 的区别,以及如何从 TranscribeNext 导出 SRT。

📥

导出指南:选择合适的格式

了解各种导出格式,以及它们各自适合的使用场景。

⏱️

带时间戳的转写:跳转到录音位置

通过文本分段的时间戳定位录音,搜索文字后跳转收听,并按需导出时间信息。

📄

TXT 格式:纯文本

将转写结果导出为简洁的文本文件,便于在各种文本编辑器和应用中使用。

相关工具

  • 支持的音频与视频格式 — 包括 MP3、WAV、OGG、MP4、MPEG 等格式,以及各格式的限制与使用建议。
  • Mac 转写应用 — 使用 Whisper 和 Parakeet 免费离线录音与转写;离线处理时,文件不会离开您的电脑。

还需要帮助吗? 联系支持团队 — 通常于 24 小时内回复

JSON 格式:面向开发者的结构化数据 | TranscribeNext 说明