Downloads · 30 days
5
16% of all-time downloads
daegyeong48/whisper-small-ko-fall-help-ct2-int8
whisper-small-ko-fall-help-ct2-int8 is a automatic speech recognition model from daegyeong48. Use it when you need speech turned into text.
한국어 낙상 및 도움 요청 음성 인식을 위해 파인튜닝한 Whisper Small 모델의 CTranslate2 INT8 배포 버전입니다. 1인 가구 시니어의 낙상 사고 감지 캡스톤 프로젝트에서 CPU 추론용으로 사용합니다.
Downloads · 30 days
5
16% of all-time downloads
All-time downloads
31
Public
Repo size
245 MB
Likes
0
Public
Click a slice to open those files.
.bin245 MB · 100%
From the Hugging Face model README
한국어 낙상 및 도움 요청 음성 인식을 위해 파인튜닝한 Whisper Small 모델의 CTranslate2 INT8 배포 버전입니다. 1인 가구 시니어의 낙상 사고 감지 캡스톤 프로젝트에서 CPU 추론용으로 사용합니다.
이 저장소에는 모델 가중치와 실행 설정만 포함하며, AI Hub 원본 데이터와 직접 녹음한 음성은 포함하지 않습니다.
| 항목 | 내용 |
|---|---|
| 기반 모델 | seastar105/whisper-small-ko-zeroth |
| 언어 | 한국어 |
| 작업 | 자동 음성 인식(ASR) |
| 파인튜닝 | LoRA, q_proj와 v_proj 대상 |
| 배포 형식 | CTranslate2 |
| 양자화 | INT8 |
| 실행 장치 | CPU |
| 모델 크기 | 약 234.4 MB |
학습에는 AI Hub 위급상황 음성·음향 데이터 중 프로젝트 목적에 맞는 낙상 및 도움 요청 음성과 직접 녹음한 위급 표현을 사용했습니다.
최종 추가 학습 단계의 구성은 다음과 같습니다.
fall_related, help_direct직접 녹음 반복은 적은 수의 목표 발화를 보강하기 위한 학습 샘플링이며, 서로 다른 녹음 595개를 의미하지 않습니다.
프로젝트 입력 규격은 다음과 같습니다.
ko모델 내부에서는 Whisper 전용 80-bin Log-Mel 특징을 사용합니다.
평가 데이터는 총 2,398개입니다.
fall_related: 1,199개help_direct: 1,199개동일한 CPU / CTranslate2 INT8 / beam_size=1 조건의 결과입니다. CER과 WER은 비율이며 낮을수록 좋습니다.
| 모델 | CER | WER | 키워드 인식률 |
|---|---|---|---|
| Zeroth baseline INT8 | 0.4376 (43.76%) | 0.8383 (83.83%) | 88.49% |
| LoRA fine-tuned INT8 | 0.0231 (2.31%) | 0.0651 (6.51%) | 99.58% |
직접 녹음 평가 28개만 분리한 최종 INT8 결과는 CER 0.1956, WER 0.3571, 키워드 인식률 78.57%였습니다. 전체 결과보다 낮으므로 실제 환경과 다양한 화자의 발음에 대한 추가 검증이 필요합니다.
비공개 저장소를 내려받으려면 먼저 Hugging Face에 로그인해야 합니다.
hf auth login
hf download daegyeong48/whisper-small-ko-fall-help-ct2-int8 `
--local-dir whisper_models/whisper-small-ko-fall-help-userx5-ct2-int8
from faster_whisper import WhisperModel
model = WhisperModel(
"whisper_models/whisper-small-ko-fall-help-userx5-ct2-int8",
device="cpu",
compute_type="int8",
)
segments, info = model.transcribe(
"sample.wav",
language="ko",
task="transcribe",
beam_size=1,
without_timestamps=True,
)
text = "".join(segment.text for segment in segments).strip()
print(text)
프로젝트의 마이크 스크립트를 사용할 때는 다음과 같이 실행합니다.
python tools/transcribe_mic_int8.py --seconds 5 --device 1
공개 전환 전에는 기반 모델과 사용 데이터의 재배포 조건을 별도로 확인해야 합니다.