メインコンテンツへスキップ
SubtitleMatrix

字幕を音声で読み上げ

メディア入力字幕から音声へ

初回は音声モデルと音素変換器(合わせて約98 MB)をダウンロードします。このサイトから配信され、以降はブラウザにキャッシュされます。ドロップした字幕やテキストがこのタブの外に出ることはありません。MP3 か M4A を選ぶとエンコーダをさらに31 MB ダウンロードするため、既定は WAV です。

オプション

声はアクセントと音色を決め、さらに分かりにくいことですが、テキストをどの音声体系で読むかも決めます。スペイン語の声に英語の文を読ませても失敗せず、英語の単語をスペイン語の音で読むので、エラーメッセージより厄介です。選べるのは12言語ではなく7言語です。このページに付属する音素変換器に日本語と中国語の声がないためです。長いファイルの前に短いファイルで試聴してください。どの声も同じモデルを使うので、切り替えのコストは合成1回分で、ダウンロードは発生しません。

モデルが自然と考える速さに対して、声がどれだけ速く読むかです。遅いが 0.8×、速いが 1.2× で、意図的に控えめにしています。およそ 1.5× を超えるとモデルが音節を飲み込み始め、速く話す人ではなく急いでいるように聞こえるからです。字幕ブロックの表示時間が台詞に対して短すぎる場合、このページは切り詰める前に最大 1.4× まで自動で速くし、その倍率はここで選んだ設定に掛かります。

WAV は非圧縮の 24 kHz モノラルで、エンコーダをまったく使わずに書き出します。それが既定である理由であり、追加のダウンロードが不要な理由です。MP3 と M4A は圧縮に 31 MB の動画エンジンが必要ですが、サイズはおよそ10分の1になります。10分の音声は WAV で約28 MB、MP3 で約2.8 MB です。声を試聴するなら WAV、ファイルを人に送るなら MP3 を選んでください。

この頁は字幕ファイルを、それに従う音声トラックに変えます。すべての cue が読み上げられ、その cue が始まる瞬間に置かれるので、結果は 1 つの音声ファイル film.wav になり、言葉は字幕の下に着地し、互いに重なりません。cue の間は無音で埋まり、全体の長さは最後の cue の終わりに一致します。つまり音声は、字幕が作られたのと同じ映像に重ねられます。

単純な読み上げの頁と別にこの頁があるのは、時刻合わせが難しい部分だからです。読むのに 4 秒かかる文が 2 秒の cue にあるとき、そのまま置くと次の cue の下へはみ出し、2 つの声が同時に鳴るのはナレーションではなく雑音です。だから各行は選んだ速さで合成され、測られ、収まらなければ最大 1.4 倍まで速い率でもう一度合成されます。それでも収まらない分は次の cue の開始で切り、その処数を飲み込まずに損失として報告します。

声の一覧は 7 言語 10 声です。アメリカとイギリスの英語、スペイン語、フランス語、イタリア語、ヒンディー語、ブラジルポルトガル語です。声は音色だけでなく、テキストをどの言語の音で読むかを決めるので、スペイン語の声に英語のテキストを合わせると、どちらでもないものになります。日本語と中国語がないのは意図的です。この頁に同梱する音素化器にそのどちらの声もなく、一覧に載せると誤りではなく自信のあるナンセンスを生むからです。

処理はローカルです。約 98 MB のモデルと音素化器をこのサイトから一度だけダウンロードし、以降はブラウザがキャッシュします。字幕ファイル自体はタブから出ません。出力は既定で WAV です。符号化器がまったく要らないからです。MP3 か M4A を選ぶと圧縮のために 31 MB の ffmpeg コアを読み込みますが、誰かに送るつもりの音声ならその価値があります。

よくある質問

SRT ファイルは正常なのに、この頁の WAV がときどき文を途中で切るのはなぜですか?

切れ目がファイルではなく cue に由来するからです。画面に 1.8 秒しか残らない cue は、声を 1.4 倍より速くしない限り 3 秒かかる行を収められません。そしてその先では言葉が聞き取れなくなります。頁はまず選んだ速さを試し、収まる率でもう一度だけ合成し、上限は 1.4 倍です。それでもはみ出すなら、2 つの行が同時に鳴らないよう次の cue の開始で音声を切り、影響を受けた cue の数をキューの下の損失報告に載せます。

読み上げのために読むとき、ASS の書式、色、画面上の位置はどうなりますか?

落ちます。ここではそれが正しい扱いです。音声ファイルに色も画面位置もありません。残るのは各 cue のテキストと開始・終了時刻で、配置に必要なのはまさにそれです。太字、斜体、カラオケの時刻、{\anN} の位置上書きは、合成の前に形式の層で解析されて外れるので、ASS で斜体とされた行もほかと同じ声で読まれます。書式を保つ必要があるなら先に字幕を変換してください。この頁の産物は音です。

2 行の SRT cue を 1 つの続いた文として読ませられますか?

読ませます。いつもそうです。cue 内の強制改行は組版の判断 — 画面上で行が長くなりすぎたと字幕制作者が決めた場所 — であって、話者が息を止めた場所ではありません。だから 2 行は空白でつながれ、1 つの発話として合成されます。cue をまたいで切れた行も、2 人の話者が交代するのではなく 1 回の息のように聞こえるのはそのためです。出力に間ができるのは cue の境界だけです。

この音声トラックは実際にどの言語を話せて、日本語字幕ではどうなりますか?

7 つです。en-US、en-GB、es、fr、hi、it、pt-BR です。日本語と中国語がないのは、この頁に同梱する音素化器(espeak-ng)がそのどちらの声も持っていないからで、音声モデル自体はそれらで訓練されていても同じです。日本語の .srt を英語の声に渡しても大きな音では失敗しません。ラテン文字は英語として読まれ、漢字は飛ばされるか崩れます。それらの言語の正直な進め方は、日本語や中国語の音素化器を積んだ版を待つことで、もっともらしく聞こえて間違っているトラックを受け入れることではありません。

既定の WAV と比べて、MP3 は余分な 31 MB の価値がありますか?

数分より長いものならあります。WAV は非圧縮の 24 kHz モノラル PCM なので、10 分のナレーションはおよそ 28 MB ですが、同じ音声を 128 kbps の MP3 にすると約 2.8 MB です。代償は MP3 と M4A が一度だけ ffmpeg コアのダウンロードを要することで、だから WAV が既定です。声の具合を見たいだけなら余分なものは何も取りに行きません。符号化器がキャッシュされた後は、同じ字幕を同じ設定でもう一度変換するのは速いです。

関連ツール