微博 微信

Hao4K影音

[技术教程] 11C-整改字幕流程c_形态各异的实验字幕样本

5 天前 1976 0 |只看大图 回帖奖励 |倒序浏览 |阅读模式

Yuran 帖主

5 天前

11C,其中的11, 是连载篇的序号。后缀C,意指 三板斧的第三斧(与 ass外挂字幕的、DIY 实验有关)。
3 Z2 F; h4 X0 L- d5 E4 E6 {本人原创实验心得,非专业,非权威。谨供参考。全部归纳/整理到:论坛淘帖专栏中,链接在此& e4 y. [6 |( c$ O) j
+ w6 R; p$ [7 F, Z2 v. W
* L' I" T/ l+ @

( ~: E4 `( R# U/ a9 H  前期流程,制定了:中规中矩的编码标准。 那么本篇,就用(第三方的、以及DIY编程)软件,来甄别!. d1 d* ~0 d! G; ]
9 {- B5 S. _/ n" G; l3 F, [
将原文件 (ASNI/GBK)0000.ass ,分别用 Windows 10 的记事本,以及Ultraedit ,另存“形态各异”的文件:
' \; ?) ^1 ^) `% t( P8 y/ }! k因此,目前测试清单,就有这些:: Y" U6 e1 R! d8 g0 N

% M# K" i5 G6 ^6 ~9 L1 n2 R3 r% \7 p- @
  • 0000.ass :原文件(srt,经由Subtitle Edit调整音唇同步后,所保存的双语字幕,编码规格:GBK/936);
  • 0Wnu.ass:经由Windows 10 记事本所转码的、UTF-8的规格(不带BOM);
  • 0Wwu.ass:经由Windows 10 记事本所转码的、UTF-8的、带BOM的规格);# s( S+ ]$ A- N* q
  • 0Unu.ass:经由Ultraedit所转码的、UTF-8的规格(不带BOM);
  • 0Uwu.ass:经由Ultraedit所转码的、UTF-8的、带BOM的规格);" y; o2 ]9 W/ F, t6 e
' h% Z+ Q5 V3 y2 f: ~; `

. Z, W1 y) z/ g  E+ k* E, U. }" ^. L$ s
网络下载的:隶属于ANSI的、不同语种、不同编码的字幕!1 x! F! O) r; |8 w" I, Z. f  m6 j
5 a, e' ]9 E4 G, P' I& Q; l/ L
  • 936_复仇者联盟II.srt:纯简体中文字幕(GB2312/Microsoft Windows code page 936_Simplified Chinese);
  • 950_Disaster.srt:繁体中文字幕(Big5/Microsoft Windows code page 950_Traditional Chinese);
  • ANSI_Die.1000.ENG.srt:纯英文字幕;
  • ANSI_domino-cages.ENG.srt:纯英文字幕;
  • 932_Idiocracy.srt:日文字幕(JIS/Microsoft Windows code page 932_Japanese);
  • 949_Halloween.smi:韩文字幕(EUC-KR/Microsoft Windows Code Page 949_Korean);
    ' R) v% p! i/ O# H. u5 q9 I$ N

' t0 D- b2 D' {4 J6 k 333.jpg
/ x7 T/ y" k. j. }4 U7 g! O* u- i) g0 f: K0 j2 }
$ B( S% |' s6 ]' _$ l, r/ e

- Z0 y3 C. _) T6 f* f5 U- O用UltraEdit预览,多语种的、ANSI类的字幕,均完美显示(注意,每个文件窗口的Code page,并不相同)。, C1 l" E) t* x

) Y! C* t( S9 j6 U# F9 }1 h mcodepage2.jpg
+ T! X% b2 U4 \# x& E* r( z$ c( q: h* p* C
比如: 韩文的 SMI 字幕(文本)文件,需要手动更改 Code page , 调整到 949 ,才能正常显示韩文字符。- _1 O- u' E$ T+ }5 w$ M0 K5 w

$ d( I! C) Q" H3 g% V( @ mcodepage3.jpg
1 B& h* [2 J3 o8 s7 {% u4 e9 X* G8 o4 e' ]2 U
Yuran的PC(自用实验平台:简体中文、Windows 10 ),其Code Cpage 细节,能用 PowerShell查出!
: h0 }- d/ {5 y" B7 n% L9 h5 c6 g+ C- f& ?/ y* t% ^
mycodepage.jpg
4 M( k6 D3 z: C( O5 B
0 h1 k9 l$ K* Y! a2 x% `% l9 n, A$ T* z: _0 t( O: E
, B( l4 {( B/ g3 U, s3 b9 e
对不同语种的甄别、若有相关的第三方(免费)软件,就直接调用。再融合自己的特点,DIY编程、整合。9 P9 z; p3 j/ j
% |3 N# J* s5 \3 W$ V& B
有一种 CLI (命令行界面。command-line interface) 程序,Enca.EXE, 不错,能甄别ANSI 以及 UTF-8 等。9 X) f$ ~& e" J3 E

  W% y3 ~0 C: o9 n1 U1 |, T3 a不足之处:7 C! W3 Y# y* E6 G
% \) l% y: J0 C
  • 不同的测试样本,其UTF-8 的编码,是否带 BOM,Enca 无法分辨。
  • 仅支持简体中文以及繁体中文,对日韩的 JIS/932 或 EUC-KR/949。Enca 显得无能为力。8 ~( r) a# i% J: o/ l$ w) O  P
; V' }. Q! t  H
e11.jpg
" d" [! w5 W, t& |
8 B6 B; s# w9 P7 P' Z上图是测试结果(鼠标点击,可看到实际放大图):日韩文的甄别出错。另外,带与不带BOM的UTF-8,不能区分。
+ ?% r& _2 p- w* N, w! U9 v4 c6 y# }9 m! i% N6 ]" n
5 _" }8 ^' k7 p

: u5 _& x( R! Q4 |5 sLinux的 File 程序,被GnuWin32整编后,移植到Windows 10 系统中,作为 CLI 使用,也不错。
8 k5 \% J9 ]- M. M; ?! X# s  m5 E  |, q; R0 r
g11.jpg
& x4 T  w! a% Y, S5 s  s/ Y9 b' v6 T5 R) c1 {; _0 Q7 G
  • 优势: 能在 Unicode 字幕中,指认 (不带BOM的)UTF-8 、或带BOM的 UTF-8 ;(参见上图)。
  • 缺陷:中日韩的字幕甄别,全线失利(如下图所示,均按英文编码的思路,胡乱瞎猜)。' L! d- r. q  x  {; j

$ P" T, }# M1 @: ~5 F e114.jpg ) q; r$ x8 f- e# J3 V2 v3 @/ ]

# P* j# V: k# O* S即使,将两者整合调用,取长补短,仅能改善 UTF-8 。至于日韩的字幕,依然束手无策(注定是乱码)!! r& h) x: e) h+ ~  m6 z7 \: f0 \( t
9 i' K* Q( d. K+ o3 r, Q6 _
也许,有人说:通常的日韩电影,仅配纯中文字幕就行了。
7 i) g2 p. q4 Y. `. ]1 V, X: [我这里,不一样。日韩的双语字幕,更好。还能提高(除英文之外的)外语水平呢!
7 g; h' _* r& m. C% f- u1 V  z2 J# k1 G+ s: R% C6 }+ g' B  A- R( R. f. \9 k
3 I6 L& f9 B& p5 `
9 @* {0 ^  b) m# S1 A7 S  @
CLI 的套数,目前来说,不完美。 那就试试: GUI (图形界面程序)吧。
6 @: b1 x9 U* E毕竟,Yuran是要DIY编程、设计自家软件的。最好的办法,是借用、调用CLI程序。; n0 Y  e- l: }

! N9 S( s2 _" R第三方GUI的麻烦,都得用鼠标,去逐一操作。不利于批量处理(静音般的)调用。4 [* M& o8 S8 F5 W9 ]: I
9 W6 G% b  s$ d9 K1 y
如果,能找到的GUI(免费)程序,在自身的操作后,还能输出报告/清单(文本文件)。6 D+ U! k3 ]3 F* L
那我的DIY程序,就能:通过读取、参考该报告的数据,选择应对手段,完成批量操作。* ], T2 t. ?+ K
  q9 {( U6 o' \4 k, N" ~
还真找到一个:EncodingChecker.EXE
- e$ z8 \& H8 M( G" v$ _4 [0 J% {6 h' G- g' v8 O; ]" U
捕99获.jpg * C! |' X# u$ B# _" k' W; s. C, u

  d; D& B; ?9 z, |GUI程序,有Export 的功能,能将甄别报告,转存到:文本文件中。
3 O; W8 _- [6 ^2 g7 w, e* T. s  G
2 ^: L# [+ T$ x. m: [ 捕88获.jpg ( c4 M) ~7 k) x3 Q4 U! c, J
$ a( t4 F1 \+ L. b! B% p% k
  • 最显著的靓点:中(简繁)日韩的字幕,都能精准地区分!
  • 遗憾之处:无法区分(不带 BOM 的)UTF-8 、 带 BOM的UTF-8 。均视为 UTF-8 (不带BOM)。
  • 可拓展的功能:Unicode转码(将 ANSI 的字幕,做转换:格式可选 ,UTF-8、或带BOM的UTF-8 )...2 o2 V) u! J9 D; _. D% F  v1 x& Q3 G/ M
! K3 |9 `* o, m; j; h4 b) ?
: `& `" t' I! g
/ R; W1 M) t5 S0 t6 V9 j) f2 [
甄别字幕的、软件的部分模组,以后,若有时间。我将尝试 DIY编程, 区分 UTF-8 的BOM ,区分多语种...
- b7 _) s: G0 J9 [$ J# b( Q可参考的概念(英文的、链接):https://betterexplained.com/articles/unicode/
/ k0 \# ~( O5 |) n+ O6 P5 y* D' H+ q- }3 P9 U
现如今,先直接调用: File.EXE 以及 EncodingChecker.EXE ,
; g" A/ S8 D  |  }( l& Z0 ?9 k" N: S$ I) [
  • 由 File.EXE ,甄别 UTF-8 或 带 BOM的UTF-8 ;
  • 由 EncodingChecker.EXE , 区分中(简繁)日韩语种,以及英文ANSI的特征。
    : l2 a0 e% u& y1 _7 }5 t) f
- {/ t  t1 x, ]; m- G( J
再由本人编程的软件,完成下述工作:
2 _' o  q& s- C9 p4 U8 }0 b: c7 v( {# Y2 C/ P- y& f! s
  • 将ASNI 的字幕,一律转成 UTF-8 ;
  • 针对中(简繁)日韩的不同语种,分别做出Code page的切换,规避乱码的风险。3 {8 D# F$ g  C" v

8 j! ^" E- R' D1 z8 M第三方的程序,还有不少(比如 Python 的 cchardet、 chardet 等等),就不做评测了。& D7 F: h0 _( x/ b

8 n' H) s2 C% o! ^- r7 Q
" }- R4 E4 E9 z/ n, I  d5 Q/ y: k+ l  v, l  k: ^- z3 Y" ?1 U/ {; B, V
下一篇,将介绍: 用本人自编的软件,调用本篇工具的实验报告,实现自动甄别、自动转码的、: W! {2 T0 ~' f# E
批量处理的功能(第三方的免费程序,将逐一分享)!
/ c  ?. g4 v( j" J" o, R" M8 y3 Z3 U) J: b

免费评分

参与人数 1活跃 +2 H币 +15 收起 理由
hao4k + 2 + 15 很给力!

查看全部评分

本帖被以下淘专辑推荐:

回复

使用道具 举报

   发表回复

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则

:
白银玩家
:
未填写

主题

帖子

积分1991

  • 在线客服

  • 返回顶部