なぜか なぜかドラキュラ

ちょっとメモで

このホームページで
一番アクセスが多いのが
なぜか
「なぜかドラキュラ」のページ

インターネットで画像検索をしても
ドラマの画像は
このホームページの画像だけ

当時みんな
ビデオをとってなかったのかと思う

田中健やタモリの「キバ」を出している画像なんか
出したらアクセス増えるかな

原田芳雄は「キバ」出しているシーンは
なかったように思う

とりあえず
はやくビデオ探そう

手帳

昔(バブルの頃)は「システム手帳」というのを使っていて、
打ち合わせやスケジュール管理に使っていた。
紙はグラフ用紙や無地など用途によっていろいろな様式があった。

今、俺が使っている手帳は
「測量野帳」というやつだ。
種類はいろいろあるがその中でも「方眼罫」が使いやすい。
表面裏面とも厚手の紙になっていて固いため、
手に持ちながら書いても書きやすい。
また、大きさも胸のポケットに入る大きさなので
使い勝手がとても良い。

そうそう、少し高くなるけど雨の中でも書くことができる防水仕様の測量野帳もある。
いろんな仕事で利用ができそうだ。

Metashape (Photoscan)のマニュアル

Metashape (Photoscan)のマニュアルは「agisoft」のホームページ上にあるが「英語」と
「ロシア語」の2種類しかなく「日本語」のマニュアルはない。
多分、ここに流れ着いた人も同じ手法を使ったと思うが、英語のマニュアルをダウンロードして
「Google翻訳」で日本語マニュアルを作ろうとした。
結果は、意味が分かりにくい翻訳で使い物にならなかった。

そこで、字幕の時と同じように「DeepL」を使ってみた。
これが結構いい翻訳をしてくれる。

翻訳の流れは字幕の時とほぼ同じなので、簡単に書く。

 1.「PDF」を「Word」に変換。
 2. 「Deepl」を使って翻訳。
    (文字制限のため一回ではすべて翻訳はできない)
 3. 「PDF」から「Word」を作って作成したマニュアルは改ページ等の位置のずれ等があるが、
   俺的には、まずまずの仕上がりとなった。
 
 この方法は、あくまでも英語が分からないので個人的に翻訳して使おうという場合に試す方法で
ある。

海外DVD 字幕の付け方 その3

前回の続きです。
ダウンロードしてきた、英語の字幕データは下のような感じです。

00:00:16,727 --> 00:00:19,230
He just looks
like another
ball player to me.

これをDeepLで訳すと

00:00:16,727 --> 00:00:19,230
彼はただ見ているだけ
別のように
私にとってのボールプレーヤー。

こんな感じになってしまいます。
これでは意味が分かりません
しかし、元の英語を下のようにすると

00:00:16,727 --> 00:00:19,230
He just looks like another ball player to me.

00:00:16,727 --> 00:00:19,230
彼は私には別の球児にしか見えない。

と翻訳してきます。
見てわかるようにこちらのほうが、意味が分かりやすいと思います。

つまり
英語の字幕は途中で改行しているため
翻訳ツールを使うと1行ずつ翻訳するので
意味が分かりにくくなるということです。

この複数行になっている部分を1行にして翻訳すると
わかりやすい日本語になりやすいということです。

ただし、文が長くなると日本語の字幕も長くなってしまい
画面上ではみ出してしまうことがあるので
長い分は適当なところで改行する必要が出てきます。

この日本語の長い分を開業する作業は1話の中に
それほどないので手作業でいいのですが

英文を1行にする作業はかなりの手間がかかります。
この超人ハルクの場合1話当たりセリフ以外のデータも含め約3000行の
データがあります。

これをひとつづつ手でするには根気がいるので
下のようなエクセルのマクロを作ってみました。
なお、表示幅が小さいので改行がおかしくなっています。
コピーしてメモ帳などに張り付けていただくと
見やすくなると思います。
Sub Sample1()

    '=======================================================================================
    '
    '  途中で改行しているデータを1行にして出力する
    '
    '=======================================================================================

    '===============================
    ' 使用変数の設定
    '===============================
                
    Dim buf                         As String                                   ' 入力ファイル用のワークエリア
    Dim buf2                        As String                                   ' 出力ファイル用のワークエリア
    Dim filename_w                  As String                                   ' 出力ファイル名用のワークエリア

    '===============================
    ' 入力ファイルを開きます
    '===============================
    
    Open Cells(2, 2) For Input As #1                                            ' 入力ファイル名をcells(2,2)に入れます。つまりB2のセルに
    
    '===============================
    ' 出力ファイル名を編集します
    '===============================
    
    filename_w = Mid(Cells(2, 2), 1, Len(Cells(2, 2)) - 4) & "_out" & Right(Cells(2, 2), 4)     ' 入力したファイル名の後ろに_outを付加する
    
    '===============================
    ' 出力ファイルを開きます
    '===============================
    
    Open filename_w For Output As #2
    
    '===============================
    ' メイン処理出力
    '===============================
    
    buf2 = ""                                                                   ' 出力用ワークエリアの初期化
    
    
    Do Until EOF(1)                                                             ' データがなくなるまで処理を繰り返す
        
        Line Input #1, buf                                                      ' 入力データを読み込みます
                
        If IsNumeric(Mid(buf, 1, 1)) = True And Len(buf) = 1 Then               ' 文字長が1で数字の時
            
            If Len(buf2) > 0 Then                                               ' 出力ワークエリアに値が入っていたら出力します。
               Print #2, buf2
               buf2 = ""
            End If
            Print #2, buf                                                       ' 読み込んだデータをそのまま出力します。
        
        Else
            If IsNumeric(Mid(buf, 1, 2)) = True And Len(buf) = 2 Then           ' 文字長が2で数字の時
                    
                If Len(buf2) > 0 Then                                           ' 出力ワークエリアに値が入っていたら出力します。
                    Print #2, buf2
                    buf2 = ""
                End If
                Print #2, buf                                                   ' 読み込んだデータをそのまま出力します。
        
            Else
                If IsNumeric(Mid(buf, 1, 3)) = True And Len(buf) = 3 Then       ' 文字長が3で数字の時
                    
                    If Len(buf2) > 0 Then                                       ' 出力ワークエリアに値が入っていたら出力します。
                        Print #2, buf2
                        buf2 = ""
                    End If
                    Print #2, buf                                               ' 読み込んだデータをそのまま出力します。
                
                Else
                    If IsNumeric(Mid(buf, 1, 4)) = True And Len(buf) = 4 Then   ' 文字長が4で数字の時
                    
                        If Len(buf2) > 0 Then                                   ' 出力ワークエリアに値が入っていたら出力します。
                            Print #2, buf2
                            buf2 = ""
                        End If
                        Print #2, buf                                           ' 読み込んだデータをそのまま出力します。
                    
                    Else
                    
                        If Len(buf) = 0 Then                                    ' 読み込んだデータがNULLの時
                        
                            If Len(buf2) > 0 Then                               ' 出力ワークエリアに値が入っていたら出力します。
                                Print #2, buf2
                                buf2 = ""
                            End If
                            Print #2, buf                                       ' 読み込んだデータをそのまま出力します。
                        
                        Else
                            
                            If InStr(1, buf, "-->") = 0 Then                    ' 読み込んだデータに"-->"が含まれないとき
                            
                                buf2 = buf2 & " " & buf                         ' 出力用ワークエリアにあるデータの後ろに空白を入れた後、入力ワークエリアのデータを加えます
                                
                                If Right(buf, 1) = "." Or Right(buf, 1) = "?" Or Right(buf, 1) = ")" Then   ' 読み込んだデータの最後の文字が「.」「?」「)」なら出力用ワークエリアを出力します。
                                    Print #2, buf2
                                    buf2 = ""
                                End If
                                
                            Else                                                ' 読み込んだデータに"-->"が含まれていたとき
                            
                                Print #2, buf                                   ' 読み込んだデータをそのまま出力します。
                                
                            End If
                        End If
                    End If
                End If
            End If
        End If
                            
                            
    Loop

    Close #1
    Close #2
    

    
End Sub
簡単に内容を書くと
エクセルのB2セルにファイルのパスとファイル名を入れます。
c:\翻訳\01.srt という感じです。

実行すると1行ずつ読んでいき「.」「?」「)」が分の最後に出てくるまで
文字を繋げます。文字と文字の間には空白を入れます。「.」「?」「)」が
出てきたら1行のデータとして出力します。
数字や空行、時間等はそのまま出力します。
処理が終わると元のファイル名に「_out」とついたファイルができます。
この場合だと「c:\翻訳\01_out.srt」というファイルができます

簡単なマクロなので例外的なデータがあった場合は上手く編集できないかも
しれませんが、今のところ問題なく使えています。

まあ、参考程度でご利用ください。
問題が発生しても関知いたしませんのでご容赦ください。

 なお、翻訳はあくまでも自分で購入した海外のDVD等の動画を個人で
楽しむために翻訳するものであって、それを一般に公開する目的で翻訳
してはいけません。
 実際、自分で日本未公開の映画を自分で翻訳してインターネットで
公開した人が著作権違反で逮捕されています。くれぐれもそのようなことは
行わないように。

もし、この「海外DVD 字幕の付け方」の解説について問題等が
ございましたらコメントにてご連絡ください。削除もしくは非公開の対応をさせていただきます。

2020/8/5 追加
 上のマクロでは9999行までしか対応していません。
 もし、それ以上ある場合はマクロを修正してお使いください。

海外DVD 字幕の付け方 その2

 字幕のずれについてだが、俺は「Subttle Workshop XE」というソフトを使っている。
 ダウンロードアドレスは  http://www.uruworks.net/download.html
 上のアドレスへ行くと下のようなホームページが開く。
 自分の環境にあった「DOWNLOAD」をクリックすればダウンロードが始まる。
圧縮ファイルがダウンロードされるので回答すると下のように
ファイルが展開される。
「SW」をダブルクリックするとプログラムが起動。
下の画面が開く。
メニューのファイルの「字幕の読み込み」から字幕ファイルを選択してよ見込む。
その前に、日本語の設定を忘れてた。
下の画像のメニュー「View」から「setting」を選択すると下のような設定画面が
開くので「language」から「japanese」を選択し「Apply]をクリックすると
日本語の画面になる。
話が前後したが、字幕データを読み込むと下のような感じで字幕が表示される。
開始時刻、終了事項などいろいろあるが、こんな感じなんやという認識だけでいい。
細かく設定したいときは必要になってくるがここでは説明しない。
さて、本題のズレの部分の修正だが、結局のところ一番初めのセリフが
何時何分何秒から始まってで最後のセリフが何時何分何秒から始まるかを
記録しておく。
次に下画像のようにメニューの「編集」「タイミング」「全体の時間調整」を選択する。
下の画像が開くので「First spoken line」に最初のセリフの時間
「Last spoken line」に最後のセリフの開始時間を入れる。

そのあと「Adjust」をクリックすると字幕全体が入力された時刻で修正される。
この方法で今のところ見ていて字幕のタイミングがおかしいという部分は特にない。

入力する時間については、実際に動画を見て自分のタイミングにあった微調整が
必要かもしれない。
ここまでくれば、次は字幕の翻訳である。
英語の部分でセリフと合わせておけば、日本語にしても特に気にせずに字幕が
見られるはずである。

翻訳についてはgoogleの翻訳を使ってもいいが精度がもう少しといったところなので、
俺はDeepLを使っている。

字幕ファイルをWordで読みWord形式で保存しておけばDeepLで一括変換してくれるので
ありがたい。

ただし、上の方法ですれば翻訳してくるがどうしても翻訳がおかしい部分が出てくる。
このおかしい部分ができるだけ少なくなるようにする方法も含めて、詳しくは次回。
 
2020/08/04 追加
DeepLで変換してきたファイルは編集などができません。
なので、一度Wordで開けてからテキスト形式で保存してください。
そのあと。拡張子をsrtに変更すればOKです。