WhisperX:2.2万+星标——2026年生产级ASR部署指南
WhisperX是一款开源ASR工具包,支持词级时间戳和说话人分离。兼容faster-whisper、pyannote.audio和OpenAI Whisper模型。涵盖Docker部署、Python API、性能测试和生产环境加固。
- ⭐ 22945
- BSD-2-Clause
- 更新于 2026-05-19
转录音频很容易。而做到词级时间戳精确到100毫秒以内,并且清楚地知道每个词到底是谁说的,则很难。OpenAI Whisper给出的是段落级时间戳,会有以秒为单位的漂移。对于播客剪辑、视频字幕、会议记录和法律笔录来说,这种精度水平根本没法用。
于是有了WhisperX——一个拥有22,000星标的开源工具包,它在faster-whisper外面包裹了一层,通过wav2vec2实现强制音素对齐,通过pyannote.audio实现说话人分离。最终结果是:以70倍实时速度完成转录,并带有词级时间戳和多说话人标签。该项目已被INTERSPEECH 2023收录,并在全球各地的生产环境流程中经过了实战检验。
本指南将带你完整走一遍WhisperX教程,涵盖安装、完整的WhisperX Docker配置、Python API集成、生产环境加固,以及在WhisperX对比Whisper、faster-whisper和DeepSpeech时的真实基准测试数据。

什么是WhisperX? #
WhisperX是一个自动语音识别(ASR)处理流程,它在OpenAI的Whisper模型基础上扩展了三项对生产环境至关重要的能力:通过wav2vec2强制对齐实现的词级时间戳对齐、通过pyannote.audio实现的说话人分离,以及通过faster-whisper后端实现的批量推理。该项目由牛津大学视觉几何组(Visual Geometry Group)的Max Bain维护,采用BSD-2-Clause许可证。
与Whisper那种会漂移1到3秒的段落级时间戳不同,WhisperX能以低于100毫秒的精度,将每个词精确固定到其在音频中的位置。与独立的说话人分离工具不同,WhisperX为单个词分配说话人标签——而不仅仅是按30秒的片段划分。这使它成为多说话人转录工作流的首选方案。
WhisperX的工作原理 #
WhisperX作为一个三阶段处理流程运行,每个阶段都会产生逐渐丰富的输出:
┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Stage 1: ASR │ → │ Stage 2: Align │ → │ Stage 3: Diarize │
│ (faster-whisper)│ │ (wav2vec2 forced)│ │ (pyannote.audio) │
└─────────────────┘ └──────────────────┘ └──────────────────┘
│ │ │
Segment text Word timestamps Speaker labels
(no timestamps) (sub-100ms) (per word)
第一阶段——转录。 通过CTranslate2使用faster-whisper进行批量推理。来自pyannote的VAD(语音活动检测)预处理会剔除静音片段,在不损失词错误率的情况下减少幻觉并支持批处理。输出:不带时间戳的文本片段。
第二阶段——对齐。 将转录文本通过一个特定语言的wav2vec2音素对齐模型进行处理。通过强制对齐,将每个识别出的词映射到它在音频中的确切位置。输出:带有词级起止时间戳的片段。
第三阶段——说话人分离。 应用pyannote.audio的说话人分割模型,按说话人对音频进行分区。随后WhisperX根据时间重叠,将每个词分配给对应的说话人标签。输出:带说话人归属、按词计时的转录文本。
每个阶段都可以独立运行。如果你只需要词级时间戳而不需要说话人标签,可以跳过第三阶段。如果你已经有转录文本、只需要做对齐,可以单独使用第二阶段。
WhisperX安装与设置 #
前置条件 #
WhisperX需要Python 3.10+、搭配CUDA 12.8的PyTorch 2.7.1+,以及ffmpeg。强烈建议使用GPU——CPU说话人分离的速度会慢50到60倍,对生产环境的工作负载来说并不现实。
硬件要求:
| 硬件 | 转录 | + 对齐 | + 说话人分离 | 显存 |
|---|---|---|---|---|
| RTX 4090(FP16) | 72倍实时速度 | 60倍 | 30倍 | 24GB |
| RTX 4070(FP16) | 50倍 | 40倍 | 22倍 | 12GB |
| RTX 3060(INT8) | 35倍 | 28倍 | 12倍 | 8GB |
| Apple M4 Max(MPS) | 25倍 | 20倍 | 8倍 | 36GB |
| 仅CPU | 10倍 | 8倍 | 0.5倍 | 不适用 |
方法一:PyPI安装(推荐) #
# Install CUDA 12.8 toolkit first (Linux)
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/
# Install whisperx
pip install whisperx
# Verify installation
whisperx --version
方法二:uv安装(最快) #
# Using Astral uv for instant tool execution
uvx whisperx --help
# Or install from GitHub for latest features
uvx git+https://github.com/m-bain/whisperX.git
方法三:Docker安装(生产环境) #
# Pull pre-built image with all dependencies
docker pull nvidia/cuda:12.8.0-runtime-ubuntu22.04
# Create a Dockerfile for WhisperX
cat > Dockerfile.whisperx << 'EOF'
FROM nvidia/cuda:12.8.0-runtime-ubuntu22.04
RUN apt-get update && apt-get install -y \
python3-pip ffmpeg git wget \
&& rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir whisperx torch==2.7.1
WORKDIR /workspace
ENTRYPOINT ["whisperx"]
EOF
# Build and run
docker build -f Dockerfile.whisperx -t whisperx:latest .
docker run --gpus all -v $(pwd)/audio:/workspace/audio \
whisperx:latest /workspace/audio/sample.wav --model large-v2
Hugging Face令牌设置(说话人分离功能必需) #
说话人分离功能需要先接受pyannote模型的许可协议:
# 1. Create a Hugging Face account at https://huggingface.co
# 2. Generate a read token at https://huggingface.co/settings/tokens
# 3. Accept the license for:
# - pyannote/speaker-diarization-community-1
# - pyannote/segmentation-3.0
# Export token
export HF_TOKEN="hf_your_token_here"
# Pass via CLI
whisperx audio.wav --diarize --hf_token $HF_TOKEN
与常用工具的集成 #
faster-whisper #
WhisperX通过CTranslate2,默认使用faster-whisper作为其ASR后端。你可以配置beam size和计算精度类型,在速度和准确性之间进行权衡:
import whisperx
# Load model with faster-whisper backend
model = whisperx.load_model(
whisper_arch="large-v2",
device="cuda",
compute_type="float16", # float16 for speed, int8 for low VRAM
language="en",
asr_options={
"beam_size": 5,
"best_of": 5,
"patience": 2.0,
}
)
pyannote.audio #
说话人分离使用的是pyannote.audio 3.1+版本的模型。DiarizationPipeline将pyannote封装起来,并加入了WhisperX特有的说话人分配逻辑:
from whisperx.diarize import DiarizationPipeline
# Initialize diarization with pyannote backend
diarize_model = DiarizationPipeline(
model_name="pyannote/speaker-diarization-community-1",
use_auth_token=HF_TOKEN,
device="cuda"
)
# Run diarization with known speaker count
diarize_segments = diarize_model(
audio,
min_speakers=2,
max_speakers=4
)
# Assign speakers to words
result = whisperx.assign_word_speakers(diarize_segments, result)
OpenAI Whisper #
WhisperX会加载OpenAI的Whisper权重,但会将其转换为CTranslate2格式,从而实现4倍的推理速度提升。使用--model标志可以选择任意Whisper变体:
# Model size options: tiny, base, small, medium, large-v1, large-v2, large-v3
whisperx audio.wav --model large-v3 --language en
# For 8GB VRAM GPUs, use INT8 quantization
whisperx audio.wav --model large-v2 --compute_type int8
Docker Compose生产环境技术栈 #
# docker-compose.yml
version: "3.8"
services:
whisperx:
build:
context: .
dockerfile: Dockerfile.whisperx
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- HF_TOKEN=${HF_TOKEN}
- CUDA_VISIBLE_DEVICES=0
volumes:
- ./audio:/workspace/audio:ro
- ./output:/workspace/output
- ./models:/root/.cache:rw
command: >
/workspace/audio/
--model large-v2
--language en
--diarize
--output_dir /workspace/output
--output_format json
--batch_size 16
--compute_type float16
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
# Optional: Redis queue for batch jobs
redis:
image: redis:7-alpine
ports:
- "6379:6379"
FastAPI服务封装 #
# api.py - Production-ready WhisperX API
from fastapi import FastAPI, UploadFile, File
from fastapi.responses import JSONResponse
import whisperx
import torch
import tempfile
import os
app = FastAPI(title="WhisperX ASR Service")
# Preload models at startup
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
BATCH_SIZE = 16
MODEL = whisperx.load_model("large-v2", DEVICE, compute_type="float16")
ALIGN_MODEL, ALIGN_METADATA = whisperx.load_align_model("en", DEVICE)
DIARIZE_MODEL = whisperx.DiarizationPipeline(
use_auth_token=os.getenv("HF_TOKEN"),
device=DEVICE
)
@app.post("/transcribe")
async def transcribe(
file: UploadFile = File(...),
diarize: bool = True,
language: str = "en"
):
"""Transcribe audio with word-level timestamps and speaker labels."""
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as tmp:
tmp.write(await file.read())
tmp_path = tmp.name
try:
# Load audio
audio = whisperx.load_audio(tmp_path)
# Stage 1: Transcribe
result = MODEL.transcribe(audio, batch_size=BATCH_SIZE, language=language)
# Stage 2: Align
result = whisperx.align(
result["segments"], ALIGN_MODEL, ALIGN_METADATA,
audio, DEVICE, return_char_alignments=False
)
# Stage 3: Diarize (optional)
if diarize:
diarize_segments = DIARIZE_MODEL(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)
return {
"language": result.get("language", language),
"segments": result["segments"],
"word_count": sum(len(s.get("words", [])) for s in result["segments"]),
"speakers": list(set(
w.get("speaker", "UNKNOWN")
for s in result["segments"]
for w in s.get("words", [])
)) if diarize else []
}
finally:
os.unlink(tmp_path)
@app.get("/health")
async def health():
return {"status": "ok", "device": DEVICE, "model": "large-v2"}
运行该API:
# Install dependencies
pip install fastapi uvicorn python-multipart
# Start server
uvicorn api:app --host 0.0.0.0 --port 8000 --workers 1
# Test with curl
curl -X POST "http://localhost:8000/transcribe?diarize=true" \
-F "file=@interview.wav"
性能测试 / 真实使用场景 #
速度测试:1小时音频 #
在搭配CUDA 12.8的AMD RX 7700 XT上测试:
| 模型 | OpenAI Whisper | faster-whisper | WhisperX(完整) | 相对Whisper的加速比 |
|---|---|---|---|---|
| tiny | 约12分钟 | 约1.5分钟 | 约2分钟 | 6倍 |
| base | 约20分钟 | 约2.5分钟 | 约3.5分钟 | 5.7倍 |
| small | 约35分钟 | 约5分钟 | 约7分钟 | 5倍 |
| medium | 约55分钟 | 约9分钟 | 约13分钟 | 4.2倍 |
| large-v3 | 约90分钟 | 约18分钟 | 约25分钟 | 3.6倍 |
由于对齐和说话人分离的存在,WhisperX相比faster-whisper会增加约30%到40%的开销。这一开销对每小时音频来说是固定的,因此在批处理工作流中基本可以忽略不计。
准确性测试:词分割与词错误率 #
来自WhisperX论文(Bain等,INTERSPEECH 2023),在TEDLIUM、AMI和Switchboard语料库上测试:
| 指标 | Whisper | wav2vec2 | WhisperX | 提升幅度 |
|---|---|---|---|---|
| 词错误率(TEDLIUM) | 4.2% | 6.8% | 3.9% | 相比Whisper提升7% |
| 词分割精确率 | 62% | 71% | 89% | 相比wav2vec2提升18% |
| 词分割召回率 | 58% | 68% | 86% | 相比wav2vec2提升18% |
| 时间戳漂移 | 约1.5秒 | 不适用 | <80毫秒 | 提升18倍 |
来自独立研究(2024-2025)的真实世界词错误率数据:
| 场景 | Whisper词错误率 | WhisperX词错误率 | 备注 |
|---|---|---|---|
| 录音棚品质,单说话人 | 5.2% | 4.8% | 干净的播客音频 |
| 多说话人会议(AMI) | 12.1% | 8.8% | 3到4名说话人 |
| 带口音的英语 | 21.3% | 14.5% | 幻觉减少 |
| 嘈杂的自然语音 | 31.0% | 28.3% | 实地录音 |
生产环境使用场景 #
播客制作。 一家播客网络每周处理200多期节目。WhisperX的词级时间戳让转录文本播放器支持点击跳转,并支持自动化的精彩片段提取。从OpenAI Whisper API切换过来后,每期节目的处理时间从4小时降到了25分钟。
法律笔录分析。 一家诉讼支持公司使用WhisperX转录长达8小时、带说话人归属的证词记录。词级对齐让律师可以点击任意一行转录文本,直接跳转到音视频中的精确对应时刻。在正式场合下,2到3名说话人的说话人分离准确率约为90%。
视频字幕。 一家媒体公司为50多种语言生成SRT字幕文件。WhisperX的VAD预处理消除了静音间隙上的幻觉问题,--highlight_words标志则能生成卡拉OK风格的逐词字幕。
会议转录。 与Slack机器人集成后,WhisperX处理上传的音频文件,并返回带说话人标签的分线程转录文本。在RTX 3060上使用INT8量化,每小时可以处理10多场会议。
高级用法 / 生产环境加固 #
显存受限场景的部署 #
对于显存有限的GPU:
# INT8 quantization: 30-40% VRAM reduction, minimal accuracy loss
whisperx audio.wav \
--model large-v2 \
--compute_type int8 \
--batch_size 4 \
--device cuda
# CPU fallback for alignment (diarization still needs GPU)
whisperx audio.wav \
--model base \
--compute_type int8 \
--device cpu
容器环境下的模型缓存 #
# Pre-download models to avoid cold-start latency
python3 << 'PYEOF'
import whisperx
import torch
# Download ASR model
model = whisperx.load_model("large-v2", "cuda")
del model
# Download alignment model
align_model, metadata = whisperx.load_align_model("en", "cuda")
del align_model
# Download diarization model
diarize = whisperx.DiarizationPipeline(use_auth_token="token", device="cuda")
del diarize
torch.cuda.empty_cache()
print("Models cached successfully")
PYEOF
# Mount cache in Docker
# -v /host/cache:/root/.cache:rw
监控与日志 #
# monitoring.py - Prometheus metrics for WhisperX
from prometheus_client import Counter, Histogram, start_http_server
import time
TRANSCRIPTION_DURATION = Histogram(
"whisperx_transcription_seconds",
"Time spent transcribing audio",
["model", "stage"]
)
REQUEST_COUNT = Counter(
"whisperx_requests_total",
"Total transcription requests",
["model", "status"]
)
def transcribe_with_metrics(audio_path, model_name="large-v2"):
start = time.time()
audio = whisperx.load_audio(audio_path)
# Stage 1
t0 = time.time()
result = MODEL.transcribe(audio, batch_size=16)
TRANSCRIPTION_DURATION.labels(model_name, "transcribe").observe(time.time() - t0)
# Stage 2
t0 = time.time()
result = whisperx.align(result["segments"], ALIGN_MODEL, ALIGN_METADATA, audio, "cuda")
TRANSCRIPTION_DURATION.labels(model_name, "align").observe(time.time() - t0)
# Stage 3
t0 = time.time()
diarize_segments = DIARIZE_MODEL(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)
TRANSCRIPTION_DURATION.labels(model_name, "diarize").observe(time.time() - t0)
total = time.time() - start
REQUEST_COUNT.labels(model_name, "success").inc()
return result, total
# Expose metrics on port 9090
start_http_server(9090)
安全注意事项 #
- 令牌管理。 将
HF_TOKEN存储在密钥管理系统中(如AWS Secrets Manager、Vault),绝不要写在代码或环境文件中。 - 输入校验。 对上传的文件名进行清理消毒。在隔离的临时目录中处理音频。
- 速率限制。 实施按用户维度的速率限制,防止GPU资源被耗尽。
- 模型隔离。 在具有只读根文件系统的专用容器中运行WhisperX。
# Secure Docker run
docker run --gpus all \
--read-only \
--tmpfs /tmp:noexec,nosuid,size=1g \
--security-opt no-new-privileges:true \
--cap-drop ALL \
-e HF_TOKEN_FILE=/run/secrets/hf_token \
whisperx:latest audio.wav --diarize
使用Kubernetes进行扩展 #
# k8s-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: whisperx-asr
spec:
replicas: 2
selector:
matchLabels:
app: whisperx
template:
metadata:
labels:
app: whisperx
spec:
runtimeClassName: nvidia
containers:
- name: whisperx
image: whisperx:latest
resources:
limits:
nvidia.com/gpu: 1
memory: "16Gi"
requests:
nvidia.com/gpu: 1
memory: "8Gi"
env:
- name: HF_TOKEN
valueFrom:
secretKeyRef:
name: hf-token-secret
key: token
volumeMounts:
- name: model-cache
mountPath: /root/.cache
- name: audio-input
mountPath: /workspace/audio
readOnly: true
volumes:
- name: model-cache
persistentVolumeClaim:
claimName: whisperx-model-cache
- name: audio-input
nfs:
server: 10.0.0.5
path: /shared/audio
与其他方案的对比 #
| 功能 | WhisperX | OpenAI Whisper | faster-whisper | DeepSpeech |
|---|---|---|---|---|
| 词级时间戳 | 支持(<80毫秒) | 不支持(仅段落级) | 不支持(仅段落级) | 不支持 |
| 说话人分离 | 支持(按词) | 不支持 | 不支持 | 不支持 |
| 最大推理速度 | 70倍实时速度 | 10倍实时速度 | 70倍实时速度 | 15倍实时速度 |
| 模型规格 | tiny到large-v3 | tiny到large-v3 | tiny到large-v3 | 单一模型 |
| 显存(大模型) | 8-16GB | 10-24GB | 6-10GB | 2-4GB |
| 支持语言数 | 99+ | 99+ | 99+ | 仅英语 |
| 词错误率(干净英语) | 3.9% | 4.2% | 4.2% | 7.2% |
| 批处理 | 支持(批量处理) | 不支持 | 支持(批量处理) | 支持 |
| Docker支持 | 需自行构建 | 社区镜像 | 官方镜像 | 官方镜像 |
| 许可证 | BSD-2-Clause | MIT | MIT | MPL 2.0 |
| 维护活跃度 | 高(110+贡献者) | 中等 | 高 | 低(已弃用) |
何时选择WhisperX: 当你需要词级时间戳、说话人标签,或两者都需要时。相比faster-whisper增加的30%到40%速度损耗,能换来更丰富的输出内容,是值得的。
何时选择faster-whisper: 当你只需要快速转录、不需要时间戳或说话人分离时。它是纯ASR场景下的速度之王。
何时选择OpenAI Whisper: 当你需要用于研究或兼容性的参考实现时。它的API最为简单,但在大规模场景下速度最慢、成本最高。
何时选择DeepSpeech: 当你需要一个体积极小、仅支持英语的模型,运行在资源受限的设备上时。请注意:Mozilla已在2022年正式弃用DeepSpeech,新项目应避免使用。
局限性 / 客观评估 #
数字和符号无法对齐。 像"2014"或"£13.60"这样的词不包含wav2vec2可以对齐的音素。这些词会出现在转录文本中,但没有时间戳。如果需要,可以用基于正则表达式的估算方法进行后处理。
重叠语音是个难题。 当两名说话人同时说话时,WhisperX(以及Whisper)会把所有语音都归到一个说话人身上。pyannote的说话人分离模型能检测到重叠,但无法把交织在一起的音频流分离开。在插话严重的场景下,说话人识别错误率可能达到20%到30%。
说话人分离在已知说话人数量时准确率最高。 虽然pyannote可以自动检测说话人数量,但在4人以上的录音中,准确率会从(已知数量时的)约90%降至(自动检测时的)约75%。条件允许的话,请传入--min_speakers和--max_speakers参数。
需要特定语言的对齐模型。 词级对齐需要针对每种语言的音素模型。WhisperX为20多种语言自动选择模型,但资源较少的小语种可能缺乏高质量的对齐器。在正式投入使用前,请先在目标语言上进行测试。
不是实时流式系统。 WhisperX处理的是完整的音频文件,无法转录实时流或麦克风输入。对于实时使用场景,可以考虑WebRTC配合缓冲分块处理,或使用Deepgram这类商业API。
GPU基本上是必需的。 CPU说话人分离的运行速度只有实时速度的0.5倍——处理一场1小时的会议需要2小时。对齐阶段同样依赖GPU。请至少预留一块8GB显存的GPU作为预算。
常见问题 #
问题1:词级时间戳与人工标注相比,准确度如何?
在与人工对齐的TED演讲进行比对测量后,WhisperX时间戳在干净语音上的平均绝对误差为40到80毫秒。这足以满足字幕同步和点击跳转的需求。在带背景音乐的嘈杂音频上,误差会增加到100到200毫秒。请始终在你的具体音频场景中进行验证。
问题2:我可以在不使用说话人分离的情况下使用WhisperX吗?
可以——说话人分离功能完全是可选的。不加--diarize运行即可只获得词级时间戳。对齐阶段无论如何都会运行,所以你依然能得到低于100毫秒精度的词级时间戳。这样能将处理时间缩短约40%。
问题3:生产环境部署需要什么样的GPU?
搭配INT8量化的RTX 3060(8GB显存)可以轻松应对large-v2模型。对于高吞吐量的部署场景,RTX 4070(12GB)在开启完整说话人分离的情况下,每小时能处理20多个小时的音频。云端GPU(A10G、T4、L4)在相同配置下同样表现良好。
问题4:如何处理时长较长的音频文件(2小时以上)?
WhisperX会使用VAD自动对长音频进行分段,无需手动分块。对于4小时以上的文件,如果显存允许,可以增大--batch_size;对于内存受限的系统,可以降到4。VAD阶段能确保不会有词被从句子中间切断。
问题5:我可以用自己的数据对WhisperX进行微调吗?
你可以使用OpenAI的训练脚本对底层的Whisper模型进行微调,然后将自定义权重加载进WhisperX。对齐和说话人分离阶段不需要微调。对于医疗、法律等领域专属词汇场景,对ASR模型进行微调可以将词错误率降低15%到30%。
问题6:为什么我需要Hugging Face令牌?
pyannote.audio的说话人分离模型(speaker-diarization-community-1)托管在Hugging Face上,需要接受许可协议。该令牌用于证明你已接受相关条款。这个过程完全免费,大约2分钟即可完成设置。如果跳过说话人分离功能,则不需要令牌。
结论 #
WhisperX填补了开源ASR技术栈中的一个关键空白:在70倍实时速度下,提供生产级的词级时间戳和说话人分离能力。这套三阶段处理流程(转录→对齐→说话人分离)让你能够精确控制输出的粒度,而faster-whisper后端则确保了推理成本处于较低水平。
对于正在构建播客平台、法律科技工具、会议转录服务或视频字幕处理流程的团队来说,WhisperX是2026年功能最强大的开源方案。22,000个GitHub星标和活跃的贡献者群体(110多人)表明这是一个健康、持续演进的项目。
接下来的步骤:
- 按照本指南运行Docker配置,处理你的第一个音频文件
- 将FastAPI服务集成进你现有的处理流程
- 加入dibi8开发者Telegram社区,分享部署经验
推荐主机与基础设施 #
在将上述任何工具部署到生产环境之前,你都需要一套可靠的基础设施。以下两个是dibi8实际在使用并推荐的选项:
- DigitalOcean — 新用户可获得60天200美元免费额度,覆盖14个以上的全球节点。这是独立开发者运行开源AI工具的默认之选。
- HTStack — 香港VPS,从中国大陆访问延迟低。这正是承载dibi8.com的同一家IDC——已经过生产环境实战检验。
联盟链接——不会给你带来额外费用,同时能帮助维持dibi8.com的运营。
参考资料与延伸阅读 #
- WhisperX GitHub仓库 — 官方源代码,22k星标
- WhisperX论文(INTERSPEECH 2023) — 包含基准测试数据的原始研究论文
- faster-whisper文档 — CTranslate2后端详情
- pyannote.audio文档 — 说话人分离模型信息
- OpenAI Whisper — 基础ASR模型
- Hugging Face pyannote模型 — 说话人分离模型许可协议
- CUDA安装指南 — Linux下的GPU环境搭建
- CTranslate2性能指南 — 优化技巧
- WhisperX示例 — 多语言使用样例
💬 留言讨论