音频转文本--我们选择faster-whisper

faster-whisper能用来做什么?
可以将视频文件中的音轨自动转换为文字。
所以,字幕组是要失业了么?
试试看吧,看看转化效果如何。
使用faster-whisper,最好选择python3.10版本,那好吧。
作者的系统环境是:
  • 笔记本:ThindPad P520
  • OS:win11
  • 显卡:Quadro P520
1、安装anaconda
为什么要安装anaconda?
因为我日常开发用python3.11的版本,使用YOLOv8需要python3.8的环境,这次使用faster-whisper需要python3.10的环境,需要切换python环境。
anaconda的安装和配置,请参考《 YOLOv8入门篇--YOLOv8的安装和使用》。
2、创建虚拟环境(指定python3.10)
查看已有的conda虚拟环境
切换到创建好的虚拟环境
conda create -n fwhisper python=3.10
conda env list
conda activate fwhisper
3、安装git命令行工具
下载地址: Git - Downloads
并配置代理
//http || https
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890
4、下载源码faster-whisper-webui
git clone https://github.com/ycyy/faster-whisper-webui.git
进入源码目录:
cd faster-whisper-webui
安装项目依赖:
pip3 install -r requirements.txt
还要安装faster-whisper依赖:
pip3 install -r requirements-fasterWhisper.txt
5、模型的下载和配置
首先在项目的目录建立模型文件夹:
mkdir models
faster-whisper项目内部已经整合了VAD算法,VAD是一种音频活动检测的算法,它可以准确的把音频中的每一句话分离开来,并且让whisper更精准的定位语音开始和结束的位置。
所以,首先需要配置VAD模型:
git clone https://github.com/snakers4/silero-vad
然后,将克隆下来的vad模型放入刚刚建立的Models文件夹中即可。
接着下载faster-whisper模型,下载地址:
git clone https://huggingface.co/guillaumekln/faster-whisper-large-v2
这里建议只下载faster-whisper-large-v2模型,也就是大模型的第二版,因为faster-whisper本来就比whisper快,所以使用large模型优势就会更加的明显。
注意: 下载后的目录是 faster-whisper-large-v2,要分成两级目录: faster-whisper和large-v2。
模型放入models文件夹的faster-whisper目录,最终目录结构如下:
models
├─faster-whisper
│ ├─large-v2
└─silero-vad
  ├─examples
  │ ├─cpp
  │ ├─microphone_and_webRTC_integration
  │ └─pyaudio-streaming
  ├─files
  └─__pycache__
至此,模型就配置好了。
6、测试模型
回到项目根目录faster-whisper-webui下,
执行如下命令:
python cli.py --model large-v2 --vad silero-vad --language Japanese "https://www.youtube.com/watch?v=4cICErqqRSM"
是不是碰到了如下错误?
安装一个合适的pytorch即可
访问: PyTorch
拷贝来自该网页的一个命令,并执行:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
注意:要安装合适的版本,可以参考《 YOLOv8入门篇--YOLOv8的安装和使用
再次执行测试命令:
python cli.py --model large-v2 --vad silero-vad --language Japanese "https://www.youtube.com/watch?v=4cICErqqRSM"
看到输出如下,成功了!
更高级的一些用法,可以阅读README.md。
### 关于 PotPlayer 集成 Whisper-Faster 模型 在探讨如何使 PotPlayer 能够集成 whisper-faster 模型以实现更快速的录或处理时,需考虑几个方面。Whisper 是由 OpenAI 开发的一种强大的语音识别模型,而 whisper-faster 则是对该模型进行了优化以便更快地执行推理过程[^1]。 对于希望增强多媒体播放器功能的应用开发者来说,在现有软件架构中引入先进的音频处理能力是一个复杂的过程。具体到 PotPlayer 这样的应用程序上,主要挑战在于: - **兼容性评估**:确认当前版本的 PotPlayer 是否支持外部插件或者自定义脚本加载机制。 - **环境配置**:由于 whisper-faster 主要基于 Python 生态构建,因此需要解决跨语言调用的问题以及确保目标平台上所有依赖项都已妥善安装。 - **性能考量**:即使经过加速优化后的 whisper-faster 模型仍然可能占用较多计算资源,所以在实际部署前应当充分测试其对系统整体性能的影响。 为了成功完成这一任务,建议采取如下策略: #### 使用 FFmpeg 实现无缝对接 考虑到大多数现代媒体播放器(包括 PotPlayer)内部集成了 FFmpeg 库来处理各种格式的音视频文件,可以尝试通过编写特定过滤器的方式让 FFmpeg 将捕获到的声音流传递给运行着 whisper-faster 的本地服务端口进行实时分析[^2]。 ```bash ffmpeg -i input.mp3 -f wav pipe: | python3 transcribe.py --model_path ./models/whisper_faster.pth ``` 此命令展示了如何利用管道操作符将来自任意源的数据重定向至 Python 脚本入口点,从而启动异步化的语音换流程。 #### 构建 Electron 或 NW.js 容器应用 如果上述方案难以实施,则可探索创建一个新的桌面级容器化前端界面,它既能保留原有播放体验又能轻松嵌入更多智能化特性。这类框架允许混合使用 Web 技术栈与原生组件开发跨平台解决方案,并且易于维护更新。 ```javascript const { app, BrowserWindow } = require('electron'); let mainWindow; function createWindow() { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }); mainWindow.loadURL(`file://${__dirname}/index.html`); } app.on('ready', createWindow); ``` 这段 JavaScript 代码片段演示了一个简单的 Electron 应用程序初始化逻辑,其中 `BrowserWindow` 对象负责呈现 HTML 页面并管理窗口行为;与此同时还可以借助 Node.js API 访问底层操作系统接口,进而简化与其他进程通信的任务。 #### 探索社区贡献者的工作成果 最后值得注意的是开源项目往往拥有活跃的支持群体,他们可能会分享一些实用工具包或是预编译二进制文件帮助其他爱好者降低入门门槛。定期关注 GitHub 上的相关仓库动态不失为获取最新进展的有效途径之一。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值