展开本页目录
开始前准备什么
- 下载本页素材,使用有权处理的声音,保留原始输入。
- 为对应工具建立独立 Python 环境,核对实际模型与版本。
- 先在小样中试听并保留失败记录,再处理长录音。
- 建立独立环境与输入副本
- 读取音频长度和采样率
- 选 tiny 模型与 CPU int8
- 迭代 segments 才会完成转录
- 将实测逐字稿与预期逐句对照
- 交付原音、机器稿和修订稿
2026-10-23 核验材料;实际执行范围、结果与限制见下方记录。
补充:原有练习资料与下载
本任务输入、脚本、原始输出或明确待运行模板、原文、校验与损坏负例;不含模型权重。
macOS say 合成的本站原创任务输入;不是模型生成成功证明。
朗读输入与回听依据,独立于机器实际稿。
包含具体命令、步骤、来源与未运行范围。
保留原始文件;准确性需回听,脚本存在不代表模型已运行。
真实转录:9.472秒英语音频得到3段文字
faster-whisper1.2.1的tiny.en在CPU int8实际完成转录,逐段导出JSON/TXT。
· tiny.en CPU int8, 9.472秒英语系统合成语音,本机真实推理;没有验证中文、CUDA、实时或大模型速度。
- 运行环境
- 1.2.1;macOS arm64,本地独立运行目录;无私人素材、无付费API调用
1. 用Python3.11建立独立环境,pip install faster-whisper
用Python3.11建立独立环境,pip install faster-whisper。
2. 下载小型英语tiny.en模型到自己指定的目录;中文应选择多语言模型并另外测试,tiny
下载小型英语tiny.en模型到自己指定的目录;中文应选择多语言模型并另外测试,tiny.en只适合英语。
3. WhisperModel("tiny.en",device="cpu",compute_
WhisperModel("tiny.en",device="cpu",compute_type="int8",download_root="models")加载本地权重。
bashmodel = WhisperModel("tiny.en", device="cpu", compute_type="int8", download_root="models")4. transcribe(...,language="en",beam_size=5,vad
transcribe(...,language="en",beam_size=5,vad_filter=True)后必须遍历segments,迭代完成才代表实际推理结束。
bashsegments, info = model.transcribe("speech.wav", language="en", beam_size=5, vad_filter=True) segments = list(segments)5. 将segments写成JSON和TXT,逐段回听;本次3段,与输入文本核对
将segments写成JSON和TXT,逐段回听;本次3段,与输入文本核对。
这次实际得到什么
- 输入9.472125秒英语系统合成语音,实际识别3段。
- tiny.en、CPU、int8、beam_size=5、启用VAD;未调用语音API。
- 文本为“This is a local tutorial test. We render a short video, check its frame rate, and export word timestamps. The original audio stays unchanged.”
- 仅本次样本推理约1.444秒,首次加载/下载耗时单独记录,不作为跨设备速度承诺。
使用这份结果时注意
- tiny.en CPU int8, 9.472秒英语系统合成语音,本机真实推理;没有验证中文、CUDA、实时或大模型速度。
1. 建立独立环境与输入副本
下载 input.wav 与 expected.txt,先完整播放。练习音频由 macOS Samantha 朗读本站原创英文文字,16 kHz 单声道;它是 ASR 输入,不是真人访谈或 CosyVoice 输出。在新目录创建 Python 3.11 venv,安装 faster-whisper==1.2.1,记录 pip freeze。
2. 读取音频长度和采样率
运行 check.py 查看真实帧数、声道、采样率与 SHA-256;不得只根据文件后缀判断格式。自己的 M4A/MP3 可以交给库内 PyAV 解码,本页练习用无压缩 WAV 减少变量。
3. 选 tiny 模型与 CPU int8
先用 tiny 在 CPU 做小样,首轮会从模型仓库下载权重。已下载权重时可把 --model 改成本地目录;别把较小模型的小样效果当作复杂中文会议的准确率承诺。
run-commands.sh
python -m venv .venv
.venv/bin/pip install faster-whisper==1.2.1
.venv/bin/python run.py input.wav --out actual.json --language en --words
python check.py4. 读取完整 segments 后再保存
transcribe 返回的 segments 是惰性迭代对象。先保存 info 中的语言与时长,再完整遍历 segments,将每段 start、end、text 写入结果;只有调用函数而没有消费迭代,不算转录完成。
运行包内 run.py 后分别打开 actual.json 和 actual.srt。机器稿原样保留;将数字与专名回听修订到另一份 reviewed.txt,避免把人工原文写回机器输出。
5. 将实测逐字稿与预期逐句对照
本页 actual.json / actual.srt 是真实 tiny/int8 运行输出。原文中的数字和专有名词仍需回听;修改文本时另存 reviewed.txt,不覆盖 actual.json。预期稿是朗读输入,不能当成识别输出。
6. 交付原音、机器稿和修订稿
运行 check.py,核对 JSON 与 SRT 时间/文字一致、尾段不越界。保存实际环境、完整命令、输入 hash;再把通过回听的字幕交给已有 Remotion 教程。
7. 下载材料、检查负例与继续操作
解压素材包后先运行 python check.py,再运行 python check.py --self-test。前者读取真实 WAV / JSON / SRT 与源 hash;后者拒绝损坏 WAV、倒置时间、越界时间和缺失词时间。文件通过不代表文字、情绪或说话人判定已通过。
怎样确认已经完成
- 原始 WAV、预期稿与机器实际稿分别保存。
- JSON/SRT 文字和时间轴一致,末段不超出音频。
- 数字和专有名词已回听;小样不能代表生产准确率。
常见问题
为什么没有任何识别输出?
先确认遍历了 segments,再检查输入是否有声音、模型路径是否下载完成;保存真实异常,不用预期稿补齐机器输出。
本地转录需要 apizt 音频 API 吗?
本页使用本地开源模型,不调用 apizt 音频端点。后续可以把已核对逐字稿用于文本模型整理,但不能据此推断平台支持 ASR。



