Gentle 强制对齐实操指南把音频和文字逐词对齐到时间戳【免费下载链接】gentlegentle forced aligner项目地址: https://gitcode.com/gh_mirrors/ge/gentleGentle 是一个基于 Kaldi 的语音文本强制对齐工具把一段文字转录稿和音频逐词对齐输出每个单词的起始/结束时间戳常用于字幕生成和语音分析。⚡ 30 秒拿到第一个强制对齐结果仓库里自带一段现成的音频和转录稿examples/data/lucier.mp3和examples/data/lucier.txt装完环境后直接跑python3 align.py examples/data/lucier.mp3 examples/data/lucier.txt -o align.json输出是一个 JSON 数组每个单词一个对象包含 start、end秒和音素级别的信息不写-o时结果直接打印到终端。这就是强制对齐的核心产物文字和时间轴的一一映射。 装好 Kaldi 与模型一次到位依赖要求如下全部由脚本自动处理你只需要系统里装好 Python 3依赖用途安装方式Python 3运行 align.py / serve.py系统自带或 brewffmpeg把任意格式音频重采样为 8kHz wavinstall_deps.sh 自动装gcc、make、automake、autoconf 等编译 Kaldiinstall_deps.sh 自动装ATLAS、zlib 等数学库Kaldi 数值计算依赖install_deps.sh 自动装安装命令就三行git clone https://gitcode.com/gh_mirrors/ge/gentle cd gentle ./install.shinstall.sh内部依次做了四件事拉取 Kaldi 子模块、执行 install_deps.sh 装系统包并注册 Python 包、在 ext/install_kaldi.sh 里编译 Kaldi、再用 install_models.sh 下载并解压 kaldi-models-0.04.zip 预训练模型。Kaldi 编译耗时约 30~60 分钟。不想自己编译的话也可以直接跑docker run -P lowerquality/gentle得到一个开箱即用的服务。用三种方式跑对齐命令行跑一次强制对齐align.py接收音频和转录文本两个位置参数常用选项参数默认值作用-o/--output输出到 stdout指定 JSON 输出文件--nthreadsCPU 核数对齐线程数--conservative关启用更严格的对齐策略--disfluency关把 uh、um 等填充词也纳入对齐--logINFO日志级别音频在送进 Kaldi 前会统一重采样为 8kHz wav所以 mp3、wav 等 ffmpeg 支持的格式都能处理。浏览器上传音频看对齐结果python3 serve.py服务默认监听 8765 端口打开网页后可以上传音频和文本查看对齐过程并在结果页下载数据。每次任务的结果保存在transcriptions/uid/目录下包含 align.json、align.csv 和可视化页面 index.htmlcsv 格式方便直接导入表格软件。在程序里调用对齐接口服务还暴露了 REST API同步调用时响应体就是 JSON 结果curl -F audioaudio.mp3 -F transcriptwords.txt http://localhost:8765/transcriptions?asyncfalse去掉asyncfalse则返回 302 跳转到任务目录轮询其中的 status.json 即可拿到进度。值得深挖的两个进阶特性多轮对齐给没对上词第二次机会第一轮对齐后部分词可能因为噪声或含糊发音匹配不到时间戳。transcribe流程会把这些未对齐词自动切成片段时长限制在 0.75~60 秒之间对每段音频单独重跑一次 Kaldi再把结果拼回原对齐序列。这段逻辑在 gentle/multipass.py 里日志会打印两轮前后未对齐词的数量方便你判断音频质量是否拖累了精度。它始终自动运行不需要额外开关。强制对齐参数怎么调保守模式与填充词两个开关都作用于词与音频片段的匹配策略--conservative启用更保守的对齐适合转录稿和音频不完全吻合、宁可少标时间也不标错位置的场景--disfluency开启后 uh、um 这类填充词也会被分配时间戳适合口语播客、访谈类音频。Web 界面的上传选项里对应同名勾选框行为一致。⚠️ 避坑指南安装时 Kaldi 编译报错→ 系统依赖没装全 → 先单独跑./install_deps.sh对照 install_deps.sh 里的包清单确认安装成功再继续。模型下载中断或特别慢→install_models.sh从外网拉取 zip 包 → 手动下载 kaldi-models-0.04.zip 放到项目根目录解压跳过该步骤即可。浏览器提示 Encoding failed→ 系统缺少 ffmpeg 或上传的不是合法媒体文件 → Ubuntu 上需从 PPA 装 ffmpeg装完重传音频。uh、um 在结果里没有时间戳→ 默认填充词不参与对齐 → 命令行加--disfluency网页端勾选 disfluency。长音频处理时 CPU、内存吃紧→ 线程数默认取 CPU 核数 → 用--nthreads调小或把长音频切成片段分批处理。 延伸阅读gentle/forced_aligner.py对齐主入口能看到首轮转录、差异对齐、二轮重对齐和邻接优化的完整流水线。gentle/multipass.py未对齐词如何被切出片段、单独重对齐再拼回原序列。gentle/standard_kaldi.pyKaldi 子进程接口的封装音频怎么喂进去、结果怎么解析都在这里。【免费下载链接】gentlegentle forced aligner项目地址: https://gitcode.com/gh_mirrors/ge/gentle创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考