num_frames_required() implementation.
This commit is contained in:
@@ -82,7 +82,10 @@ class KrispVivaVadAnalyzer(VADAnalyzer):
|
|||||||
|
|
||||||
self._session = None
|
self._session = None
|
||||||
self._frame_duration_ms = frame_duration
|
self._frame_duration_ms = frame_duration
|
||||||
self._samples_per_frame = frame_duration * sample_rate / 1000
|
self._samples_per_frame = None
|
||||||
|
# Calculate samples per frame if sample_rate is provided
|
||||||
|
if sample_rate is not None:
|
||||||
|
self._samples_per_frame = int((sample_rate * frame_duration) / 1000)
|
||||||
|
|
||||||
# Acquire SDK reference (will initialize on first call)
|
# Acquire SDK reference (will initialize on first call)
|
||||||
KrispVivaSDKManager.acquire()
|
KrispVivaSDKManager.acquire()
|
||||||
@@ -154,7 +157,26 @@ class KrispVivaVadAnalyzer(VADAnalyzer):
|
|||||||
super().set_sample_rate(sample_rate)
|
super().set_sample_rate(sample_rate)
|
||||||
|
|
||||||
def num_frames_required(self) -> int:
|
def num_frames_required(self) -> int:
|
||||||
pass
|
"""Get the number of audio frames required for analysis.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Number of frames (samples) needed for VAD processing based on
|
||||||
|
current sample rate and frame duration.
|
||||||
|
"""
|
||||||
|
# If already calculated from session creation, return it
|
||||||
|
if self._samples_per_frame is not None:
|
||||||
|
return self._samples_per_frame
|
||||||
|
|
||||||
|
# Calculate from current sample rate if available
|
||||||
|
if self.sample_rate > 0:
|
||||||
|
return int((self.sample_rate * self._frame_duration_ms) / 1000)
|
||||||
|
|
||||||
|
# Fallback: calculate from initial sample rate if provided
|
||||||
|
if self._init_sample_rate is not None:
|
||||||
|
return int((self._init_sample_rate * self._frame_duration_ms) / 1000)
|
||||||
|
|
||||||
|
# Default fallback: assume 16kHz @ 10ms = 160 samples
|
||||||
|
return int((16000 * self._frame_duration_ms) / 1000)
|
||||||
|
|
||||||
def voice_confidence(self, buffer) -> float:
|
def voice_confidence(self, buffer) -> float:
|
||||||
"""Calculate voice activity confidence for the given audio buffer.
|
"""Calculate voice activity confidence for the given audio buffer.
|
||||||
|
|||||||
Reference in New Issue
Block a user