一个 API 搞定转录、翻译、字幕和分析
大多数语音识别 API 只返回原始文本,而 Sonix API 返回的转录文本已经结构化,可直接用于您接下来要构建的任何功能。
以下每项能力都有对应的文档化接口,因此您获取的转录文本无需离开 API,就能变成字幕、译文、剪辑好的音频片段或摘要。
批量转录
将文件 POST 到 /v1/media,超过 100MB 的文件则传入 file_url,Sonix 会异步完成转录。您可以设置语言,添加 keywords 让识别更准确地处理人名和专业术语,附加 custom_data 存放您自己的 ID,并提供 callback_url,任务完成或失败时 Sonix 会第一时间通知您的服务器。每位说话人分别录在独立声道上的录音,可以使用多轨接口,按声道识别说话人。
翻译
转录完成后,向其 translations 接口 POST 一个目标语言代码,Sonix 即可返回 54+ 种语言中任意一种的译文。转录文本接口接受 language 参数,因此翻译完成后,一个 GET 请求就能拿到英文访谈的西班牙语 SRT 文件。
字幕
SRT 和 VTT 接口返回的字幕文件带有真正可用的显示控制:max_characters 和 max_duration 限定每条字幕的长度和时长,subtitle_lines 设置单行或双行,speaker_display 决定说话人姓名的显示方式。split 接口会按 max_cps 阅读速度上限把整份转录文本重新切分为字幕,burn-in 接口则将字幕直接渲染到视频画面上,字体、字号、颜色和画面比例均可自选,包括适合社交平台的 9:16 和 1:1。
导出与结构化数据
任何转录文本都可以获取为:带每个词起止时间和说话人标签的 JSON、纯文本、可直接分享的 Word 文档或 PDF、SRT 或 VTT,以及供视频剪辑师使用的 Avid DS 文件。媒体导出接口更进一步:它会直接剪辑音频或视频本身,只保留您的精彩片段,或删去您划掉的全部内容,输出为 MP3、WAV 或 MP4。
AI 分析
摘要接口对已完成的转录文本进行分析:可生成指定句数的摘要、章节、情感分析、主题和话题分析、实体提取,也可以使用您自己的自定义提示词,例如“为这期播客写 5 条推广推文”。
回调与 webhook
无需轮询。媒体任务和摘要任务都接受 callback_url,任务完成或失败时,Sonix 会将任务状态 POST 到该地址。对于需要大规模自动化的团队,Pro 和 Enterprise 方案还提供事件 webhook:可订阅转录完成、翻译完成、标签和文件夹变更以及已应用遮蔽等事件,每个事件都在 X-Webhook-Signature 请求头中附带 HMAC-SHA256 签名,方便您的服务器验证每个负载确实来自 Sonix。
实时流式转录
针对直播字幕和低延迟语音转文本,Sonix 提供基于 WebSocket 的流式 API,目前面向企业团队开放抢先体验,可在实时转录页面申请访问。批量转录现已提供完整文档,可自助使用。
三次 API 调用,从音频文件到转录文本
使用 Bearer 令牌向 https://api.sonix.ai/v1 进行身份验证,提交文件,然后按所需格式获取转录文本。
提交文件
以 multipart 表单数据发送媒体文件,附上语言、名称,以及可选的 keywords 和 custom_data:
curl -XPOST https://api.sonix.ai/v1/media -H "Authorization: Bearer <API Key>" \
-F file=@my_audio.mp3 \
-F language=en \
-F name='Podcast Episode 45' \
-F keywords='Sonix, Bergamasco, Kairos, Chewbacca' \
-F custom_data='{"internal_id": "123412", "customer_email": "[email protected]"}'查询状态或等待回调
轮询媒体对象,直到状态变为 completed,或者跳过这一步,等待 callback_url 收到通知:
curl -XGET https://api.sonix.ai/v1/media/qmnY1nD5 -H "Authorization: Bearer <API Key>"获取带时间戳的转录文本
请求 JSON 格式的转录文本,或将扩展名换成 .srt、.vtt 或纯文本:
curl -XGET https://api.sonix.ai/v1/media/qmnY1nD5/transcript.json -H "Authorization: Bearer <API Key>"录音中有多种语言?请设置 language=multi,并在 language_hints 中列出预期语言。完整的参数说明、响应体和错误代码请参阅API 文档。