Skip to content

Commit d0328a6

Browse files
committed
chore: Notion 동기화 2026-07-10 19:00
1 parent 3b21ad3 commit d0328a6

2 files changed

Lines changed: 38 additions & 4 deletions

File tree

blog/.notion-sync.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
},
2323
"399e15b4-0359-80bc-a362-f310d7425d86": {
2424
"file": "blog/2026-07-10-07-음성분석-처리-과정-및-결과.md",
25-
"last_edited": "2026-07-10T08:55:00.000Z",
26-
"content_hash": "3b54343f4a23e022f8fefacf56c65e3c47358c94997a7518ecc520a573c86842",
25+
"last_edited": "2026-07-10T09:22:00.000Z",
26+
"content_hash": "6350c1bdf0e06fc99be12dad6b97edb4ccf540ae3060f5a5fd48b90c114242d9",
2727
"order": 4,
2828
"parent_id": null
2929
}

blog/2026-07-10-07-음성분석-처리-과정-및-결과.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ authors: [sbin]
1313

1414
막연하게는, 최신 모델 가져와서 분석시키면 되는 간단한 과정이라 생각했다.
1515

16-
하지만 여러 라이브러리가 존재하는 것을 파악하였고, 최종 과정은 이러하다.
16+
하지만 최적화를 위해 여러 라이브러리가 존재하는 것을 파악하였고, 설계를 아래와 같이 하였다.
1717

1818
```bash
1919
run()
@@ -26,7 +26,7 @@ run()
2626
└ 5) json 저장
2727
```
2828

29-
목표하는 자막 판별 결과물 예시는 이러하다
29+
출력 결과는 이러했다.
3030

3131
```json
3232
{
@@ -57,6 +57,40 @@ run()
5757
```
5858

5959

60+
그 중 발화 구간, 화자 구분, 언어 판정, ASR 과정을 각각 살펴보겠다
61+
62+
#### 1. 발화 구간
63+
64+
| 사용 기술 | [https://github.com/snakers4/silero-vad](https://github.com/snakers4/silero-vad) | |
65+
| --- | --- | --- |
66+
67+
```python
68+
def detect(audio_np: np.ndarray, sr: int = 16000) -> list[tuple[float, float]]:
69+
"""발화 구간 타임스탬프 추출.
70+
71+
audio_np : float32 1D numpy (16kHz 권장)
72+
sr : 샘플레이트 (Silero VAD 는 16k / 8k 만 공식 지원)
73+
74+
Returns: [(start_sec, end_sec), ...] — 발화 구간 (정렬됨)
75+
"""
76+
# silero-vad 로드 완료 뒤
77+
audio_t = torch.from_numpy(audio_np).float()
78+
ts_list = _get_speech_timestamps(
79+
audio_t, _model, sampling_rate=sr,
80+
min_speech_duration_ms=int(MIN_SPEECH_S * 1000),
81+
max_speech_duration_s=MAX_SPEECH_S,
82+
min_silence_duration_ms=int(MIN_SILENCE_S * 1000),
83+
)
84+
return [(t["start"] / sr, t["end"] / sr) for t in ts_list]
85+
```
86+
87+
#### 2. 화자 구분
88+
89+
90+
#### 3. 언어 판정
91+
92+
93+
#### 4. ASR
6094

6195

6296
---

0 commit comments

Comments
 (0)