跳到导航

转录编辑

本指南介绍如何使用文本转语音 API 通过自然语言指令编辑转录文本。

操作指南 · 假设你已完成 语音转文本 快速入门。

概述

转录编辑是一项实验性功能,需在基础转录费用之上额外收取 30% 的费用。每次请求至少按 10 秒音频计费。详细定价请参阅 API 定价 页面。

转录编辑可让你在转录请求中附加一条自然语言指令。音频转录完成后,系统会将指令应用于转录文本,并同时返回编辑后的文本和原始文本。

这可替代你在工作流中单独进行的后处理步骤。常见用途包括统一日期、时间或单位的写法,展开缩写,移除不需要的内容,应用不同的风格或语气,以及重新格式化转录文本。

例如,转录一段语音留言时使用指令 将所有日期写为 ISO 8601 格式(YYYY-MM-DD),会返回两个版本的文本:

{
"language_code": "eng",
"language_probability": 0.9912,
"text": "Hi, this is Jill. Your appointment is confirmed for the twelfth of July twenty twenty-six, and the follow-up is on the third of August.",
"words": [
{ "text": "Hi,", "start": 0.12, "end": 0.38, "type": "word", "logprob": 0.0 },
{ "text": " ", "start": 0.38, "end": 0.41, "type": "spacing", "logprob": 0.0 },
{ "text": "this", "start": 0.41, "end": 0.55, "type": "word", "logprob": 0.0 },
...
],
"transcription_id": "Y2ZX8AxHUzTPCIualYiE",
"edited_transcript": {
"kind": "transcript",
"text": "Hi, this is Jill. Your appointment is confirmed for 2026-07-12, and the follow-up is on 2026-08-03."
}
}

text 和 words 字段始终描述原始转录文本。编辑后的版本会单独在 edited_transcript 中返回。

集成转录编辑

转录编辑通过向 convert 方法传入 transcript_edit 参数集成到语音转文本 API 中。指令最长可包含 2000 个字符。

import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
with open("voicemail.mp3", "rb") as audio_file:
transcription = elevenlabs.speech_to_text.convert(
file=audio_file,
model_id="scribe_v2",
# Natural-language instruction applied to the finished transcript.
transcript_edit="Write all dates in ISO 8601 format (YYYY-MM-DD)",
)
print("Original:", transcription.text)
print("Edited:", transcription.edited_transcript)

转录编辑同时支持同步请求和 webhook 请求。对于 webhook 请求,edited_transcript 会包含在 webhook 负载的 transcription 对象中。

Scribe v2 Realtime 支持对每条已确认的转录文本应用相同指令。请参阅 实时转录编辑指南。

编写指令

指令会应用于整段转录文本中所有相关位置,所有匹配项都会被编辑,而不只是第一个。指令可以修改特定词语或短语,同时保留其余内容不变;也可以重写或标注完整文本。一条指令可以组合多项编辑。

以下示例说明了支持指令的范围:

指令效果
将所有日期写为 ISO 8601 格式(YYYY-MM-DD)二零二六年七月十二日 变为 2026-07-12
将时间写为 24 小时制下午两点半 变为 14:30
首次出现时展开“ETA”和“ASAP”等缩写ETA 变为 预计到达时间(ETA)
在每句话末尾用方括号标注情绪。从 [positive, negative, neutral] 中选择谢谢,真的很有帮助。 变为 谢谢,真的很有帮助。[positive]
将所有脏话替换为首字母加星号,例如 s***这次电话打得真他妈好。 变为 这次电话打得真 t*** 好。
将转录文本格式化为项目符号列表,每个项目一句话重新格式化整段转录文本

某些调整有专用参数,比编辑指令更便宜、更可预测。使用 关键词 提示 来提高对特定名称和术语的识别倾向,使用 no_verbatim 移除填充词和 不流畅表达,并使用 numbers_format(在支持时)选择数字或文字。对于这些选项无法覆盖的更改,再使用 转录编辑。

编写指令时请注意以下几点:

  • 明确说明所需输出。将所有日期写为 ISO 8601 格式(YYYY-MM-DD) 比 修正日期 更可靠。
  • 指令可使用任何语言编写,但英文指令效果最佳。编辑后的转录文本会保留原始语言。
  • 系统只会执行指令。音频中说出的内容会被视为数据,无法改变指令的应用方式。
  • 如果转录文本中没有任何内容受指令影响,编辑后的转录文本将与原始文本完全相同。

响应格式

设置 transcript_edit 后,响应会包含一个 edited_transcript 对象。其 kind 字段表示编辑是否成功:

kind字段说明
transcripttext编辑后的转录文本。未进行编辑时,与原始 text 相同。
errorerror_type(edit_failed)、message无法生成编辑结果。转录本身仍成功,且仍会返回原始 text。

未请求 transcript_edit 时,该字段不会出现。

编辑失败
{
"text": "Hi, this is Jill. Your appointment is confirmed for ...",
"edited_transcript": {
"kind": "error",
"error_type": "edit_failed",
"message": "The transcript could not be edited. Please try again."
}
}

请注意以下行为:

  • 编辑后的转录文本为纯文本。词级时间戳、说话人标签和 additional_formats 仍描述原始转录文本。
  • 编辑会在转录完成后执行,因此会增加延迟,且延迟会随转录文本长度增长。
  • 附加费用按请求的音频时长计算,每次请求至少按 10 秒计费。

转录编辑不能与 entity_detection、entity_redaction 或 use_multi_channel 结合使用。包含这些组合的请求会因参数无效而被拒绝。

后续步骤