4.gif

65db783d

GF  2022-08-11 20:22

关于PaddleSpeech语音转字幕的展望,就差一个程序猿啦

识别字幕一直是很有用的技术,但是这个技术一般都是网站提供接口,要么交钱要么有限制,这种关键技术被卡脖子就非常难受,我一直希望有离线的语音识别软件,不用看大公司的脸色。直到我偶然发现了这个《音频转文字小工具,离线版来了,无限用!》

然后因为我是win7,就没下,而且这个只是翻译,翻译得还不快,距离生成字幕也还有段距离,但是因此认识到PaddleSpeech框架,走起。

百度的PaddleSpeech框架属于飞桨,这个飞桨还挺大方。每天可以用8个小时,就相当于免费的云电脑(不过限制大,要懂代码),不要用免费的,直接起步用1点/小时那个或者更高的,否则会出些奇怪的问题,估计性能也差,反正点数也不能累加不用省。

《【超简单】之基于PaddleSpeech搭建个人语音听写服务》

可以看成上面那个小工具的原型,直接运行复制,是可以跑得通的。

只需要修改少量代码,就可以生成“Region 1: 00:00:03,000 --> 00:00:04,500”这种格式的数据和翻译出来的语句,其实这种就和
引用

1
00:00:03,000 --> 00:00:04,500
在国外呢

这样的字幕非常像。

而代码需要的wav音频可以用格式工厂转化得来。

我目前修改的版本就是生成result和result2,result是翻译出来的字,result2是对应的时间轴,可以看出翻译和时间轴的行数是一致的。

目前的烦恼就是,我不太会python,所以不能直接生成srt字幕文件,只能复制粘贴,用我熟悉的JQ去解决两个文件合成字幕字符串的工作。如果有大佬能直接改成生成字幕文件那就太好了,反正都是些处理字符串的工作。
还有就是,“00:00:03,000”逗号后面是毫秒,我不知道如何用python传入秒数生成毫秒这样的格式。
另外不知道怎么分享飞桨工程,不知道怎么离开服务器后固化已经安装的

我的一些经验:
1.生成字幕后,用ffmpeg写入字幕,MP4格式的软字幕需要一些播放器支持,用MKV格式的软字幕就比较好,也可以直接MP4写入硬字幕
复制代码
  1. (MP4软字幕,需调): ffmpeg -i 03.mp4 -i 8.srt -c copy -c:s mov_text 2.mp4
  2. (MP4硬字幕,需重新编码): ffmpeg -i 03.mp4 -vf subtitles=8.srt out.mp4
  3. (封装MKV): ffmpeg -i 03.mp4 -i 8.srt -c copy output.mkv

2.飞桨上上传的文件限制为150MB,一个小时以上的WAV妥妥的超了,此时可以用zip分包成小于150MB的上传,在服务器合并解压,下列3个“outpath”要写对
复制代码
  1. cat outpath.* > outpath_all.zip
  2. !unzip outpath_all.zip


3.1小时的音频大概转8-9分钟,可以接受,而且可以挂着干别的,反正飞桨的服务器又不是自己的电脑。
4.封装python(据说一定要64位,3.7版本以上)离线版我本来想用aardio,不过似乎aardio只支持32位,我还去知乎请教了该软件作者怎么用python64位,他说了一堆管道调用吧啦吧啦,结果今天作者愤而出走知乎,把帖子全删了

我的期望就是,把这玩意封装成一个win7能用的离线版,一键生成字幕就好了(“超简单”作者的另一个不是离线版的)。现在可以处理中文,理论上应该很容易处理英文,那未来处理日文也是可以期待的,据我理解,都是机器学习的事,期待有大佬能实现这些功能吧!

我的代码:
此帖售价 0 SP币,已有 18 人购买
若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID!

5.gif

indesperate

B1F  2022-08-11 20:50
按道理各个国家应该都有自己语言的识别机器学习项目啊   

5.gif

indesperate

B2F  2022-08-11 21:06
paddle-speech这个项目是语音识别吧,在issue#979里看到目前还是只支持中英俩种语言,不支持多语言,有点可惜啊,我找了半天   

5.gif

indesperate

B3F  2022-08-11 21:19
翻了半天,找到一个julius,日本人的语音识别模型,我下下来试下怎么样,不过我的1050ti估计遭不住

5.gif

indesperate

B4F  2022-08-11 22:22

回 16楼(65db783d) 的帖子

下下来跑不了,文档还是日文的直接G    ,不过看起来是个语音识别项目,让我插一个input device,我又没有,    ,不折腾了,还是等有能人吧