比 faster-whisper 至少快10倍的音视频转换文字

背景介绍

前两天我自己玩玩搞搞一个音频转文字服务,基于 faster-whisper,本想着这个已经是很快的了,没想到还有比它更快的,今天就来介绍使用一下。

FunClip,是阿里巴巴推出的一个智能视频剪辑工具,它结合了人工智能技术,特别是语音识别和自然语言处理,提供了一种全新的视频剪辑体验。通过集成阿里巴巴通义实验室的 FunASR Paraformer 系列模型,FunClip 能够对视频中的语音内容进行自动识别,并根据识别结果进行视频剪辑。

我们就是利用它的语音识别和自然语言处理的一部分功能,快速实现对音频,以及视频进行文字转录

注意:目前仅支持中文,后续有可能会迭代加入英文或者其他更多语言

GitHub项目地址:https://github.com/alibaba-damo-academy/FunClip

功能特点

1:语音识别与转录:FunClip 利用 FunASR Paraformer 系列模型进行视频语音的自动识别,并将语音转换为文字,支持热词定制化和说话人识别,提升了特定词汇的识别准确率,并能自动生成 SRT 字幕文件。
2:视频剪辑:用户可以根据识别结果中的文本片段或说话人,快速裁剪出所需视频片段。FunClip 支持多段剪辑,并提供了灵活的编辑能力,用户可以在剪辑过程中自由组合多个视频片段。
3:用户界面:FunClip 提供了简洁明了的用户界面,操作简单易懂,支持在服务端搭建服务,并通过浏览器进行视频剪辑。
4:部署方式:FunClip 支持本地部署,用户可以通过简单的命令行操作进行安装和启动。

本地部署

1:利用 git 或者 直接下载代码到本地,推荐使用git

	git clone https://github.com/alibaba-damo-academy/FunClip.git

2:安装依赖,需要本地有python环境,推荐python>=3.10

	cd FunClip
	pip install -r ./requirements.txt

3:启动项目服务,会自动下载所需模型以及依赖,集成了操作页面,可以访问返回的地址链接进行浏览器访问

	python funclip/launch.py

4:不依赖界面,使用命令行进行操作 -------------- 识别语音

	python funclip/videoclipper.py --stage 1 --file /data/sese.mp4 --output_dir ./output
	---------------------------------------------
	--file:你要识别的音视频文件目录地址
	--output_dir:生成的srt文件放到的文件夹

测试

使用一个233秒的音乐视频,从开始识别到输出结果,用了大概5秒钟,加上加载一些依赖,共用了14秒左右
(我的GPU服务器有点拉,配置好点的会更快)
在这里插入图片描述
这是生成的srt文件内容,会自动打点每句话的开始和结束时间
在这里插入图片描述

其他功能

1:识别说话人,可快速提取说话人的内容以及剪切说话人的所有镜头或者音频
2:自动加字幕
3:AI总结推理

结语

我是个开发者,比较喜欢用命令的方式调用,也粗读了一下项目代码,从入口文件 funclip/launch.py,里面有我觉得比较实用的定义的功能方法:

1:mix_recog:简单识别成文字

2:mix_recog_speaker : 识别成文字,并添加每句话是哪个说话人说的,带说话人的识别,srt里会有个spaker 的标识

3:mix_clip :剪切音视频的入口,可以根据说话内容和说话人进行定向剪切

4:llm_inference:用AI模型给你自动总结的,根据srt里的内容,你可以定义prompt,让AI给你提取内容剪切,推荐使用阿里的qwen系列,在阿里云百炼平台开通并拿到apikey,就能使用

5:AI_clip:智能剪切

😄😄😄😄😄😄😄😄😄😄😄😄😄😄其他更多功能自行发觉吧😄😄😄😄😄😄😄😄😄😄😄

### 关于 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 上的相关仓库动态不失为获取最新进展的有效途径之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值