Method: Noyes::SpeechTrimmer#enqueue

Defined in:
lib/ruby_impl/speech_trimmer.rb

#enqueue(pcm) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/ruby_impl/speech_trimmer.rb', line 35

def enqueue pcm
  return if @eos_reached
  @queue << pcm
  if @cent_marker << pcm
    @false_count = 0
    @true_count += 1
  else
    @false_count += 1
    @true_count = 0
  end
  if @speech_started
    if @false_count == @ecs
      @eos_reached = true
      # only keep trailer number of cents once eos is detected.
      @queue = @queue[0, @queue.size - @ecs + @trailer]
    end
  elsif @true_count > @scs
    # Discard most begining silence, keeping just a tad.
    if @leader + @scs < @queue.size
      start = @queue.size - @leader - 1 - @scs
      @queue = @queue[start,@queue.size - start]
    end
    @speech_started = true
  end
end