Python 语音识别教程:从音频文件到转写文本
- 发布时间
- 最近更新
过去,为 Python 应用添加语音识别功能十分繁琐。Python 开发者需要亲自处理转写流程,包括音频预处理、特征提取和模型集成。此外,工程团队还要应对底层音频处理、转写质量不佳,以及语音与实时字幕之间的延迟。
音频模型和语音识别 SDK 的进步改变了这一切。
本 Python 语音识别教程将教你把 ElevenLabs 文本转语音 音频模型集成到 Python 项目中,构建可用于商业场景的转写应用。
摘要
- 商业级文本转语音模型提供说话人分离、词级时间戳和关键词提示等基础语音识别模型所不具备的功能。
- ElevenAPI 通过 Scribe v2 和 Scribe v2 Realtime,为 Python 代码添加语音识别能力。
- 开发者可在 AI 编程平台安装 ElevenLabs skill,根据官方 API 文档生成准确的 Python 代码。
- 在订阅用于商业开发的付费方案前,可免费试用 ElevenLabs API。

本 Python 语音识别教程涵盖的内容
本教程涵盖前置条件、API 集成和高级转写功能,帮助你构建面向企业场景的 Python 语音识别应用。
近年来,语音识别日益成熟,尤其是大型语言模型和深度学习神经网络改变了 Python 开发者使用转写 SDK 的方式。许多教程会介绍如何构建基础转写应用,但很少涉及商业级产品所需的功能。
编写本教程正是为了填补这一空白。
例如,许多企业级转写方案需要以下功能:
- 说话人分离:识别并区分转写文本中不同说话人的能力。
- 时间戳:准确标记每个词说出时对应的小时、分钟和秒数。
- 多语言支持:以较低词错率捕捉单个录音或直播流中的多种语言语音。
- 关键词提示:映射品牌、产品名称和技术术语等特殊词汇,避免转写拼写错误。
- 低延迟转写:以毫秒级语音转文本响应,为实时转写应用提供支持。
注意:本教程不止于为业余或个人项目生成简单脚本。由于不同业务的需求各异,教程不包括构建在 文本转语音 API 集成之上的应用逻辑。

Python 语音识别集成前置条件
本教程围绕 ElevenAPI 展开。ElevenAPI 是 ElevenLabs 提供的生产级 API,可简化代码中与语音模型的交互。通过 ElevenAPI,可使用 Scribe v2 和 Scribe v2 Realtime——我们领先的批量和实时转写语音模型。
无需直接访问 ElevenLabs 文本转语音模型,只需通过 API 调用传入录音、实时音频流和参数,音频模型便会将音频数据转换为文本。完成后,可在代码中或通过 webhook 接收转写结果。
开始前,请完成以下准备步骤。
- 注册 ElevenLabs。
- 创建 API 密钥。
- 录制一段对话,并上传到可公开访问的存储空间。
准备就绪后,继续下一节。
设置环境
在集成 ElevenLabs 模型前,先设置 Python 环境以安全存储 ElevenLabs API 密钥。与其他 API 密钥一样,建议将其作为环境变量(受管理的密钥)存储在 .env 文件中。
发起 API 调用时,传入该环境变量。这样可避免通过公共网络发出 API 请求时意外泄露 API 密钥。
接下来,在 Python 环境中运行 Bash 命令安装 ElevenLabs SDK——elevenlabs。该 SDK 可让你访问多种语音模型。本例中,可在 Scribe v2 和 Scribe v2 Realtime 之间选择。
还需安装 python-dotenv,让 Python 代码能够访问 .env 文件中存储的环境变量。
编写第一个转写脚本
设置好 Python 环境后,即可使用 ElevenLabs Scribe v2 转写音频文件。
ElevenLabs Scribe v2 是行业领先的语音识别模型,可大规模转写音频文件。即使录音中存在明显背景噪声,也能高精度识别音素。要转写音频,只需通过 ElevenLabs API 将录音发送至模型,再获取完成的转写文本。
以下 Python 代码片段可将音频文件转换为带时间戳和说话人分离信息的转写文本。
代码会加载所需库,为程序提供必要功能,并将声明的环境变量加载到程序环境中。
随后,它会使用环境变量中存储的 API 密钥创建 ElevenLabs 客户端,接着下载音频文件并将其转换为二进制数据。
获得原始音频数据后,将其连同多个参数一起发送到 ElevenLabs API。
- model_id 指定要使用的语音转文本模型。由于传入的是音频文件,Scribe v2 是最佳选择。
- tag_audio_events 可标记笑声、脚步声和其他背景噪声等非语音片段。
- language_code 表示录音文件中对话所用的语言。设为 None 时,模型会自动检测语言。
- diarize 表示 是否要让模型根据声纹识别并区分不同说话人。
最后运行代码,即可在终端看到音频转写结果。

Python 中的流式语音识别
上述示例介绍了适用于预录文件的批量转写。不过,ElevenLabs 还提供可用于构建流式语音识别的 API。与批处理不同,此模式会实时运行语音识别,在对话进行时生成转写文本。
为此,可通过 WebSocket API 将 Python 代码连接到 Scribe v2 Realtime 模型。
Scribe v2 Realtime 采用流式优先架构,转写延迟低于 150 ms。可使用 Scribe v2 Realtime 构建会议 智能体、无障碍工具和语音激活自动化等应用。模型在处理音频流时会返回部分转写文本;只有当代码自动或手动提交一段音频时,才会返回最终转写文本。
可根据音频源和应用类型,在服务端或客户端将语音识别与 ElevenLabs API 集成。
客户端和服务端流式传输均支持异步 workflow。无需持续轮询 API,而是使用 WebSocket 处理结果。代码中需要创建处理程序来接收部分和最终转写文本。

进一步了解:说话人分离、时间戳和自定义词汇
除了 自动语音识别,ElevenLabs 文本转语音模型还支持说话人分离、时间戳和自定义词汇。
- 说话人分离:只有批量转写支持 说话人分离。设置 diarize 参数即可启用。不过,批量转写中的多声道转写模式不支持说话人分离。
- 时间戳:进行批量转写时,可选择词级或字符级时间戳。使用 convert 方法时,设置 timestamps_granularity 参数即可。
- 自定义词汇:实时和批量转写均支持关键词提示。此功能可引导模型优先转写列表中的特定关键词。Scribe v2 Realtime 最多支持 50 个关键词,Scribe v2 最多支持 1,000 个关键词。
在 AI 编程助手中使用 ElevenLabs skill
AI 编程助手可加快开发流程。如果你使用 Claude Code、Cursor、Codex 或类似 AI 编程工具,可在编程环境中添加 ElevenLabs skill。
只需在平台终端运行以下命令:
AI 编程智能体会从 ElevenLabs 的 GitHub 仓库 下载语音转文本 skill,并将其安装到本地 skill 目录。这样可根据 ElevenLabs 官方文档自动生成 Python 语音识别代码,无需从零编写完整的 API 集成。
安装后,只需用自然语言描述功能,即可生成 Python 语音识别代码。编程助手会根据描述,使用语音转文本 skill 通过正确的模型和参数自动生成代码。
例如,在 Codex 中输入“创建一个使用说话人分离和词级时间戳进行转写的 Python 语音识别代码片段”,即可获得如下类似代码。

使用 ElevenAPI 开始语音识别
ElevenAPI 可让你访问先进的文本转语音模型,在 Python 中构建语音识别应用。
使用 ElevenAPI,无需从零编写可能延误产品创新的集成代码。你可以使用提供满足商业级要求的文本转语音服务 SDK,例如关键词提示、说话人分离和时间戳。
立即获取 ElevenLabs API 密钥,并查看我们的 官方文档,了解 API 的工作方式。


