如何把通话录音转成文字
销售和客服团队每天录下上百通电话,但没有人有时间把它们全部听完。转录把录音变成可以检索、可以分析、可以写进 CRM 的文字。下面讲清楚如何在几分钟内完成配置,而且不用重写现有代码。
为什么要转录通话
文字版对话能解决四个音频做不到的问题:
- 按内容检索。找出所有提到某个产品或某种异议的通话,只需几秒,而不是几小时的收听。
- 质量管理。主管一分钟读完一份记录,而不是听完十分钟录音。
- 数据分析。把转录文本交给语言模型,就能得到咨询主题、情绪倾向和高频问题。
- 合规留痕。文字比音频档案更容易保存,也更容易检查话术是否被执行。
需要准备什么
只有三样东西:
- 通话录音,任意常见格式:mp3、wav、ogg、m4a。呼叫中心系统通常导出 mp3 或 wav。
- API 密钥。注册只需一分钟,密钥立即发放。
- 任意带 HTTP 客户端的编程语言。下面用 Python 和 C# 举例,其他语言同样可行。
不需要单独的服务器、显卡或者下载模型:识别在服务端完成。
第一步:获取 API 密钥
注册后在客户后台的「API」标签页复制形如 vs_live_… 的密钥。密钥等同于密码,请放进环境变量,不要写进源代码。
免费额度足够跑十几通真实对话,在付费之前就能判断识别质量。
第二步:发送第一条录音
协议与 OpenAI Whisper 一致,官方 SDK 可以直接使用。Python:
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="your key")
with open("call-2026-08-05.mp3", "rb") as f:
result = client.audio.transcriptions.create(model="whisper-1", file=f)
print(result.text)
C# 同理,使用官方 OpenAI 客户端:
var options = new OpenAIClientOptions { Endpoint = new Uri("https://voicesscribe.com/v1") };
var client = new OpenAIClient(new ApiKeyCredential("your key"), options);
var audio = client.GetAudioClient("whisper-1");
var result = await audio.TranscribeAudioAsync("call.mp3");
Console.WriteLine(result.Value.Text);
不写一行代码,直接在终端里验证也可以:
curl https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer your key" \
-F file=@call.mp3 -F model=whisper-1第三步:选择响应格式
response_format 参数决定返回什么:
| 取值 | 返回内容 | 适用场景 |
|---|---|---|
json | 完整文本 | 写入 CRM、全文检索 |
verbose_json | 文本加上带时间轴和语种的分段 | 标注对话、跳转到某个时刻 |
srt、vtt | 现成的字幕文件 | 会议和网络研讨会的录像 |
text | 不带外壳的纯文本 | 快速脚本和处理流水线 |
第四步:让自有词汇识别得更准
公司名称、人名和产品编号,通过 prompt 参数提示模型之后会准确得多:
result = client.audio.transcriptions.create(
model="whisper-1", file=f,
prompt="Plans discussed: Lite, Optimum, Premium; account manager Sawyer",
)
提示词不会出现在返回结果里,它只是把识别向这些词汇偏移。如果音频本来就是单一语种,再加上 language="zh":既加快处理,也消除短句上的语种误判。
第五步:把转录变成常规流程
呼叫中心的常用做法:录音一生成就进入队列送去识别,结果写回商机记录。
import os, pathlib
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key=os.environ["VS_KEY"])
for path in pathlib.Path("recordings").glob("*.mp3"):
with path.open("rb") as f:
text = client.audio.transcriptions.create(model="whisper-1", file=f).text
path.with_suffix(".txt").write_text(text, encoding="utf-8")
print(path.name, "done")
处理速度快于实时:一分钟的通话几秒钟就转录完,因此一整天的录音档案也只需几分钟就能跑完。
常见错误及其含义
| 状态码 | 原因 | 处理办法 |
|---|---|---|
| 401 | 密钥错误或已被停用 | 检查 Authorization: Bearer … 请求头 |
| 400 | 文件为空或已损坏 | 确认录音能被播放器打开 |
| 413 | 文件超过 25 MB | 压制成 mp3/opus,或者切分 |
| 429 | 请求过于频繁,或额度用尽 | 降低频率或更换套餐 |
长录音存成 opus 或 mp3 更划算:一小时的通话在 wav 里是几百兆,在 opus 里只有几兆。
用你自己的录音试一试。 注册只需一分钟,免费额度足够判断识别质量。
免费获取 API 密钥常见问题
转录一通电话要多少钱?
按音频分钟计费,因此成本取决于通话时长。新账号注册后立即获得免费分钟数,足够在自己的录音上验证质量。
电话录音的识别准确率如何?
电话音频经过压缩,频带比录音棚窄,但现代模型处理得很稳。语音清晰时几乎没有错误;噪音、抢话和浓重口音会拉低准确率。
能区分坐席和客户吗?
如果电话系统把双方录成不同声道或不同文件,分别转录即可得到精确的区分。单个混音文件内部的说话人分离目前不做。
处理完之后录音会怎样?
录音和转录文本保存不超过 24 小时,供你核对结果,之后自动删除。
需要自己的服务器或显卡吗?
不需要。识别在服务端完成,你只需要从代码里发一个 HTTP 请求。
相关阅读
- 语音消息转文字:Telegram、WhatsApp 及其他即时通讯工具 — 如何自动把语音消息转成文字:处理 ogg/opus 格式、提升短录音准确率、应对静音,以及可直接使用的聊天机器人代码。
- 如何从 OpenAI Whisper API 迁移到其他服务 — OpenAI Whisper API 迁移指南:代码要改哪两行、响应和错误格式有何差异,以及切换生产流量之前如何对比识别质量。
- 如何提高语音识别准确率:八个实用方法 — 真正能改善转录质量的八件事:音频预处理、指定语种、prompt 词表、切分策略、响应格式,以及如何测量字错率。