背景
近期,在做音视频合成的项目,但是呢,没有好用的自动字幕和自动歌词的工具,三方的呢又比较贵,那怎么办呢?一向懒惰的我,最终屈服在了价格上,自己动手吧,自己动手,丰衣足食 【faster-whisper】
开搞
1:环境
python3.10
2:安装依赖:【github地址:https://github.com/SYSTRAN/faster-whisper】
pip install faster-whisper
3:编写python代码
from faster_whisper import WhisperModel
voice_path = 'lvlv.wav' #你得音频地址
model_size = "large-v3" #这是个模型名称,一般用这个就行,其余还有,可以查看github上介绍,执行的时候,会自动下载模型文件,好几个G,比较大
#我测试机器上是用这个CPU跑的,GPU比较垃圾,不支持int8_float16混合算法
model = WhisperModel(model_size, device="cpu", compute_type="int8")
# 或者在GPU上用INT8跑
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# 或者在CPU上用INT8跑
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
segments, info = model.transcribe(voice_path, beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text)) #这里循环输出识别出来的内容,并带有时间戳
4:运行上面写好的这个,表现如下图:
准确性的话,还算可以,这个识别出来后,需要再确认下,并做确认修改
5:整合到你项目里的话,就需要你单独封装个API了, 你可以结合django,fastapi等嵌入到你项目里。这个就不写了,很简单,我也很懒,就这样吧,我要睡觉去了。。。😴😴😴😴😴😴😴😴😴😴
如何查看你的显卡支持int8,fp16,fp32,可以登录你的显卡商官网查询