AudioScribe

基于火山引擎大模型录音文件识别 API 的录音转文字工具,支持说话人聚类分离。

功能特性

  • 调用火山引擎大模型 ASR API 进行语音转写
  • 支持说话人聚类分离(自动识别不同说话人)
  • 自动生成 Markdown 格式的转写文档(按时间线排列,标注说话人)
  • 同时输出原始 JSON 数据
  • 支持 mp3、m4a 等常见音频格式

项目结构

AudioScribe/
├── transcribe_legacy.py   # 主脚本APP ID + Access Token 认证)
├── transcribe_all.py      # 备用脚本API Key 认证)
├── requirements.txt       # Python 依赖
├── .env                   # 环境变量配置(需自行创建)
├── tools/                 # 工具ffmpeg 等)
├── docs/                  # API 文档
└── output/                # 转写结果输出目录

快速开始

1. 安装依赖

python -m venv .venv
.venv\Scripts\activate      # Windows
# source .venv/bin/activate  # Linux/macOS
pip install -r requirements.txt

2. 配置环境变量

在项目根目录创建 .env 文件:

# 火山引擎 API 配置(旧版控制台 - APP ID + Access Token
X_API_APP_KEY=你的APP_ID
X_API_ACCESS_KEY=你的Access_Token
X_API_RESOURCE_ID=volc.seedasr.auc

# S3 兼容对象存储配置(用于上传音频文件)
S3_ENDPOINT=https://your-s3-endpoint
S3_ACCESS_KEY_ID=your_access_key
S3_SECRET_ACCESS_KEY=your_secret_key
S3_BUCKET=audioscribe

X_API_RESOURCE_ID 可选值:

  • volc.bigasr.auc — 大模型 ASR 1.0
  • volc.seedasr.auc — 大模型 ASR 2.0(推荐,需旧版控制台认证)

3. 运行转写

python transcribe_legacy.py "音频文件.mp3"

输出文件将保存到 output/ 目录:

  • {音频名}_转写结果.json — 原始 API 返回数据
  • {音频名}_转写结果.md — Markdown 格式转写文档

两个脚本的区别

transcribe_legacy.py transcribe_all.py
认证方式 APP ID + Access Token旧版控制台 API Key新版控制台
对象存储 S3 兼容boto3 MinIO
支持模型 bigasr / seedasr 仅 bigasr
输出目录 output/ 项目根目录

输出格式示例

Markdown 文档按时间线排列,标注说话人:

# 转写结果

**源文件**: 示例.mp3
**音频时长**: 09:04.61
**说话人数量**: 5 人
**分句数量**: 183

---

## 按时间线

- **00:00.54 - 00:01.54** **说话人1** 已经检验了啊。
- **00:02.46 - 00:03.38** **说话人2** 来,你大概说一下嘛。
- **00:04.38 - 00:11.34** **说话人3** 就是计时从比如说我们是5点钟下班儿……

依赖

  • Python 3.8+
  • requests
  • python-dotenv
  • boto3
Description
AudioScribe project
Readme 47 KiB
Languages
Python 100%