作者avans (阿纬)
看板AI_Art
标题[分享] openai_whisper / faster-whisper /webui
时间Thu Jul 20 23:17:06 2023
whisper这是openai公开的语音辨识模型
非常强大相信不少人已经听过或使用过了
没听过也没关系这边做个使用介绍
这里主要要介绍的是
whisper与faster-whisper
还有whisper-webui(网页版本)
openai/whisper
https://github.com/openai/whisper
guillaumekln/faster-whisper
https://github.com/guillaumekln/faster-whisper
aadnk/whisper-webui
https://huggingface.co/spaces/aadnk/whisper-webui
___________________________
一. whisper
OpenAI相信大家都知道
他是开发ChatGPT的组织
除了GPT外也有推出其他公开的模型
whisper是在2022年9月首次发布的
是一种通用的语音辨识模型
目前提供六种级距的模型(视GPU等级选择)
越大的模型效果越好但也较耗资源
https://i.imgur.com/UWXod1R.png
https://i.imgur.com/S6AYJE8.png
large-v2模型是在2022年底才推出的
参数与原本的large模型一样
但是效果更好了,详细可参考底下讨论说明
https://github.com/openai/whisper/discussions/661
下图是whisper以large-v2模型
验证的单词错误率(Word Error Rate)
越上面的语言错误率越低
我自己常使用英文、日文、中文
辨识的都还不错
https://i.imgur.com/hKKn2mm.png
在github上面还有介绍Python呼叫使用方式
有兴趣的可以看看,这里就先略过了
___________________________
二. faster-whisper
guillaumekln使用CTranslate2重新实作出OpenAI的Whisper模型
github上说明同精度下速度比openai/whisper 快 4 倍,
并且使用更少的记忆体,在CPU和GPU上使用8-bit量化可以进一步提高效率。
https://i.imgur.com/r9Uf0Fj.png
这使得large-v2模型在低VRAM上也能使用
在github上面也有介绍Python呼叫使用方式
有兴趣的可以看看,这里同样略过
___________________________
三. whisper-webui
再来是让所有人都能轻易使用的webui介面版本
这是aadnk在2022年10月於whisper的discussions中
发文说明制作了whisper的WebUI版本
支援使用VAD 加强英语以外的语言
而且最厉害的是还整合了yt-dlp套件
支援贴上youtube连结自动语音辨识
我测试时发现nicovideo也支援(不过载入的很慢)
Whisper WebUI with a VAD for more accurate non-English transcripts (Japanese)
带有 VAD 的 Whisper WebUI 可获取更准确的非英语成绩单(日语)#397
https://github.com/openai/whisper/discussions/397
作者也有在Hugging Face中公开直接可以使用的版本
有两种,原版whisper-webui与faster-whisper-webui
https://huggingface.co/spaces/aadnk/whisper-webui
https://huggingface.co/spaces/aadnk/faster-whisper-webui
因为huggingface免费版本是用CPU跑的
所以作者有限制影片长度
原版whisper仅能10分钟(600s)
faster-whisper放宽至30分钟(1800s)
若是在自己电脑上跑就能设置不限长度
启动app.py时要加上[--input_audio_max_duration -1]
下图是webui执行时的画面
有没有发现与stable-diffusion-webui风格很相似呢?
因为webui其实是python的公开套件gradio
很多AI模型都可以搭配gradio来制作出易於使用的版本
https://i.imgur.com/KaizWqr.png
作者也有制作Win10/11的whisper-webui安装步骤
https://reurl.cc/DAL32E
___________________________
四. 安装步骤说明
底下是我自己安装webui时
纪录的粗略步骤
推荐使用faster-whisper-webui
另外我只知道N卡的安装方式...
1. CUDA Toolkit 12.2
CUDA Toolkit 12.2
Download Installer for Windows 10 x86_64
https://developer.nvidia.com/cuda-downloads
这是N卡的CUDA开发套件,不少模型都会需要用到这个
如果系统已经有安装了,可以略过
2. git clone faster-whisper-webui & 建立python虚拟环境
要先安装git版本控管工具
然後找个你喜好的位置安装 faster-whisper-webui
用git相关工具或cmd命令提示字元都可以
git clone "
https://huggingface.co/spaces/aadnk/faster-whisper-webui"
PS.
检视程式後会发现whisper-webui与faster-whisper-webui都一致
主要差别在於requirements.txt需求套件不同
能在执行app.py时,使用[--whisper_implementation]来决定whisper实作方式
--whisper_implementation faster-whisper
另外也都有附上两种版本的套件相依管理档案
requirements-whisper.txt
requirements-fasterWhisper.txt
3. 建立python虚拟环境
先安装Python 3.10.12
(或是系统已有安装的直接使用)
python从3.4版本开始支援建立虚拟环境
好处是每个专案之间不会版本干扰
坏处是每个专案档案都超大
这边为whisper建立venv的虚拟环境
cd path\faster-whisper-webui\
python -m venv venv
venv\Scripts\activate
执行activate後,才会进入虚拟环境,前面会加上venv名称(如下)
(venv) path\faster-whisper-webui>
4. 安装pytorch
在windows上主要有两种安装方式: Conda与pip
我习惯使用pip,这个安装完python後就有
Conda除了python外还要再安装Conda管理系统
如果是使用Conda,前一步骤就会在Conda中做掉
这边仅说明pip方式,我选择安装CUDA 11.8
pip3 install torch torchvision torchaudio --index-url
https://download.pytorch.org/whl/cu118
5. 用pip 安装fasterWhisper 需要的套件
pip install -r requirements.txt
6. 执行app.py
在cmd命令提示字元中
cd path\faster-whisper-webui\
set COMMANDLINE_ARGS=
--whisper_implementation faster-whisper --input_audio_max_duration -1
python app.py %COMMANDLINE_ARGS%
上面[COMMANDLINE_ARGS=]後面不能断行,这边因为太长了才断行显示
7. 自制修改版本
其实我自己也有从aadnk作者
那边fork一份做了些修改
*首先我加入了webui.bat
这是参考stable-diffusion-webui的程式修改的
我只要执行webui.bat就能启动app.py了
*Chinese自动繁体中文
whisper的一个缺点就是辨识的中文几乎是简体的
要使用prompt提示他要使用繁体中文
如果每次使用都要手动调整也是很烦人
我就加入了判断,选择Chinese时
自动将initial_prompt 加上 "繁体: "
* 变更yt-dlp的youtube预设下载格式
原版本输入youtube影片连结时
仅会下载声音档案【bestaudio】
我修改为【bestvideo[ext=mp4]+bestaudio[ext=m4a]】
这样就会下载完整影片档案
*再来是我加入了一些新arguments:
--vad_max_merge_size:
启动时可以自动带入自订的Max Merge Size (s).
--language:
启动时可以自动带入自订的语言
--save_downloaded_files:
原版本贴上的影片url,在辨识完毕後,会自动移除,
加上这个後会将影片移动至指定的输出位置(--output_dir XXX)
--merge_subtitle_with_sources:
设定这个後,在影片语音辨识完成後,会将产生的字幕srt档案
使用ffmpeg自动与影片档案合并,并且移动至指定的输出位置(--output_dir XXX)
设置後会取代save_downloaded_files功能
--autolaunch:
这个就是执行後,会自动在浏览器开启[
http://127.0.0.1:7860/]
avans06/whisper-webui
https://huggingface.co/spaces/avans06/whisper-webui
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.71.20.228 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AI_Art/M.1689866228.A.CBA.html
1F:推 v86861062: 推推 07/20 23:37
2F:推 Vulpix: 看起来很棒,之後来用~ 07/21 00:32
3F:推 Vulpix: 另外想问一下关於tts有没有类似的,嗯,可以自己训练模型 07/21 00:38
4F:→ Vulpix: 并拿来用的专案?类似的东西网路上好像很多,但看不懂。 07/21 00:39
tts确实有不少
因为我仅有听日文小说的需求
前阵子我有在huggingface搜寻後
找到RinneVoiceSet声音模型
这个是使用COEIROINK-GPU这个软体来发音的
不过因为只能说日文
用途非常有限呢
COEIROINK-GPU
https://coeiroink.com/download
RinneAi/RinneVoiceSet
https://huggingface.co/RinneAi/RinneVoiceSet
※ 编辑: avans (111.71.20.228 台湾), 07/21/2023 00:52:17
还有一个比较新的
支援多国语系的tts
虽然我没用过
youtube上有不少介绍
也可参考看看
https://github.com/suno-ai/bark
https://huggingface.co/spaces/suno/bark
※ 编辑: avans (111.71.20.228 台湾), 07/21/2023 01:06:24
5F:推 Vulpix: bark听起来好可爱(重点误)可是好像都没看到自己训练的。 07/21 14:22
6F:→ Vulpix: 因为也不想用其他人的声音,想歌声或说话都用自己的声线。 07/21 14:23
7F:推 andersonhaha: 推 感谢分享 07/26 06:09