1480423.png

ptilopsis

GF  2024-04-30 00:42
(平等的厌恶着所有不纯爱的作品)

[教程贴] 关于音声视频压制、字幕提取、字幕格式转换等

之前发过一些lrc提取和音声视频压制优化的资源,正好最近仓库盘空间快见底了,正在压视频,本着授人以鱼不如授人以渔的原则,简单介绍一下一些音声常用的工具和方法

1. 字幕转换
由于大量“大家一起来翻译”提供的字幕都是.vtt格式的流媒体视频字幕,纯音频播放器一般不认这个字幕,这里提供一些解决方案:

1.1 使用视频播放器
例如potplayer、mpv、mpc、vlc等,这些播放器可以正常识别视频字幕,缺点是他们本身是视频播放器,在ui设计等方面上不如专门的音频播放器适合听音频

1.2 转换为.lrc歌词文件
这里推荐使用Subtitle Edit这个工具,如图所示:

选择 批量转换 即可;注意由于该工具默认的最长单句字幕时间为8s,超过的部分会被截断,所以如果字幕比较长的话需要先去 选项->设置 里调整一下,一般25s就足够了
lrc的缺点是它是作为歌词设计的,而正常的歌词不会超过一小时,所以lrc实际上没有超过60min部分的规范,如果单轨超过了60min,超过的部分按什么规则写才能用完全看播放器怎么解析,比较看脸


2. 字幕提取
首先需要区分字幕种类的不同,如果字幕是作为视频文件中的一个独立轨道存在的,这种称为软字幕,可以利用ffmpeg或类似工具直接提取:
复制代码
  1. ffmpeg -i input_video.mp4 -map 0:s:0 output_subtitle.srt

如果视频中有多个字幕流,可以通过更改-map参数后面的数字来选择不同的字幕流。例如,如果要提取第二个字幕流,可以使用-map 0:s:1
由于.mp4封装支持的字幕格式非常有限,因此大部分.mp4的视频都不太可能是软字幕,就音声而言,所有的官中视频都不是软字幕

对于硬字幕,即字幕是视频的一部分的情况,需要专门的工具进行识别、截图再ocr出字幕文本。我使用的是https://zhuanlan.zhihu.com/p/559874793,这个工具作者在帖子里有详细的使用说明,我就不再介绍了,体验上UI比较简陋稳定性也一般,但用起来还是挺顺手的,有什么别的好用的工具也可以推荐一下

3. 音视频压制

3.1 音频压制
关于音频这部分我了解也不是很多,就说说我知道的
首先大部分音声的原档都是.wav波形文件,这是pcm编码的完全未压缩的原始音频文件,体积非常大,且码率是固定且可计算的(采样率*位深);如果直接存储.wav文件显然对硬盘空间的占用太大了,所以需要对它进行压缩


3.1.1 无损压缩
最广泛使用的无损压缩就是.flac,压缩率也还不错,且压缩速度非常快,ffmpeg使用以下代码即可
复制代码
  1. ffmpeg -i input.wav -acodec flac -compression_level 12 output.flac

compression_level是压缩等级,越高体积越小压缩越慢,最高12级速度仍然很快,所以推荐直接12拉满;其他的无损压缩格式都不太常用或常见,我也不怎么了解,这里就不多说了;顺便说一句,有些厂商的原档采用的位深是32bit float,而flac不支持float,所以理论上这种情况不能无损,但我的评价是我声卡也就支持24bit 48khz,所以无所谓   

3.1.2  有损压缩
大多数音声厂商的原档里也会提供320kbps的.mp3音频,其实大多数人也听不太出来啥区别()不过我之前看到过b站一个视频(找不到了,不然这里该贴张图的),引用的论文中有当前几种常见有损格式的对比,包括mp3,aac,ogg,opus;在盲测中,mp3即使达到一般情况的上限码率320k也无法达到听觉无损(需要差不多500k),表现最好的是opus,不到200k的码率即可达到听觉无损,其次是aac
所以如果需要把音声文件有损压缩节省空间的话,我首推opus,且opus还有另一个优势,就是它的标准融合了某高质量的通信编码,对人声的编码效率更高更清晰,简直是音声量身定制啊   这里给个ffmpeg代码

复制代码
  1. ffmpeg -i input.wav -acodec libopus -vbr on -b:a 192k -compression_level 10 output.opus

但opus是一个比较新的编码,一些播放器的兼容性可能还不太好,如果需要考虑兼容性,这里会更推荐aac编码(已经有少量音声厂商在提供aac编码的音频了)因为没怎么用过所以不太了解相应的编码参数,不过现在大部分流媒体视频的音轨部分其实就是aac编码,所以兼容性完全不用担心(顺便aac编码一般会封装成.m4a格式)

3.2 视频压制
关于视频压制,首先要明确一点,就是视频基本是不存在“无损压缩”的;当然有些编码器是可以通过特定的参数设置无损输出视频的,但对于视频来说无损所需的码率和存储成本实在太高,除了影视相关行业之外一般不可能这么干
所以对视频来说,我们需要追求的是在尽可能保证画面质量的前提下缩小体积,尽量达到“视觉无损”的状态


3.2.1 FFMpeg
前面提到了很多次ffmpeg,这是一个非常牛逼的多媒体工具,不管你用不用得上都建议装一个,反正也就百来MB,万一用上了呢  由于没有官方编译的版本,一般使用可以从https://github.com/GyanD/codexffmpeg/releaseshttps://github.com/BtbN/FFmpeg-Builds/releases这两个官方推荐的源进行下载,直接解压到需要的文件夹就行,建议将bin文件夹加到系统环境变量方便使用,不然每次用都得打完整的程序路径

3.2.2 视频编码器选择
写累了,一会在楼里继续
描述:解压密码vision
附件: 音声视频制作.zip (4 K) 下载次数:9

70760.jpg

油豆腐

B1F  2024-04-30 00:48
(loli鹿岛真是太棒了)
转lrc这个很实用

星野爱


1ca3172c6235ab5e.gif

y

B3F  2024-04-30 01:30
(头像出处:https://bbs.imoutolove.me/read.php?tid-2189330.html)
  给大佬点赞

1480423.png

ptilopsis

B4F  2024-04-30 01:54
(平等的厌恶着所有不纯爱的作品)
3.2.2 视频编码器选择
考虑到现在的硬件普及率,h265编码(HEVC编码)应当是目前最优的选择,它比大部分厂商在提供的音声视频中使用的h264(AVC)效率高至少30%(也就是说你的编码设置只要别太离谱至少能压掉30%的文件体积),并且编码解码都有较好的硬件支持
在ffmpeg中,主要支持的h265编码器有以下几个:libx265(CPU编码)hevc_qsv(Intel显卡(含核显)硬件编码)hevc_nvenc(Nvidia显卡硬件编码)hevc_amf(AMD显卡(含核显)硬件编码);这几种编码器所用的参数各不相同,编码质量表现也有区别。

我没用过A卡所以没法测,不过根据大多数博主的测试,A卡在7000系之前的编解码器都是一坨屎,7000系提升挺大但还是追不上另两家,所以A卡用户自行斟酌吧  

对于有英特尔核显或显卡的用户,首推qsv编码;因为大多厂商提供的音声视频都是个基本静态的画面配上字幕,顶多再加个频谱线,这种画面对码率要求非常低,而超低码率下qsv的表现非常好。可以参考我发的帖子https://www.north-plus.net/read.php?tid-2163091.html,原视频的码率甚至有高达接近10Mbps的,非常怀疑是制作方导出的时候抽风了瞎几把填;我压过之后视频部分的码率基本在200k-350kbps,画面损失也不大。这里使用的编码参数为:

复制代码
  1. ffmpeg -i "input.mp4" -acodec copy -vcodec hevc_qsv -look_ahead 1 -global_quality 28 -preset veryslow "output.mp4"

音频轨直接复制,视频轨启用了look_ahead,这是qsv的特有功能,在这种画面变化很小的情况下可以把码率压到低的离谱的程度;global_quality后面是质量参数,1-51越小质量越好,18-21左右可达到视觉无损;preset这个参数调整的是编码速度,它几乎不会影响视频本身的质量,但越慢可以把视频输出的码率压的越低,占用的空间也就越小,因为这里本身速度就挺快了,所以直接拉到最慢提升质量
关于这个重压制的内容我写了个.bat脚本自动执行,一会全写完了传到主楼的附件去,有兴趣的可以自取

对于N卡用户,N卡在速度上会略快于I卡,但论极限码率是低不过I卡的,不过用倒是也没问题,这里给一个参考的编码参数:

复制代码
  1. ffmpeg -i "input.mp4" -acodec copy -vcodec hevc_nvenc -cq 28 -preset veryslow "output.mp4"

其实本质上和上面的qsv没什么区别,只不过因为N卡没有look_ahead这种功能,所以效果上比不上I卡,码率会高一些;还需要注意的是虽然质量参数都是28,但不同编码器的相同参数下视频画面质量并不一定相同,与他们的码率控制策略有关

如果想使用cpu编码,建议使用小丸工具箱,他们的x265编码器是自行编译特调过的,效果会更好一点;不过小丸能自行设置的编码参数比较有限,这里还是给一个ffmpeg版的参数:
复制代码
  1. ffmpeg -i "input.mp4" -acodec copy -vcodec libx265 -crf 28 -preset slow -tune ssim "output.mp4"

至于这里preset为啥不用最慢,额,用过就懂了

1480423.png

ptilopsis

B5F  2024-04-30 02:15
(平等的厌恶着所有不纯爱的作品)
3.2.3 音声视频制作
3.2.3.1 直接用ffmpeg制作
如果你不打算使用专门的剪辑软件来制作视频,只是想简单的把配图、音频、字幕塞到一起弄成一个视频方便干事,那也可以通过ffmpeg实现
这种视频一般被称为一图流,小丸工具箱也有相关的工具,不过我觉得质量不够好,速度也太慢,所以自行研究了一下
本来以为这问题很简单的,结果发现了一个非常操蛋的问题,即jpg图像作为输入的话会被ffmpeg当做bt601的色彩空间,而现在的各种视频使用的都是bt709的色彩空间,你导出的视频也会被转到bt709的色彩空间,于是视频和输入的图像会有明显的色差
当然,这个问题加一个判断和色彩空间转换就解决了,但色彩空间转换又会占用大量cpu资源,编码器反而吃不满不过能用是能用的
不过这个问题还有另一个解决办法,就是把打算输入的图片先转成png,再作为源输入,因为png会被ffmpeg正常识别为srgb,所以没有这些问题
但还是怎么想怎么逆天
关于一图流的视频制作,我也写了一个python脚本自动执行,等写完了之后一起发到主楼的附件里,需要的可以自取

1480423.png

ptilopsis

B6F  2024-04-30 02:22
(平等的厌恶着所有不纯爱的作品)
3.2.3.2 使用剪辑软件制作
如果你想加点奇奇怪怪的效果、动态,那肯定还是要使用剪辑软件的,不过这方面怎么用就不是本贴的内容了。这里主要推荐一个插件VoukoderPro,支持adobe全家桶和达芬奇,有完善的GUI页面和丰富的自定义编码参数,强烈推荐

1480423.png

ptilopsis

B7F  2024-04-30 02:34
(平等的厌恶着所有不纯爱的作品)
3.2.3.3 视频封装(塞字幕)
前面说了怎么做一图流视频,那要怎么把字幕塞到视频里呢?实际上选一个合适的封装就会很方便
如果你是用剪辑软件制作的视频,那可以直接把字幕压制到视频里做成硬字幕;不过我个人更喜欢做成软字幕,这样灵活性更高

最方便塞字幕的视频封装格式就是常用于电影的.mkv,这个格式可以支持多条视频轨、多条音频轨、多条字幕轨、还有书签,基本就是个万金油格式
.mkv格式的封装有图形化的工具MkvToolnix GUI可用(windows版本下载链接在页面最下面),界面非常简单易懂
另外要注意.lrc歌词文件并不是字幕,是没法封装进去的,建议转成.srt,当然如果你是官方原档有.vtt的话也可以直接封进去

另外.mp4这个常见的封装其实也是可以内嵌软字幕的,不过只支持.srt,操作起来也有点麻烦,这里就不细说了

bfc7673d


1480423.png

ptilopsis

B9F  2024-04-30 02:50
(平等的厌恶着所有不纯爱的作品)
补充:关于视频封装兼容性
前面说了关于字幕的封装,实际上不同格式对视频和音频编码也是有要求的
像.mkv这种万金油封装,基本上是个视频音频都能塞进去,也支持环绕声,属于是随便用
.mp4虽然很常用,不过兼容性一般,视频方面像一些游戏解包出来的theora就不支持,音频方面wav不支持,但是可以支持mp3、opus、aac、flac等,也不支持ogg,字幕更是只能封进去srt;不过常用的一些编码基本也都支持到了,用来做个音声视频还是没问题的

1c1fe604a193c977.jpg

谷间的微风

B10F  2024-04-30 02:54
(哦豁)
如果用它听译无字幕的日本电影输出字幕并翻译 和日文提取率和准确率 有大概范围吗

1480423.png

ptilopsis

B11F  2024-04-30 02:56
(平等的厌恶着所有不纯爱的作品)

回 10楼(谷间的微风) 的帖子

你提醒我了,还有个字幕翻译可以讲一下,一会写

1480423.png

ptilopsis

B12F  2024-04-30 03:33
(平等的厌恶着所有不纯爱的作品)
4. 音声翻译(AI翻译)
关于音声翻译首推站内大佬自己微调过的whisper模型工具https://www.north-plus.net/read.php?tid-1919446.html这个工具可以开包即用,纯本地,直出中文.lrc,显存超过4g就能跑,没N卡大不了用CPU跑,就是速度慢点
不过缺点也是有的,就是受音声本身的影响,结果容易不稳定,有时候输出会牛头不对马嘴,如果质量比较好的情况下倒是很神

如果想要稳定点的输出结果,可以使用whisper原版模型先输出原本的语言(这一步决定准确率),再问大语言模型翻译成中文;第一步推荐的工具是faster-whisper-GUI,这个工具有比较完善的gui界面,推荐使用large-v2模型或者medium模型,英语的内容可以使用含有-en后缀的特化模型,实测准确率95%以上,日语要低一些,不过不太会影响理解

上面的工具输出的是.srt字幕文件,我们要拿去翻译。由于几家AI大语言模型提供商的网页版审查都比较厉害,不太方便直接复制粘贴让它翻译,这里需要使用一些通过api来使用这些模型的翻译工具,也需要你有对应的api-key,官方中转均可。这里推荐两个工具:AiNieeGalTransl。这两个工具都是为翻译游戏设计的,翻个字幕可以说绰绰有余了,他们也都有对应的srt翻译模式。相对而言ainee可能更好上手一点,galtransl上限高些,看你喜好选择

这里我附带了一个RJ01175861第6轨的翻译,是使用large-v2模型识别后通过ainee提交claude-3-opus翻译的,各位可以看看效果

顺便说一句,我前面给的所有脚本和代码,如果想要自己修改,以及使用中的问题,都可以去问AI

复制代码
  1. [00:00.00] 少爷,多亏射了这么多,肉棒都变得黏糊糊的了呢
  2. [00:09.00] 精液沾满了肉棒上的汁液
  3. [00:17.84] 味道好浓厚的雄性味道
  4. [00:22.84] 不能就这样放着不管了
  5. [00:25.92] 不能就这样放着不管,就让我来打扫吧
  6. [00:36.64] 没错,是打扫
  7. [00:40.02] 但是,不是普通的打扫
  8. [00:47.56] 而是用我的嘴巴来打扫
  9. [00:53.76] 打扫的方法也能让我非常的舒服
  10. [01:00.40] 所以,就让我来学习一下这种舒服的感觉吧
  11. [01:11.60] 没关系,少爷是非常优等的,所以什么都不用担心哦
  12. [01:23.76] 那么,肉棒,就失礼了
  13. [01:36.36] 首先,必须要温柔的亲吻肉棒才行呢
  14. [01:43.56] 少爷优秀的,优等生肉棒
  15. [01:53.76]
  16. [02:43.12] 射精之后,可是会非常敏感的
  17. [02:52.76] 在习惯之前就这样,温柔的亲吻
  18. [03:04.76] 得让肉棒做好心理准备才行
  19. [03:34.76] 明明只是轻轻亲吻而已
  20. [03:53.92] 少爷的雄性味道,让我好兴奋
  21. [04:15.56] 怎么样,少爷?
  22. [04:18.88] 肉棒被亲吻着,难道不难受吗?
  23. [04:31.76] 没事吧?
  24. [04:34.16] 不如说想让我更加焦躁,想让我继续亲吻吗?
  25. [04:43.56] 被少爷这样央求了呢
  26. [04:49.88] 如果被这样央求的话,不回答一下可不行对吧?
  27. [04:57.88] 感觉如何?像这样舔舐肉棒也不难受吗?
  28. [05:23.80] 舒服吗?那么就这样继续吧
  29. [05:32.80] 肉棒也沉浸在射精的余韵里,变得舒服起来了呢
  30. [05:53.80] 开始认真打扫肉棒吧
  31. [06:01.00] 首先是肉棒的表面,根部的部分
  32. [06:08.20] 就是这里,精液暴露而变得黏糊糊的
  33. [06:17.04] 沐浴露的部分就温柔地吸吮
  34. [06:27.24] 然后把沐浴露的精液清理干净
  35. [06:47.04] 根部的部分,精液会流出来,很容易积攒起来
  36. [07:12.96] 所以必须得仔仔细细的清理干净
  37. [07:42.96] 用唾液,像是用来侵犯精液一样
  38. [07:55.16] 把我的唾液涂上去
  39. [08:01.66] 把积攒的精液,弄得柔软
  40. [08:09.56] 我来摩擦一下
  41. [08:14.06] 啊,变得这么硬,也是因为少爷的精液太浓了
  42. [08:24.86] 这是优秀的证据哦
  43. [08:39.56] 接下来是从小鸡鸡的根部稍微上下的中间部分
  44. [08:56.36] 然后是小鸡鸡的凹陷处
  45. [09:02.76] 冠状沟的部分,这里温柔的,仔细的,用舌头……
  46. [09:20.76] 冠状沟的部分,这里不管是精液还是污渽
  47. [09:29.66] 都非常容易积攒
  48. [09:38.26] 用我的舌头,仔细的,抚摸一下
  49. [09:51.76] 用舌头,在冠状沟的部分转来转去,像是在逗弄一样
  50. [10:21.76] 被小鸡鸡插入的这血管的部分,也用舌头抚摸
  51. [10:51.56] 然后是前端,这里则是刺激太强了
  52. [11:08.16] 比刚才更温柔的舔舐哦
  53. [11:13.16] 这里就用我的嘴巴一口气含住
  54. [11:29.96] 用舌头抚摸的话,就会温柔的抚摸
  55. [11:43.16] 小鸡鸡的前端,酥酥麻麻的
  56. [11:57.26] 又难吃,又可爱
  57. [12:27.26] 小鸡鸡的前端,被温暖的舌头侵犯着
  58. [12:45.26] 舒服吗?
  59. [12:52.76] 非常的敏感,只是稍微刺激一下就会舒服起来
  60. [13:22.76] 那么,小鸡鸡的表面就清理干净了
  61. [13:37.56] 所以这次就在小鸡鸡的里面,把精液射出来的这道洞洞里面
  62. [13:48.36] 清理干净吧
  63. [13:50.86] 少爷,舒服得不要吓到哦,少爷
  64. [13:58.56] 那么,小鸡鸡从根部开始
  65. [14:08.36] 像这样,全部含进去
  66. [14:16.36] 从小鸡鸡的根部开始,从前端开始
  67. [14:20.86] 像是要把精液射出来一样,用嘴巴给您撸
  68. [14:46.36] 但是这些,在小鸡鸡的喉咙里面
  69. [15:09.56] 积攒着的,精液
  70. [15:15.66] 被榨出来的嘴巴里面,流出来了
  71. [15:35.16] 看来还能继续流出来呢
  72. [15:42.36] 为了不让精液流出来,得好好清理干净才行
  73. [16:05.16]
  74. [16:58.16] 精液已经全部榨干净了
  75. [17:05.36] 但是,少爷
  76. [17:09.16] 明明只是在打扫而已,鸡鸡又变大了呢

none.gif

af3fad7d


1676020.jpg



B14F  2024-04-30 03:37
(希望你天天开心)
大佬,我哭死

1c1fe604a193c977.jpg

谷间的微风

B15F  2024-04-30 03:44
(哦豁)

回 12楼(ptilopsis) 的帖子

faster-whisper 这个项目我用来跑3小时的声音 用large-v3模型输出的字幕前面半个小时还正常 到后面就一直重复一句话   large-v2模型情况还好点
但是large-v3模型 同一个模型本地跑又比kaggle白嫖的T4显卡效果好一些  
不知道为啥    而且kaggle上面选了两张T4 但是跑faster-whisper项目 只有一张显卡在工作  

none.gif

Homology

支持加精有讨论ai技术和经验的群组吗?faster-whisper的蒸馏版large v3速度起飞,但是参数我总是容易调崩,出现幻觉或者无限重复,vad filter也用不出效果。有人说老版large v2其实更好,又有人说v3有些地方准确率会高一点。

1480423.png

ptilopsis

B17F  2024-04-30 03:51
(平等的厌恶着所有不纯爱的作品)

回 15楼(谷间的微风) 的帖子

我没跑过这么长的,而且也都是本地跑的,不清楚啥情况
不过确实听说v3有些情况会不如v2,所以我一直用的v2(我这6g显存怕是也带不动v3)

1c1fe604a193c977.jpg

谷间的微风

B18F  2024-04-30 04:00
(哦豁)

回 17楼(ptilopsis) 的帖子

直接用kaggle送的两张T4显卡跑跑看  下面是模板 任务创建好网页直接关  掐着点上网页拿文件就行
lv3模型好像一个小时以内的就可以 长时间的就拉跨了
https://www.kaggle.com/code/xiu0714/faster-whisper

none.gif

Homology

回 17楼(ptilopsis) 的帖子

v3完整版只有3g,蒸馏版只有1h多,6g肯定够了。v3我超过半个小时都会切开分别跑,其实20分钟就感到质量明显降低了,句子开始中间断开 跟GPT聊长了我也会感觉他越来越懒,不如新开一个

1480423.png

ptilopsis

B20F  2024-04-30 04:07
(平等的厌恶着所有不纯爱的作品)

回 16楼(Homology) 的帖子

我只加了那两个gal翻译的tg群,翻音声就是自己能用就行 翻gal是要放出来做补丁的,各种折腾比较多

1480423.png

ptilopsis

B21F  2024-04-30 04:09
(平等的厌恶着所有不纯爱的作品)

回 19楼(Homology) 的帖子

v3只有3g?我怎么记得有5g多()记忆混乱了
下一个看看去

灰溜溜


1498935.jpg

伴君笑

牛蛙大佬

1281995.jpg

叶仙儿


3.gif

白银之猫

卧槽!感谢大佬分享!

a3.gif

格林尼尔

感谢大佬分享!

4.gif

我爱智能汉化

B27F  2024-05-06 16:21
(63232128)
引用
引用第12楼6a95433a于2024-04-30 03:33发表的  :
4. 音声翻译(AI翻译)
关于音声翻译首推站内大佬自己微调过的whisper模型工具https://www.north-plus.net/read.php?tid-1919446.html这个工具可以开包即用,纯本地,直出中文.lrc,显存超过4g就能跑,没N卡大不了用CPU跑,就是速度慢点
不过缺点也是有的,就是受音声本身的影响,结果容易不稳定,有时候输出会牛头不对马嘴,如果质量比较好的情况下倒是很神

如果想要稳定点的输出结果,可以使用whisper原版模型先输出原本的语言(这一步决定准确率),再问大语言模型翻译成中文;第一步推荐的工具是faster-whisper-GUI,这个工具有比较完善的gui界面,推荐使用large-v2模型或者medium模型,英语的内容可以使用含有-en后缀的特化模型,实测准确率95%以上,日语要低一些,不过不太会影响理解
.......

看爱情动作片或许有用

none.gif

Yuka

太牛了

6.gif

wsloli

感谢大佬