制作日記: テキスト起こしの続き/字幕化
昨日、GCPのSpeech APIを使用して、動画の音声をテキストに起こしましたが、csvから字幕用のsrt形式に変換することで動画と一緒に再生することが出来ましたのでメモを残しておきます。
フォーマット変換
00:22:33,00:23:44,Hello 00:24:10,00:24:15,Fuck
- 変換後 srt
1 00:22:33,000 --> 00:23:44,000 Hello 2 00:24:10,000 --> 00:24:15,000 Fuck
字幕対応のプレイヤーで再生
メニューから変換後のsrtファイルを読み込むだけです。 設定画面から字幕位置やフォントの変更なども出来ます。
srt変換 rubyスクリプト例
require 'csv' dir_path = 'D:\result\\' def wrap(s, width = 80) s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n") end csv_files = Dir.entries(dir_path).select{ |filename| filename.end_with?('.csv') } csv_files.each do |file| blocks = [] csv = CSV.read(dir_path + file, headers: false) csv.each_with_index do |row, index| start_time = row[0] end_time = row[1] body = row[2].strip block = <<"EOS" #{index + 1} #{start_time},000 --> #{end_time},000 #{wrap(body, 120)} EOS blocks << block end srt = blocks.join File.binwrite(dir_path + file.split('.').first.gsub('audio_', '') + '.srt', srt) end
約35時間分の動画の非同期音声認識にかかった料金
4327円
登録時のおまけのクレジットで余裕で支払うことができます。