Class: Itak::VAD
- Inherits:
-
Object
- Object
- Itak::VAD
- Defined in:
- lib/itak/vad.rb
Instance Method Summary collapse
-
#initialize(model: "silero-v6.2.0") ⇒ VAD
constructor
A new instance of VAD.
- #run(src, dest, params: nil) ⇒ Object
Constructor Details
#initialize(model: "silero-v6.2.0") ⇒ VAD
Returns a new instance of VAD.
8 9 10 |
# File 'lib/itak/vad.rb', line 8 def initialize(model: "silero-v6.2.0") @model = model end |
Instance Method Details
#run(src, dest, params: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/itak/vad.rb', line 12 def run(src, dest, params: nil) src = Pathname(src) dest = Pathname(dest) context = Whisper::VAD::Context.new(@model) params ||= Whisper::VAD::Params.new( threshold: 0.7, min_silence_duration_ms: 1000 ) waveform, sample_rate = TorchAudio.load(src) chunks = [] context.detect(src.to_path, params).each do |segment| segment => {start_time:, end_time:} st = start_time * sample_rate / 1000 en = end_time * sample_rate / 1000 chunks << waveform[0][st..en] end output = Torch.cat(chunks) TorchAudio.save(dest.to_path, output.unsqueeze(0), sample_rate) dest end |