字幕をつける作業自体は「whisper」でだいぶ軽量化されたが、
.srtファイル自体を複数用意しなくてはいけない事態になっている。
1.大元の字幕ファイル.srt
whisperで音声認識し、Subtitle Editでいい感じに編集したファイル。
これをもとに他のファイルを作っていく。
→関連ブログ記事
2.srt2exo.bat用ファイル.srt
Aviutlに読み込ませるためにsrt2exo.batでexoファイルに変換する必要がある。
そのためのファイル。
半角!?を全角!?に変換したもの。
(Aviutlで読み込んだ字幕は、ニコニコ動画用)
→関連ブログ記事
3.翻訳用ファイル.srt
理由その1.
動画の開始から最初の字幕までのオフセット時間、これが必ず発生するのだが
whisperでは無視される。
例えば、動画を開始して最初の5秒は無音、次の1秒で「こんにちは」と発話したとしても
00:00:00,000 --> 00:00:06,000 こんにちは。
と認識される。
日本語のみのファイルでよければ、SubtitleEditで開始位置を調整するだけでいいのだが
このあとsrt→csv→txtにしてDeepLで翻訳し、
また逆の順番で戻したりするうちに字幕の順番がズレたり、とにかく面倒くさい。
そのため、
00:00:00,000 --> 00:00:05,000 *翻訳用のダミー*
00:00:05,000 --> 00:00:06,000 こんにちは。
というふうに、前にダミーの字幕を挿入して作成する。
最初はスペースなどを挿入してやっていたのだが、
翻訳のときに何らかの文が入っていた方がよいことがわかったのでこの方法に落ち着いた。
(もちろんアップロードする前にダミーの字幕は削除するようにしなくてはならない。)
理由その2.
これは動画の内容にもよるのだが、
ゲーム内のセリフを読んだりするとき日本語では「」を使う。
これをそのまま翻訳すると“”で変換される。
この「ダブルクオーテーション」の扱いが非常に面倒くさい。
csvへの変換時に思ったような挙動にならないことが多いのだ。
カンマ区切りとの相性が悪いのだと思う。
タブ区切りで試したりもしたのだが、面倒くさいのでもう翻訳時には「」は削除することにした。
故に、テキストエディタで「」をすべて削除する。
4.YouTube日本語字幕用ファイル.srt
3.翻訳用ファイル.srt - 理由その2.で書いたように、
ゲーム内のセリフを読んだりするとき日本語では「」を使う。
同じセリフをわざわざ日本語字幕で表示する必要はないし
大体のゲームでセリフはゲーム下部に表示されるので、字幕とかぶる。
なので、セリフはカットする。
2.srt2exo.bat用ファイル.srtで Aviutl編集時にも同様の編集をする。
whisper、字幕ファイルに関する記事はこちら
投稿日:2022年12月3日
初出:2022年11月23日
0 件のコメント:
コメントを投稿