Class: Itak::VAD

Inherits:
Object
  • Object
show all
Defined in:
lib/itak/vad.rb

Constant Summary collapse

PARAMS =
Whisper::VAD::Params.new(
  threshold: 0.7,
  min_silence_duration_ms: 1500
)

Instance Method Summary collapse

Constructor Details

#initialize(model: "silero-v6.2.0") ⇒ VAD

Returns a new instance of VAD.



11
12
13
14
# File 'lib/itak/vad.rb', line 11

def initialize(model: "silero-v6.2.0")
  Whisper.log_set proc {}, nil
  @vad = Whisper::VAD::Context.new(model)
end

Instance Method Details

#run(src, params: PARAMS) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/itak/vad.rb', line 16

def run(src, params: PARAMS)
  src = src[0] if src.ndim == 2 && src.shape[0] == 1
  chunks = []
  @vad.segments_from_samples(params, src.to_ndav).each do |segment|
    segment => {start_time:, end_time:}
    st = start_time * SAMPLE_RATE / 1000
    en = end_time * SAMPLE_RATE / 1000
    chunks << src[st..en]
  end
  Torch.cat(chunks)
end