私の場合、Vimeoの一番安いクラスPlusの会員になっています。そのサービスに、日本語字幕の自動生成が含まれるようになりました。これを使うのが経済的です。ただし、最初に自動生成される文字起こしは、かなり雑です。そこで、修正作業を効率化するフロー及びツールを作りましたので、ご紹介します。
ポイント解説
1 Vimeoの日本語(自動生成)を利用しダウンロードします。

ところが、ダウンロードしたものは、文字と文字の間に、不規則に、空白が入っており、不恰好。
何回もダウンロードはできますが、一応、コピーを作っておきます。

2 MacのAutomatorを使い、Appleスクリプトを記述します。
(1)文字と文字の空白を削除する。
(2)”–>”の前後の空白も削除されてしまうので、” –> “に置き換える。
(3)先頭行を”WEBVTT “だけにして、2行目に空白行を挿入する。

Vimeo修正用 Appleスクリプト:コピーしてご利用ください。
(1)
on run {input, parameters}
set filePath to POSIX path of input
do shell script "sed -i '' -e 's/ //g' " & quoted form of filePath
return input
end run
(2)
on run {input, parameters}
set filePath to POSIX path of input
do shell script "sed -i '' -e 's/-->/ --> /g' " & quoted form of filePath
return input
end run
(3)
on run {input, parameters}
set filePath to POSIX path of input
do shell script "sed -i '' -e '1s/.*/WEBVTT /; 2i\\ ' " & quoted form of filePath
return input
end run
3 クイックアクションで、vttファイルを修正します。
コピーしたvttファイルの上で右クリック→クイックアクション→vimeoのvttの修正、を起動します。

すると、以下のように、修正されます。

これを元に、テキストエディットで更に手直しを行い、vttファイルを完成します。それをvimeoの字幕へアップロードします。
vttからsrt生成、srtからvtt生成についても、あちこちで変換ツールが提供されていますが、Macとして一番使いやすいのは、Finderから対象ファイルに対して右クリックで操作できるのが一番ラクです。一応、そのためのスクリプトも作ってみましたのでご利用ください。

vttからsrt生成用Appleスクリプト
(1)
on run {input, parameters}
set vttFilePath to POSIX path of input
-- 新しいファイルに拡張子をSRTに変更してコピー
set srtFilePath to replaceExtension(vttFilePath, "srt")
do shell script "cp " & quoted form of vttFilePath & " " & quoted form of srtFilePath
return srtFilePath
end run
-- 拡張子を置き換える補助関数
on replaceExtension(filePath, newExtension)
set AppleScript's text item delimiters to "."
set pathItems to text items of filePath
set lastItem to last item of pathItems
set last item of pathItems to newExtension
set AppleScript's text item delimiters to "."
set newPath to pathItems as text
return newPath
end replaceExtension
(2)
on run {input, parameters}
set srtFilePath to POSIX path of input
-- WEBVTTの行とそれに続く空白行を削除してファイルに書き込む
do shell script "sed -i '' -e '/WEBVTT/,/^$/d' " & quoted form of srtFilePath
return input
end run
(3)
on run {input, parameters}
set srtFilePath to POSIX path of input
-- 秒とミリ秒の間の「.」を「,」に変更してファイルに書き込む
do shell script "sed -i '' 's/\\([0-9]\\)\\./\\1,/g' " & quoted form of srtFilePath
return input
end run
srtからvtt生成用Appleスクリプト
(1)
on run {input, parameters}
set srtFilePath to POSIX path of input
-- 新しいファイルに拡張子をVTTに変更してコピー
set vttFilePath to replaceExtension(srtFilePath, "vtt")
do shell script "cp " & quoted form of srtFilePath & " " & quoted form of vttFilePath
return vttFilePath
end run
-- 拡張子を置き換える補助関数
on replaceExtension(filePath, newExtension)
set AppleScript's text item delimiters to "."
set pathItems to text items of filePath
set lastItem to last item of pathItems
set last item of pathItems to newExtension
set AppleScript's text item delimiters to "."
set newPath to pathItems as text
return newPath
end replaceExtension
(2)
on run {input, parameters}
set vttFilePath to POSIX path of input
-- 最上行に"WEBVTT"を書き込む
do shell script "sed -i '' '1i\\
WEBVTT
' " & quoted form of vttFilePath
return input
end run
(3)
on run {input, parameters}
set vttFilePath to POSIX path of input
-- 秒とミリ秒の間の","を"."に変更してファイルに書き込む
do shell script "sed -i '' 's/,/./g' " & quoted form of vttFilePath
return input
end run
4 まとめ
字幕制作の面倒さですが、それは、動画は、頻繁に追加、修正、削除が行われますので、それに伴い音声の発声時刻も変更されなければなりません。そこを自動化して欲しいです。つまり、ビデオ編集アプリに、字幕起こし機能が実装されるのが一番便利であると思います。DaVinci Resolveはすでにそうなっていますので、Final Cut Proにも、早く実装されるのを期待します。
字幕起こしアプリVrewは、自宅サーバーへアップする動画用にしようと思います。リアルタイム会話補助用は「音声認識字幕ちゃん」が優れています。
器材記録:
Vimeo(PLUS会員)
Automator
テキストエディット
Mac mini M2 Ventura
BGM:オリジナル音楽
以上です。