摸鱼日记之我在公司接私活

私活没给钱, 帮老板的忙...呜呜呜, 我好可怜...

写这篇文章三个目的.

  1. 感觉挺好玩, 可以给鱼油增加一些奇奇怪怪的技能. 怎么开脑洞, 就看各位了.
  2. 吐槽一下老板 ( 主要为了凑够三条. 阿达说说明不够三条总感觉不顺! )
  3. 积分 往圣继绝学
  4. 三条够了, 这个是自动换行.

需求

视频 -> 语音 -> 文字. 要求离线完成!

需求分析

百度+必应+谷歌

实战

keyWord: 视频转音频 离线

No.1 格式工厂. 我MAC...pass

No.2 修改后缀名为.MP3 离谱...

....

此处省略N多无用功... 请自行了解神器 FFmpeg

庆幸我用了这个. 后面有惊喜

keyWord: 音频转文字 离线

信息杂乱无章...无从下手, 不是下载APP就是要付费使用, 免费限制转的时长...

keyWord 使用失败, 使用秘密武器. 问狗子. 他给我了个这个 whisper.cpp

芜湖. 美妙~ 看完readme. 庆幸我上一步选了ffmpeg. 嘻嘻. 因为whisper只能支持指定编码的wav格式音频.

步骤

  • 克隆仓库, 你自己位置自己选 cd {uPath}

git clone https://github.com/ggerganov/whisper.cpp.git

  • 进去文件夹

cd {uPath}/whisper.cpp(如果你没有自定义文件夹名字的话)

  • 找到models

cd models

  • 下载训练模型数据. 越大越好. 准确率越高. 你懂的
    • tiny 大小: 75M 内存: ~125M
    • base 大小: 142M 内存: ~210M
    • small 大小: 466M 内存: ~600M
    • medium 大小: 1.5G 内存: ~1.7G
    • large 大小: 2.9G 内存: ~3.3G

bash download-ggml-model.sh large

  • 返回上级目录 其实就是为了执行main. 你用全路径也随你

cd ..

  • 音频转文字吧. gogogo

./main -m models/ggml-large.bin -f {uPath}/音频.wav

📢Tips : wav是whisper指定的语音格式. readme里有提示. 需要16-bit的wav文件. ffmpeg 完美搞定

ffmpeg -i {uPath}/xxx.mp4(.mp3) -ar 16000 -ac 1 -c:a pcm_s16le {uPath}/音频.wav

  • 这里默认language 是 en 所以要加上指定参数 -l zh . 当然我没有看支不支持别的语言, 什么 kr, jp的trollface

./main -m models/ggml-large.bin -f {uPath}/音频.wav -l zh

✿✿ヽ(°▽°)ノ✿ 观察屏幕! 嘻嘻 带时间戳, 带文字. 很好~

[00:00:00.000 --> 00:00:01.680] 这么高的地方
[00:00:01.680 --> 00:00:03.680] 哪个玩滑板的不腿软
[00:00:03.680 --> 00:00:06.680] 都是些敢上不敢下的
[00:00:06.680 --> 00:00:09.680] 踩了块板就以为自己能上天
[00:00:09.680 --> 00:00:10.680] 来来来
[00:00:10.680 --> 00:00:11.680] 新开的骨科
[00:00:11.680 --> 00:00:12.680] 送你一副管
[00:00:12.680 --> 00:00:28.680] 都想上天了
[00:00:28.680 --> 00:00:30.260] 小上天啦


很好, 不要问我原理. 作为合格的摸鱼人, 能实现需求已经是我对工作最大的尊重了.

脱帽致谢

Tips. 有感兴趣的可以去追下bula院士和跳佬来安排下, 原理解析

⚠️ 打赏区什么都没有, 不存在欺骗. 你如果打赏, 则视为对我的遭遇表示同情, 仅此而已

4 打赏
打赏 128 积分后可见