神经网络实用工具(整活)系列---使用OpenAI的翻译模型whisper实现语音(中、日、英等等)转中字,从此生肉变熟肉---提高篇(附带打包好的程序)

这篇具有很好参考价值的文章主要介绍了神经网络实用工具(整活)系列---使用OpenAI的翻译模型whisper实现语音(中、日、英等等)转中字,从此生肉变熟肉---提高篇(附带打包好的程序)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇文章介绍了怎么用OpenAI的翻译模型whisper实现语音转中字的基本操作,在文章中也明确了该操作存在的三个问题:

  1. 处理速度慢。
  2. 存在幻听现象,字幕准确度不太理想。
  3. 要安装比较多的环境才能运行,对一般用户不太友好。

本篇文章将逐一介绍解决这些遗留问题的方法,并把整个项目开源

对于编程小白,可以直接跳到文章的最后下载作者打包好的语言转中字软件玩一玩。

1. 优化处理速度

在前面的文章中我们使用的whisper版本是OpenAI开源的原版,其处理速度确实也就那样。基础篇的测试中,在一台配置为CPU 5900X、GPU 4090的PC上使用几个不同的模型将一集接近24分钟的《工作细胞》(日语语音)转为英语字幕所花的时间如下表所示:

使用模型 tiny base small medium large
GPU
识别速度(s)
240.86 252.37 193.85 224.00 291.68
CPU
识别速度(s)
1599.76 太慢了不测了 太慢了不测了 太慢了
不测了
太慢了不测了

虽然这个速度也不是完全不能接收,但终归还是差了点意思。特别是对于显卡本身就不好的同志,更是要命。

这个问题其实已经被人解决了,Const-me老哥在Windows平台上通过directx的并行计算接口对whisper实现了并行加速。这样一来,如果电脑装的是Windows操作系统,就可以直接下载老哥提供的程序以实现基于whisper的加速操作。

程序下载地址在这:https://github.com/Const-me/Whisper/releases/tag/1.11.0?file=1.11.0

神经网络实用工具(整活)系列---使用OpenAI的翻译模型whisper实现语音(中、日、英等等)转中字,从此生肉变熟肉---提高篇(附带打包好的程序),神经网络实用工具(整活)系列,神经网络,whisper,人工智能

对于小白而言,直接下载带界面版本的程序就可以实现语音转文字的操作(如果语音是日语就输出日文,也可以选择翻译为英语)。由于我们基础篇已经实现了一个界面,因此这里下载了其命令行版本。

PS:还需要去下载对应的模型。地址在这:https://huggingface.co/ggerganov/whisper.cpp/tree/main

东西准备好后,通过如下的命令就可以实现语音转文字的操作了:

.\main.exe -f ".\1.mp4" -m .\models\ggml-medium.bin -l ja -t 8 -tr

运行速度对比如下(现在哪怕是核显都支持了Direct11,因此这里没有测试单独使用CPU的情况):

使用模型 tiny base small medium large
官方原版GPU
识别速度(s)
240.86 252.37 193.85 224.00 291.68
Const-me版GPU
识别速度(s)
13.75 22.90 38.04 57.08 82.93

对比表的二三行可以看到速度提升了3-10+倍,普大喜奔!!!

到此速度的优化就结束了。PS:本人其实没做任何工作,哈哈哈。。。

2. vad优化

whisper在转非英文音频且音频没有人物对话的时候经常出现幻听现象,也就是在没有语音的片段也会输出大量重复且无意义的文字。为此,我们通过vad来选择语音中的对话部分,把其他部分过滤掉(具体的操作在这篇文章已经介绍了,因此这里只介绍实现细节)。

  1. 使用ffmpeg将视频中的语音转为silero-vad要求的16000khz采样频率且位宽为16的wav音频。
  2. 通过silero-vad识别语音中的人物语音起止时间,然后使用ffmpeg将识别到的人物语音片段分成多个文件输出,文件按一定的规律编号,并把语音的开始时间包含在文件名中。
  3. 使用whisper识别所有的语音片段(直接在命令行中写成-f file1 -f file2的形式即可),得到每个语音片段对应的文字。
  4. 通过文件名把每个语音片段对应的文字拼接在一起得到全部的字幕。

加上vad优化后跑一下工程会有肉眼可见的翻译质量提升,因此这里没有进行详细的测试,有兴趣的同志可以量化一下。

3. 程序发布

本工程中用到了whisper、vad和ffmpeg三个工具。

因为Const-me大神已经将whisper打包了,ffmpeg本身就有打包成exe的可执行程序可以直接下载,因此我们只需要将vad程序打包(这篇文章已经介绍了怎么使用C++版本的silero-vad,因此将其编译出来就得到了exe可执行文件),然后写个胶水程序把它们黏在一起即可。

在基础篇中我们已经用Python写了一个界面,因此可以通过修改这个程序将上述的三个功能黏在一起。具体的实现不表,有兴趣可到工程的开源地址查看(文章最后给出)。完成胶水程序后,就只剩下打包胶水程序本身的问题了(如果用可编译的语言写胶水程序的话则不存在这个问题,然而Python写起来确实快。。。)。

对于一个Python程序来说,最简单的打包方式是把整个Python解释器所在文件夹直接打包,然后写个bat脚本去调用就完事了。然而这么搞有一点点不优雅,而且打包的东西也太大了。为此,本项目使用Nuitka将Python编写的胶水程序(界面程序)打包成了可执行文件(这块网上有不少教程,以后有心情单独开一篇来讲)。

到此,我们就把语音转文字所有需要的工具以及调用它们的程序全部理清楚了,只需要把它们做成一个zip或者打包成一个安装包,即可在装有windows的不同电脑上运行。

项目地址

https://gitcode.net/oHanTanYanYing/whisper_vad

语音转文字软件下载

https://gitcode.net/oHanTanYanYing/whisper_vad/-/releases?spm=1033.2243.3001.5877

神经网络实用工具(整活)系列---使用OpenAI的翻译模型whisper实现语音(中、日、英等等)转中字,从此生肉变熟肉---提高篇(附带打包好的程序),神经网络实用工具(整活)系列,神经网络,whisper,人工智能

参考文章

https://github.com/Const-me/Whisper/releases/tag/1.11.0文章来源地址https://www.toymoban.com/news/detail-520344.html

到了这里,关于神经网络实用工具(整活)系列---使用OpenAI的翻译模型whisper实现语音(中、日、英等等)转中字,从此生肉变熟肉---提高篇(附带打包好的程序)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MATLAB数据处理实用案例详解(22)】——基于BP神经网络的PID参数整定

    基于BP神经网络的PID控制的系统结构如下图所示: 考虑仿真对象,输入为r(k)=1.0,输入层为4,隐藏层为5,输出层为3,仿真输出满足 a ( k ) = 1.2 ( 1 − 0.8 e x p ( − 0.1 k ) ) , y ( k ) = a ( k ) y − 1 1 + ( y − 1 ) 2 + u − 1 a(k)=1.2(1-0.8exp(-0.1k)),y(k)=a(k) frac{y-1}{1+(y-1)^2}+u-1 a ( k ) = 1.2 ( 1 −

    2024年02月07日
    浏览(52)
  • 无极低代码,免费工具在线实用工具分享

      在当今数字化的时代,我们需要尽可能地减少手动操作,提高工作效率。这就是为什么我们需要一些在线工具来帮助我们完成一些繁琐的任务。以下是一些无极低代码网集成的在线工具,可以帮助您更快、更轻松地完成任务。 项目周期计算 :可以帮助您计算项目周期,以

    2024年02月16日
    浏览(37)
  • Linux性能优化--实用工具:性能工具助手

    本章介绍一些在Linux系统上可用的实用程序,它们能够加强性能工具的有效性和可用性。实用工具本身不是性能工具,但是当它们与性能工具一起使用时,它们可以帮助完成如下功能:自动执行繁琐的任务、分析性能统计数据,以及创建性能工具友好的应用程序。 阅读本章后

    2024年02月07日
    浏览(34)
  • 推荐九大类实用的AI工具网站 | 最实用的AI工具网站推荐大全(建议收藏!!!)

    随着AI技术的快速发展,越来越多的网站开始提供AI工具,以帮助用户解决日常工作和生活中的问题。在这篇博客中,将为大家推荐一些实用的AI工具网站。 Write With Transformer(https://transformer.huggingface.co/):基于GPT系列模型的自动写作工具,可以帮助用户完成各种写作任务。

    2024年02月08日
    浏览(42)
  • [Python] 缓存实用工具

    cachetools 是一个 Python 库,提供了用于缓存的实用工具,包括各种缓存算法和数据结构,如 LRU (最近最少使用)缓存、 TTL (时间到期)缓存等。使用 cachetools 可以轻松地在 Python 应用程序中实现缓存功能,提高性能并减少对重复计算的需求。 以下是一个简单示例代码,演示

    2024年03月09日
    浏览(28)
  • 编程实用工具推荐

    Snipaste,一款简单强大的截图贴图利器 下载地址:Snipaste Codelf通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Projec的项目源码,帮开发者从中找出已有的匹配的变量名。这个搜索服务支持直接搜索中文。codeif支持中文查询,输入中文意思,codeif可

    2024年02月12日
    浏览(29)
  • BP神经网络预测实例(matlab代码,神经网络工具箱)

    参考学习b站资源: 数学建模学习交流 bp神经网络预测matlab代码实现过程 神经网络简介 可在github下载(含原始样品数据): https://github.com/chenshunpeng/BP-neural-network 最早的神经网络模型, 单层感知器perceptron,结构如下: 这是一个两层的神经网络,第一层为输入层,第二层为输

    2024年02月12日
    浏览(29)
  • 【实用工具】vim常用命令

    快速移动(上下左右箭头可替代) 在本行操作 跨行移动光标 复制,粘贴,删除(d,y,p) 撤销操作和恢复 快速注释 取消注释 参考链接: https://zhuanlan.zhihu.com/p/68111471 https://cloud.tencent.com/developer/article/1463765

    2024年02月03日
    浏览(23)
  • 【工具篇】Firmwalker车联网安全实用小工具介绍

    前言 firmwalker这个小工具在工作中也一直在用,正好领导说要写一篇这个工具的分析说明文章,经过询问可以发表博客。由于一直在用,所以末尾优劣势部分存在一些主观想法。 编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ PS:文章末尾有联系方

    2024年01月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包