Files
2026-07-13 12:45:58 +08:00

18 lines
395 B
Ruby
Executable File

#!/usr/bin/env ruby
# frozen_string_literal: true
require "vosk"
SAMPLE_RATE = 16_000
Vosk.log_level = -1
model = Vosk::Model.new(lang: "en-us")
rec = Vosk::KaldiRecognizer.new(model, SAMPLE_RATE)
rec.words = true
IO.popen(["ffmpeg", "-loglevel", "quiet", "-i", "audio.mp4",
"-ar", SAMPLE_RATE.to_s, "-ac", "1", "-f", "s16le", "-",]) do |stream|
puts rec.srt_result(stream)
end