「 整合包+模型 」
软件基于OpenAI宣布开源的多语言语音识别系统Whisper,市面上应该没有第二个比它更准确的多语言语音识别系统了
我今天发布的这个软件就是基于它进行优化后的FastWhisper项目的GUI版本FasterWhisperGUI,本软件还支持基于Demucs的人声提取(你应该也找不出第二个比它好的人声提取项目了)以及基于whisperX的字幕处理功能
#您还可以:
- 将音频或视频文件转录为srt/txt/smi/vtt/lrc文件
- 将在线OpenAI-whisper模型转换为ct2格式
- 提供VAD模型和whisper模型的所有参数
- 现在,它支持whisperX
- 支持Demucs模型
- 支持whisper large-v3模型
- 人声提取功能
#软件功能:
1.加载本地模型和在线下载模型以及一些小调整,如果你是英伟达显卡,处理设备记得选择cuda以加快速度,此外,国内下载模型速度很慢,推荐加载本地模型,文章末尾我会提供链接
2.支持调整VAD参数,这个功能可以筛选出没有声音的片段,减小工作量,还是很重要的
3.支持FastWhiper模型的详细参数调整,这个功能很有用,有的时候提取结果不理想,通过调整这个就能改善
4.支持Demucs人声提取,先提取人声,之后将提取出来的音频来进行转换为文本,不仅结果更加精准,效率也更高
5.批量提取音频中的文本,这个没什么好说的,添加文件点转换就行
6.基于whisperX的后字幕处理功能,处理完之后一定要记得导出
7.模型参数说明:
8.转写参数说明
转写执行效果
参数说明:
1.1.1转写参数:
audio
: 输入文件的路径(或类似文件的对象),或音频波形。language
: 音频中的语言。应该是一个语言代码,如“en”或“fr”。如果未设置,则在音频的前30秒内检测语言。task
: 要执行的任务(转录或翻译)。beam_size
: 用于解码的beam大小。best_of
: 采样时使用非零温度的候选数。patience
: Beam搜索耐心因子。length_penalty
: 指数长度惩罚常数。temperature
: 采样的温度。它可以是温度元组,如果根据“compression_ratio_threshold
”或“log_prob_threshold
”失败,则会依次使用。compression_ratio_threshold
: 如果gzip压缩比高于此值,则视为失败。log_prob_threshold
: 如果对采样标记的平均对数概率低于此值,则视为失败。no_speech_threshold
: 如果无话音概率高于此值,并且对采样标记的平均对数概率低于“log_prob_threshold
”,则将该段视为静音。condition_on_previous_text
: 如果为True
,则将模型的前一个输出作为下一个窗口的提示提供;禁用可能会导致文本在窗口之间不一致,但模型不太容易陷入失败循环,比如重复循环或时间戳失去同步。initial_prompt
: 为第一个窗口提供的可选文本线条光线或词元id可迭代项。prefix
: 为第一个窗口提供的可选文本前缀。suppress_blank
: 在采样开始时抑制空白输出。suppress_tokens
: 要抑制的标记ID列表。-1 将抑制配置文件config.json
中定义的默认符号集。without_timestamps
: 仅对文本标记进行采样。max_initial_timestamp
: 初始时间戳不能晚于此时间。word_timestamps
: 使用交叉注意力模式和动态时间规整提取单词级时间戳,并在每个段的每个单词中包含时间戳。prepend_punctuations
: 如果word_timestamps
为True
,则将这些标点符号与下一个单词合并。append_punctuations
: 如果word_timestamps
为True
,则将这些标点符号与前一个单词合并。vad_filter
: 启用语音活动检测(VAD)以过滤掉没有语音的音频部分。此步骤使用Silero VAD模型https://github.com/snakers4/silero-vad。vad_parameters
:Silero VAD
参数的字典或VadOptions
类(请参阅类“VadOptions”中的可用参数和默认值)。
1.1.2 方法返回值:
一个元组,包含:
- - 转录段的生成器
- - TranscriptionInfo的一个实例
1.2 VAD 参数
1.2.1 VAD 选项
threshold
: 语音阈值。Silero VAD
为每个音频块输出语音概率,概率高于此值的认为是语音。最好对每个数据集单独调整此参数,但“懒散”的0.5对大多数数据集来说都非常好。min_speech_duration_ms
: 短于min_speech_duration_ms
的最终语音块会被抛弃。max_speech_duration_s
: 语音块的最大持续时间(秒)。比max_speech_duration_s
更长的块将在最后一个持续时间超过的静音时间戳拆分(如果有的话),以防止过度切割。否则,它们将在
max_speech_duration_s
之前强制拆分。min_silence_duration_ms
: 在每个语音块结束时等待min_silence_duration_ms
再拆分它。window_size_samples
:window_size_samples
大小的音频块被馈送到Silero VAD
模型。警告!Silero VAD
模型使用$16000$ 采样率训练得到,$1024$,$1536$ 样本。其他值可能会影响模型性能!
speech_pad_ms
: 最终的语音块每边都由speech_pad_ms
填充。
1.3 模型参数
1.3.1 参数
model_size_or_path
: 使用的模型大小(tiny, tiny.en, base, base.en, small, small.en, medium, medium.en, large-v1 或 large-v2),转换后的模型目录路径,或来自 Hugging Face Hub 的CTranslate2
转换的Whisper
模型 ID。当配置了大小或模型 ID 时,转换后的模型将从 Hugging Face Hub 下载。device
: 转写设备 ("cpu"
,"cuda"
,"auto"
)。device_index
: 要使用的设备ID。也可以通过传递ID列表(例如[0,1,2,3])在多GPU
上加载模型。在这种情况下,当从多个Python
线程调用transcribe()
时,可以并行运行多个转录(参见num_workers
)。compute_type
: 计算类型。请参阅https://opennmt.net/CTranslate2/quantization.html。cpu_threads
: 在CPU
上运行时使用的线程数(默认为4)。非零值会覆盖OMP_NUM_THREADS
环境变量。num_workers
: 当从多个Python
线程调用transcribe()
时,具有多个工作线程可以在运行模型时实现真正的并行性(对self.model.generate()
的并发调用将并行运行)。这可以以增加内存使用为代价提高整体吞吐量。download_root
: 模型应该保存的目录。如果未设置,则模型将保存在标准 Hugging Face 缓存目录中。local_files_only
: 如果为True
,避免下载文件,并在本地缓存的文件存在时返回其路径。
因为时间比较紧,只能这么简短介绍了
0.6.7 改动
- 增加相同说话人字幕内容聚合功能 #82
- 参数页面增加相关设置项
- 输出
txt
格式字幕时,可以那顺序将相同说话人的说话内容聚合在一起。
- 数据标注功能 #78
- 按照
vocal_path,speaker_name,language,text
格式输出标注信息到csv
文件
- 按照
- 修复文件目录带有空格造成的 bug #71
- 暂时修复带有空格的文件目录被强制去除目录造成的问题
- 修复 whisperX 参数的 bug
- 修复
min_speakers
、max_speakers
参数设置异常的 bug
- 修复
- 字幕戳编辑功能进一步改进
- 新增右键菜单批量修改说话人的功能
- 新增右键菜单合并字幕语句的功能
- 简繁体转换问题 #77
语言
参数新增 简体中文——zhs-Simplified Chinese
和 繁体中文——zht-Traditional Chinese
选项- 转写结束之后将会自动转换简繁体
- 打开已存在的字幕文件将会自动转换简繁体
- 修复单元格列宽 bug
- 修正单元格列宽逻辑
- 修正自适应列宽
#总结:当你面对这么多模型无法选择的时候,我只能说效果最好的是large-v3 model float32,追求效率的可以选择medium,想体验一下的选择small
所以写的比较简单,目的是让更多人知道FasterWhisperGUI,不要再被国内的各种付费语音转文字网站忽悠了,说不定他们用的就是这个软件呢,或者效果还没这个好,哈哈注:目标语言设置为想要的语言就能自动翻译