さくウェブ

ネットライフを楽しむための情報ブログ

VOICEVOXから字幕ファイル(SRTファイル)を作る方法を考えてみた

最近、無料の読み上げソフトのVOICEVOXを使って、動画を作成しているのですが、字幕を作るのが面倒くさくて困っています。(Macなのでゆっくりムービーメーカーは使えない)

 

VOICEVOXは字幕ファイル「SRTファイル」の出力機能がないため、VOIVEVOXに入力した文を一つ一つ動画編集ソフトにコピペをしていくことになります。

それが非常にややこしく、なんとか「SRTファイル」が出来ないものかと考えていました。

 

もしかすると高いプログラミング知識があれば、完璧なSRTファイルを作れるのかも知れませんが、私にはありません。そこで完璧ではないものの、少しでも作業量が短縮できる、簡易的なSRTファイルを作成する方法考えてみたので、この記事ではその2つの方法をご紹介します。

 

環境:マックブックPro MacOS 13.4.1 (c)

 

 

SRTファイルとは

SRTファイルを調べてみると

「SRT(SubRip Text)ファイルは一般的に字幕ファイルと呼ばれる、テキスト形式のファイルで、動画に表示する文章を、通し番号+タイムコード+テキストをセットにして記述します。」

とあります。

具体的にはこのような形となっているファイルです。

 

1

00:00:00,000  --> 00:00:03,000
テストテストテストテストテストテスト

2

00:00:00,000  --> 00:00:03,000
テストテストテストテストテストテスト

3

"00:00:00,000  --> 00:00:03,000
テストテストテストテストテストテスト

 

ちなみに通し番号が必要なのは分かりません。私がやってる限りは、通し番号がなくてもちゃんと認識してくれます。

時間はhh:mm:ss(時、分、秒)という形で表記し、カンマ区切って0.1秒以下を表記します。

 

エクセルを使う。

VOICEVOXからSRTファイルを作る一つ目の方法として、まず、エクセルを使う方法をご紹介します。

 

VOICEVOXはSRTファイルの出力はできませんが、TEXTファイルは出力できます。

そこで、このTEXTファイルからエクセルを使って、簡易的なSRTファイルの形式にしてしまおうという方法がこれです。

 

以下に流れを紹介します。

 

やり方

1. まずは入力した文字をテキストで書き出しします。

 

2.書き出したテキストはこんな感じになっています。

全体をコピーします。

 

3.それをエクセルに貼り付けます。

エクセルにペーストするとこのような形となります。

 

4.関数を使って、SRTの形式にしていきます。

このように、エクセルの関数を使うことで、文字列を抜き出したり、繋げたりして、SRTファイル形式の文字列を作ります。

 

具体的、各列で何をしているか、説明します。

文字列

ここでは、元のテキストファイルから、キャラクター名等を除いて、読み上げる文章のみを抜き出しています。

TEXTAFTER(B3,",")といった関数を使って、「,」以降の文字列を抜き出しています。

時間1、時間2

ここは開始時間と終了時間を適当に決めています。

この例では各字幕が3秒間隔で3秒間表示されるように、関数を使って3秒ずつ足す設定にしています。

なおここのセルの書式設定は「ユーザー定義>>hh:mm:ss」にします。

 

SRT

ここでは、上の3つの文字列を繋げています。

関数はこのような感じです。

=TEXT(D3,"hh:mm:ss")&",000  --> "&TEXT(E3,"hh:mm:ss")&",000"&CHAR(10)&C3

 

 

5.完成した文字列を全部テキストにコピペします。

「”」が余計に入ってくる場合は、テキストの文字の置換機能を利用して「”」とスペースを置換することで「”」消します。

 

6.拡張子をSRTファイルに変換します。

「ファイル名変更」を選んで拡張子を変えるだけでOKです。

 

以上で完了です。

これを動画編集ソフトに挿入すれば、とりあえず字幕は入ります。

 


問題点

もう気がついている人もいると思いますが、これは時間を適当に決めているため、字幕の表示タイミングはまったく音声のタイミングと合いません。なので自分でマニュアル作業でタイミングを調整する必要があります。

良い点

全ての文字列が抜けなく正確に動画ソフトに一発で挿入できます。

一度エクセルファイルで関数を作ってしまえば、あとはそれを使いまわすだけなので、1分程度の作業で、SRTファイルが出来ます。

 

あとはタイミングの問題だけですね。

Vrewを使う。

2つの目のSRTファイルの作成方法は、無料の自動字幕ソフト「Vrew」を使う方法です。

このVrewはSRTファイルを出力することが出来るので、VOICEVOXで作成した音声ファイルからVrewに自動字幕を作ってもらって、それをSRTファイルで出力するという方法です。

 

流れは簡単で、Vrewを立ち上げてFile>>New Projectで作成した音声ファイルを選択。

自動字幕がつくので、それをFile>>Export As「Caption」を選択してSRTファイルを出力します。

 

問題点

これの問題点は、字幕が正確ではないという点です、音声ファイルを聞き取ったAIが字幕を作っているので、多少の間違いがあったり、変なところで区切られていたりします。

それを修正したり、調整するのが結構めんどくさいです。

良い点

字幕の正確性を欠くのですが、エクセル版の時に問題だった字幕の出るタイミングという点は解決しています。

それでも変なところで区切ったりするので、そこは修正が必要になりますが。

 

最後に

VOICEVOXからSRTファイルを作る代替え案2つを紹介しました。

エクセルの方法では、文は正確なのですが、タイミングが適当。Vrewはタイミングが正確だけど字幕の文に誤りがあるという、一長一短という感じですね。

どちらも完璧ではありませんが、多少作業量の削減になると思います。

私は字幕の時間を調整するだけの方が楽だと感じているので、エクセルの方を使用しています。

 

いつか、VOICEVOXがアップデートされて、正規のSRTファイルを出力を出してくれるようになると良いのですが...