File size: 1,255 Bytes
238b905
1bf36cc
 
64f8498
1bf36cc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from .vad import AudioVad, AudioSegment
import numpy as np
from typing import List, Tuple

class VoiceActivityDetector:
    """
    VAD检测器,用于检测音频中的语音片段
    这是一个包装类,内部使用AudioVad实现功能
    """
    
    def __init__(self, save_audio=True, save_json=True):
        """
        初始化VAD检测器
        
        :param save_audio: 是否保存分段音频
        :param save_json: 是否保存JSON元数据
        """
        self.vad = AudioVad(
            save_audio=save_audio,
            save_json=save_json,
            output_dir="dataset/audio/segments",
            json_dir="dataset/audio/metadata"
        )
    
    def detect_voice_segments(self, audio_data: np.ndarray, sample_rate: int) -> List[Tuple[float, float]]:
        """
        检测音频中的语音片段
        
        :param audio_data: 音频数据
        :param sample_rate: 采样率
        :return: 语音片段列表,每个片段为(开始时间, 结束时间)的元组
        """
        segments = self.vad.process_audio_data(audio_data, sample_rate)
        return [(segment.start_time, segment.end_time) for segment in segments]

__all__ = ['AudioVad', 'AudioSegment', 'VoiceActivityDetector']