lyrichroma-一键将语音转换为视频的Python命令行工具
说明
最近有个工作需要一个宣传视频,我希望将声音转换为黑白背景的视频,并且将声音对应的文字通过字幕形式显示出来,但没找到合适的工具。剪映语音识别字幕当然做的很好,但是要开VIP;必剪语音识别时候卡死……而刚好最近AI Coding工具越来越强,我在想,何不自己做一个顺手的工具呢,于是就有了这个极简的Python 命令行工具lyrichroma,一键音频转视频,可以设置背景,可以调整字幕位置,可以手动修改ASR识别的字幕错误,等等功能。
代码仓库: https://github.com/vra/lyrichroma
主要功能一览
在详细介绍如何使用之前,让我们先来看看 lyrichroma 的主要特性:
自动语音识别(ASR):基于 faster-whisper 引擎,支持多种语言(包括中文),并提供词级别的时间戳,支持切换ASR模型
动态背景效果:内置多种炫酷的动态背景,比如极光、日落、海洋、赛博朋克和森林主题
卡拉OK样式字幕:实时高亮当前朗读的单词,营造卡拉OK效果
高度可定制化:支持调整字体大小、颜色、高亮颜色和字幕位置
字幕编辑功能:可导出字幕为 JSON 文件进行人工校对,再重新导入生成视频
安装步骤
最简单的安装方式是使用pip:
1 | pip install lyrichroma |
另外,如果想想源码使用也是可以的,lyrichroma 使用 uv 进行管理,因此使用非常方便
1 | # 首先安装 uv(如果尚未安装) |
就是这么简单!接下来我们就可以开始使用了。
基础使用方法
最基本的用法只需要一行命令:
1 | lyrichroma --input audio.mp3 --output video.mp4 |
这条命令会将 audio.mp3 转换为 video.mp4,并配有黑色背景和白色字幕。
进阶使用技巧
- 动态背景效果
如果你觉得纯色背景太单调,lyrichroma 内置了几种炫酷的动态背景:目前支持的调色板包括:1
lyrichroma --input audio.mp3 --output video.mp4 --bg-type dynamic --bg-value aurora
1
2
3
4
5aurora(极光效果,默认)
sunset(日落效果)
ocean(海洋效果)
cyberpunk(赛博朋克效果)
forest(森林效果)2. 自定义静态背景
除了动态背景,你还可以使用纯色或图片作为背景:
1 | # 使用纯色背景 |
3. 字幕样式定制
lyrichroma 提供了样式定制选项:
1 | lyrichroma \ |
各参数含义:
–font-size:设置字幕字体大小(默认40)
–font-color:设置字幕颜色(默认白色)
–highlight-color:设置当前朗读词的高亮颜色(默认黄色)
–text-y:设置字幕垂直位置,范围0.0(顶部)到1.0(底部)(默认0.8)
4. 字幕编辑工作流
对于需要精确控制字幕内容的场景,lyrichroma 提供了字幕编辑工作流,这是该工具的一大亮点。由于自动语音识别技术并非完美,有时会出现识别错误,这时就需要人工干预。
LyriChroma 的字幕编辑工作流分为三步:
第一步:只生成字幕文件(不生成视频):
lyrichroma –input audio.mp3 –save-transcript transcript.json
执行这个命令后,你会得到一个名为 transcript.json 的文件,它包含了所有的识别结果和时间戳信息。
第二步:手动编辑生成的 transcript.json 文件
打开这个 JSON 文件,你会发现它的结构类似于:
1 | [ |
在这个文件中,你可以:
更正识别错误的文字内容
调整时间戳以改善同步效果
删除不必要的段落
添加遗漏的内容
例如,如果某个词被错误识别,你可以直接修改对应的 word 或 text 字段。如果你发现某个时间段的字幕时间不对,可以调整 start 和 end 时间戳。
第三步:使用编辑后的字幕生成视频:
1 | lyrichroma --input audio.mp3 --output video.mp4 --load-transcript transcript.json |
这样就能生成带有经过人工修正的高质量字幕的视频了。
这种方式特别适合需要对自动识别结果进行校正的场景,比如:
专业术语识别不准确
人名、地名识别错误
方言口音导致的识别偏差
背景噪音影响识别准确性