文章目录aeneas音频和文字自动对齐支持38种语言它能干什么安装和使用几个细节局限性aeneas音频和文字自动对齐支持38种语言做有声书、字幕、语音研究的人应该都碰过这个问题一段音频一份文字稿怎么把每一句话和它在音频里的时间位置对应起来手动做几百页的书能累死人。靠 ASR 语音识别精度不够还得人工校对。aeneas 就是专门解决这个的。它是一个 Python/C 库能自动把文字片段和音频做强制对齐forced alignment输出每个文字片段对应的起止时间戳。举个例子给它一段莎士比亚的十四行诗音频和对应的文字aeneas 会输出这样的结果From fairest creatures we desire increase, [00:00:02.640, 00:00:05.880] That thereby beautys rose might never die, [00:00:05.880, 00:00:09.240] But as the riper should by time decease, [00:00:09.240, 00:00:11.920]每一句话精确到毫秒直接可用。它能干什么aeneas 的核心能力就是音频文字对齐但围绕这个核心它做了不少实用功能。支持 38 种语言包括中文、英文、日文、法文、德文、阿拉伯文等等。只要 eSpeak 或 Festival 这些 TTS 引擎支持的语言aeneas 都能处理。输出格式很全做研究用的 Audacity、ELAN、TextGrid 格式做字幕的 SRT、WebVTT、TTML 格式做电子书的 SMIL 格式还有 JSON、CSV、XML 这些通用格式。基本上下游需要什么格式它都能输出。输入格式也没限制音频方面 ffmpeg 能读的格式它都认。文字方面支持纯文本、XML、XHTML还能从 XML 的 id 和 class 属性里提取文字内容。安装和使用安装流程很标准。装好 Python、FFmpeg、eSpeak 三件套然后 pip 装 numpy 和 aeneas 就行。Mac 和 Windows 有一键安装包Linux 有 deb 包。实在搞不定环境的官方还提供了 VirtualBox 虚拟机镜像开箱即用。用法分两种场景。单个任务直接命令行跑python -m aeneas.tools.execute_task \ audio.mp3 \ text.txt \ task_languageeng|os_task_file_formatjson|is_text_typeplain \ map.json第三个参数是配置字符串控制输入输出格式和处理选项。看起来参数多但文档里有详细说明照着配就行。批量任务用 job 模式把多组音频文字打包成 zip配好 config 文件一条命令全部处理完。适合有大量文件要对齐的场景。几个细节aeneas 用了 MFCC梅尔频率倒谱系数和 DTW动态时间规整做核心算法而且这部分是用 C 写的 Python 扩展处理速度比纯 Python 快很多。TTS 引擎方面默认用 eSpeak但也支持 Festival、AWS Polly、Nuance TTS API 等引擎。换更好的 TTS 引擎能提升对齐精度尤其是做单词级别对齐的时候。说到单词级别对齐aeneas 原本是按句子或段落级别设计的。用它做单词级对齐时可以开启 MFCC 非语音掩码、用多层级对齐模式、换更好的 TTS 引擎来提升效果。它还能从 YouTube 下载音频直接处理支持递归对齐先对齐段落再对齐句子最后对齐单词参数可以在运行时调整。局限性音频和文字要匹配如果文字里有大段多余内容或者音频里有大段无关内容出来的结果会不对。它假设输入是语音不适合歌曲字幕。内存方面也有要求4GB 内存大概能处理 2 小时的音频16GB 能处理 10 小时。这个项目 Star 数不到 3000不算热门但在音频文字对齐这个细分领域它是少数几个开箱即用的工具之一。做有声书制作、语音研究、字幕生成的人值得看看。3000不算热门但在音频文字对齐这个细分领域它是少数几个开箱即用的工具之一。做有声书制作、语音研究、字幕生成的人值得看看。