前回、前々回に引き続き、字幕作成に役立つかも知れない正規表現を紹介する。
- 「!」「?」のあとに文が続く時、半角スペースを入れる ←済
- 「!」「?」を半角→全角に ←済
- 文末に「。」をつける
今回は3.
3.文末に「。」をつける
字幕に句読点をつけるか否かは色々な意見があると思う。
私は(自分の言葉に字幕をつけるときは)句読点をつける派だ。
whisperで音声認識した際、
しっかり句読点をつけてくれるときと、そうでないときがある。
長い文を間断なくべらべらと喋っているような音声では
ちゃんと句読点をつけてくれる傾向にあるようだ。
逆に、「あー」とか、「うん」など文にならないフィラー的な言葉が多い音声では
その後しっかりした文を喋ったとしても大概句読点をつけてくれない。
(ランダムにつけてくれることもあるので厄介だ。)
そういった音声認識結果のsrtファイルの文末に、「。」をつけたい。
全部につけておいて、あとでいらないところを削除する方がはるかに楽だからだ。
これは一番単純に見える。
すべての文末に「。」をつければいいだけならば、
改行の前に「。」をつけるよう置き換えすればいい。
しかしながら、見て欲しい。
字幕ファイル.srtの構成はこうだ。
1↵
00:00:06,000 --> 00:00:11,000↵
こんにちは それでは始めましょう↵
↵
2↵
00:00:12,000 --> 00:00:16,000↵
Hello↵
↵
:
(改行マーク↵だけ可視化)
改行の前に「。」をつけるように置き換えるとこうなる。
1。↵
00:00:06,000 --> 00:00:11,000。↵
こんにちは それでは始めましょう。↵
。↵
2。↵
00:00:12,000 --> 00:00:16,000。↵
Hello。↵
。↵
:
色々と条件が必要なことが分かる。
とりあえず、
- なんらかの文字のあとの行末に必要
- ただし、半角英数字のあとには必要ない
であろうか。
以上のことをふまえ、このようになった。
置換前
(¥D[^。、!?a-zA-Z])($)
置換後
¥1。¥2
素人目線の解説は以下。
置換前
- (グループ1)(グループ2)
- ¥D … 数字以外の文字
- [^] … 指定した文字を除くどれか
- a-zA-Z … 半角英字(アルファベット順に a~z、A~Z の間の1文字にマッチする)
- $ … 行末を示す
※「。」「、」「!」「?」は
ランダムでついていることがあるので念のため除いておく。
置換後
- ¥1 … グループ1を示す
- ¥2 … グループ2を示す
※環境によって、
「¥」は
「
\
」と表示されることがあるので適宜読み替えていただきたい。
→参考サイト
投稿日:2023年3月7日
初出:2023年3月7日
0 件のコメント:
コメントを投稿