MCPcopy Create free account
hub / github.com/modelscope/FunASR / sv_chunk

Function sv_chunk

funasr/utils/speaker_utils.py:70–110  ·  view source on GitHub ↗

Sv chunk. Args: vad_segments: TODO. fs: TODO.

(vad_segments: list, fs=16000)

Source from the content-addressed store, hash-verified

68
69
70def sv_chunk(vad_segments: list, fs=16000) -> list:
71 """Sv chunk.
72
73 Args:
74 vad_segments: TODO.
75 fs: TODO.
76 """
77 config = {
78 "seg_dur": 1.5,
79 "seg_shift": 0.75,
80 }
81
82 def seg_chunk(seg_data):
83 """Seg chunk.
84
85 Args:
86 seg_data: TODO.
87 """
88 seg_st = seg_data[0]
89 data = seg_data[2]
90 chunk_len = int(config["seg_dur"] * fs)
91 chunk_shift = int(config["seg_shift"] * fs)
92 last_chunk_ed = 0
93 seg_res = []
94 for chunk_st in range(0, data.shape[0], chunk_shift):
95 chunk_ed = min(chunk_st + chunk_len, data.shape[0])
96 if chunk_ed <= last_chunk_ed:
97 break
98 last_chunk_ed = chunk_ed
99 chunk_st = max(0, chunk_ed - chunk_len)
100 chunk_data = data[chunk_st:chunk_ed]
101 if chunk_data.shape[0] < chunk_len:
102 chunk_data = np.pad(chunk_data, (0, chunk_len - chunk_data.shape[0]), "constant")
103 seg_res.append([chunk_st / fs + seg_st, chunk_ed / fs + seg_st, chunk_data])
104 return seg_res
105
106 segs = []
107 for i, s in enumerate(vad_segments):
108 segs.extend(seg_chunk(s))
109
110 return segs
111
112
113def extract_feature(audio):

Callers 3

inference_with_vadMethod · 0.90
process_audioFunction · 0.90
websocket_endpointFunction · 0.90

Calls 1

seg_chunkFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…