进阶教程 · 作者 Jun Tang · 价格核对于 2026 年 11 月 1 日 · 约 5 分钟读完

用阿里云 / 腾讯云语音识别批量做字幕:免费额度、费用和一段能跑的脚本

推广说明:本页含推广链接。部分云服务/工具链接以后可能换成推广链接,通过它们注册或购买,我可能获得佣金,你不需要多付任何费用,也不影响我的推荐——免费额度够用的地方我都会写明。价格与免费额度均于 2026 年 11 月 1 日在官网核对,标注“以官网为准”的地方表示官网未写明或无法核实。了解本站如何运作。

一两条视频,用剪映识别字幕就够了。但如果你手上是几十节课程、一批直播回放,或者每天要出很多条口播,一条条点会很累。这时可以直接调用云厂商的「录音文件识别」接口:把视频丢上去,批量拿回带时间戳的结果,转成 SRT 字幕,再导入剪映排版。这篇适合会一点命令行和 Python 的朋友。

简单说:想先免费试:腾讯云录音文件识别每月送 10 小时(常规引擎),而且新用户默认关闭后付费,用完就停,不会意外扣钱;官方还有现成的“视频自动生成字幕”教程。阿里云新用户试用期 3 个月,每 24 小时可免费识别 2 小时录音文件。正式用量大时,两家常规价格都在每小时 1–2.5 元这个区间。

免费额度:先白嫖哪家?

腾讯云 录音文件识别阿里云 智能语音交互 录音文件识别
免费额度每月 10 小时(只适用常规引擎;大模型 1.0/2.0 版没有免费额度)新用户试用 3 个月,每隔 24 小时可免费识别 2 小时
发放方式当月首次开通当天发放,之后每月 1 日发放,仅当月有效试用期内按 24 小时滚动
超出后新用户(2022 年 5 月起开通)默认关闭后付费,额度用完自动停服需升级商用版,按量付费或买资源包
处理时效官方写最长 3 小时返回,大多数 1 小时音频 1–3 分钟完成免费用户 24 小时内完成,付费用户 3 小时内完成
结果保存24 小时72 小时

小结:做字幕的话,腾讯云的免费额度更实用——每月 10 小时,出结果快,还有字幕专用的返回格式。阿里云试用免费任务要等最多 24 小时,更适合不赶时间的批量任务。

超出免费额度后的价格

腾讯云

阿里云

算一笔账:每月 30 小时课程视频,腾讯云前 10 小时免费,剩下 20 小时按 1.75 元算约 35 元;如果买 60 小时 90 元的包,够用两三个月。

腾讯云:从视频到 SRT 的流程

腾讯云官方有一篇《通过录音文件识别实现视频自动生成字幕》,思路很清楚,我按它整理:

  1. 在 腾讯云语音识别 开通服务(需要腾讯云账号,按平台要求完成实名认证),在访问管理里创建 API 密钥(SecretId / SecretKey)。密钥只放在环境变量里,别写进代码、别发给别人。
  2. 准备音频:接口直接支持 wav、mp3、m4a、flv、mp4、wma、3gp、amr、aac、ogg-opus、flac,mp4 不用转码。mkv、avi 之类先用 ffmpeg 转成 wav。
  3. 上传到对象存储 COS 拿一个 URL(官方推荐,不产生外网流量费)。URL 方式音频不超过 5 小时、1GB;直接上传本地文件只支持 5MB 以内。
  4. 调用 CreateRecTask 创建任务,关键参数:ResTextFormat=3(按标点分段、字幕场景专用)和 SentenceMaxLength(单行最多几个字,取值 6–40,竖屏建议 15 左右)。
  5. 用 DescribeTaskStatus 轮询结果,把每句的起止时间写成 SRT。

下面是一段精简示例(需要 pip install tencentcloud-sdk-python),批量的话循环处理 URL 列表即可:

import os, time
from tencentcloud.common import credential
from tencentcloud.asr.v20190614 import asr_client, models

cred = credential.Credential(os.environ["TENCENTCLOUD_SECRET_ID"], os.environ["TENCENTCLOUD_SECRET_KEY"])
client = asr_client.AsrClient(cred, "")

def ms(t):
    h, t = divmod(t, 3600000); m, t = divmod(t, 60000); s, t = divmod(t, 1000)
    return f"{h:02}:{m:02}:{s:02},{t:03}"

def to_srt(url, out_path):
    req = models.CreateRecTaskRequest()
    req.EngineModelType = "16k_zh"      # 常规中文引擎(有免费额度);中英混说可用 16k_zh_en 等大模型引擎(无免费额度)
    req.ChannelNum = 1
    req.SourceType = 0                  # 0 = 音频 URL
    req.Url = url
    req.ResTextFormat = 3               # 字幕场景:按标点分段,带起止时间
    req.SentenceMaxLength = 15          # 单行字幕最多 15 字
    task_id = client.CreateRecTask(req).Data.TaskId
    while True:
        q = models.DescribeTaskStatusRequest(); q.TaskId = task_id
        data = client.DescribeTaskStatus(q).Data
        if data.Status == 2: break      # 2 = 成功
        if data.Status == 3: raise RuntimeError(data.ErrorMsg)
        time.sleep(10)
    with open(out_path, "w", encoding="utf-8") as f:
        for i, s in enumerate(data.ResultDetail, 1):
            f.write(f"{i}\n{ms(s.StartMs)} --> {ms(s.EndMs)}\n{s.FinalSentence}\n\n")

to_srt("https://你的COS地址/video1.mp4", "video1.srt")

注意:这是示意代码,参数名和返回字段以 腾讯云 API 文档 为准;官方教程附有完整工程(含异常处理)的 GitHub 链接。效果调优:字幕太长就把 SentenceMaxLength 调小(官方建议 15–25),中英混说换 16k_zh_en 系列引擎。

阿里云:要点和坑

拿到 SRT 之后

把 SRT 导入剪映(或你习惯的剪辑软件)统一排版,再按 剪映双语字幕流程 里的校对清单过一遍。机器识别再准,人名、数字、专业词也要人工看。要做双语,可以对校对好的中文 SRT 逐句翻译,保持条数和时间轴不变。

想看云服务和剪映、讯飞智作等工具放在一起怎么选,见 国内 AI 字幕/配音工具对比。

来源(2026-11-01 核对)

相关指南

← 回到国内版首页