Simple Subtitling:自动生成影视字幕工具
Simple Subtitling是什么?
Simple Subtitling 是一个能自动给影视作品生成字幕的ai工具。它用 WhisperX 技术把音频文件变成带时间戳和说话人 ID 的字幕文件(SRT)。然后通过说话人嵌入提取和聚类来分配说话人ID,并且在有音频范例时可以分配确切的说话人姓名。具体来说,它先把音频转成文本,加上时间戳;再提取每个说话者的特征,用凝聚层次聚类(AHC)把特征分组,最后给说话人分配 ID。要是用户提供了演员的语音样本,它还能给说话人命名。这个工具就是为了让字幕生成更简单,让影视作品更方便观看。
Simple Subtitling功能特点
语音识别与时间戳生成:使用 WhisperX 技术,能够逐字逐句精准识别音频内容,并生成带时间戳的语音文本。
说话人识别:通过提取句子级别的说话人嵌入,并应用凝聚层次聚类(AHC)对嵌入进行分组,从而分配说话人 ID。
支持多语言:支持多种语言的音频输入,并可生成对应的字幕。
自定义设置:用户可以指定音频样本目录,为说话人分配确切名称。
高精度语音识别和聚类:实现高精度的语音识别和聚类,准确地将语音转换为文字,并对不同说话人的语音进行分类,提高字幕的准确和可读性。
Simple Subtitling安装及使用方法
安装步骤
创建并激活一个名为simplesub的conda环境,指定Python版本为3.11。
在该环境下安装项目所需的Python包,通过pip install -r requirements.txt命令完成。
还需要安装ffmpeg,具体安装方法可参考相关文档。
使用方法
基本用法
运行python main.py --input_file [INPUT_FILE_PATH] --output_file [OUTPUT_SRT_PATH],例如python main.py --input_file data/friends.wav --output_file result/friends.srt,这将根据输入的音频文件生成字幕文件。
使用音频范例指定说话人姓名
首先按照特定结构组织--exemplar_dir目录,每个子文件夹代表一个说话人,里面包含该说话人的音频样本。
然后运行python main.py --input_file [INPUT_FILE_PATH] --output_file [OUTPUT_SRT_PATH] --exemplar_dir [PATH_OF_EXEMPLARS],例如python main.py --input_file data/friends.wav --output_file result/friends_exemplars.srt --exemplars exemplars。
参数说明
input_file:输入音频文件的路径。
output_file:输出字幕文件(SRT格式)的路径。
whisper_model_type:Whisper模型的类型,默认为'medium',可以在相关文档中查看可选类型。
language:语言代码(两个字母,如英语为'en'),如果为None,Whisper会在前30秒检测语言,默认为None。
embedding_model:说话人嵌入提取器,可选'ecapatdnn'或'wespeaker',默认为'wespeaker'。
n_cluster:如果已知说话人数量,可以指定该参数,默认为None。
distance_threshold:如果n_cluster未指定,这是AHC(凝聚层次聚类)的距离阈值,默认为0.8。
exemplar_dir:包含音频范例的目录路径,默认为None。
exemplar_threshold:用于决定“未知”说话人的余弦相似度阈值,默认为0.2。
Github:https://github.com/JaesungHuh/simple-subtitling