|
Download README.md from Phsoft-ai/Notesoop-STT-Ko-v1: direct link, hf CLI and curl.
- Browser
- Download file 13.8 kB
-
https://huggingface.co/Phsoft-ai/Notesoop-STT-Ko-v1/resolve/main/README.md
- Command line
-
hf download hf://Phsoft-ai/Notesoop-STT-Ko-v1/README.md
-
curl -L -o README.md https://huggingface.co/Phsoft-ai/Notesoop-STT-Ko-v1/resolve/main/README.md
13.8 kB
| language: | |
| - ko | |
| license: apache-2.0 | |
| tags: | |
| - audio | |
| - speech-recognition | |
| - automatic-speech-recognition | |
| - apple-silicon | |
| - on-device | |
| - korean | |
| - embeddinggemma-2 | |
| - notesoop | |
| pipeline_tag: automatic-speech-recognition | |
| metrics: | |
| - cer | |
| - wer | |
| library_name: pytorch | |
| # Notesoop-STT-Ko-v1 | |
| <p align="center"> | |
| <img src="https://img.shields.io/badge/Language-Korean%20(ํ๊ตญ์ด)-blue" alt="Language" /> | |
| <img src="https://img.shields.io/badge/Speedup-39.9x%20Real--time-green" alt="Speedup" /> | |
| <img src="https://img.shields.io/badge/Audio%20Encoder-EmbeddingGemma--2-orange" alt="Audio Encoder" /> | |
| <img src="https://img.shields.io/badge/VRAM-1.2GB%20~%201.5GB-purple" alt="VRAM" /> | |
| <img src="https://img.shields.io/badge/Platform-Apple%20Silicon%20(PyTorch%20MPS)-black" alt="Platform" /> | |
| <img src="https://img.shields.io/badge/License-Apache%202.0-lightgrey" alt="License" /> | |
| </p> | |
| <p align="center"> | |
| <a href="https://apps.apple.com/kr/app/notesoop/id6760303593" target="_blank"><img src="https://img.shields.io/badge/App_Store-%EB%85%B8%ED%8A%B8%EC%88%B2_%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-0D96F6?style=for-the-badge&logo=apple&logoColor=white" alt="Download on the App Store" /></a> <a href="https://play.google.com/store/apps/details?id=com.phsoft.notesoop&utm_source=ig&utm_medium=social&utm_content=link_in_bio&fbclid=PAdGRleAS711NwZG9mAmV4dG4DYWVtAjExAHNydGMGYXBwX2lkDzEyNDAyNDU3NDI4NzQxNAABpxFu1PSQrzp-9WgAihbuFrY4gre7MP6MH5Xx4lfKa9FjndnyVoMXb8awipoa_aem_5ccpc4qbd5STxaPUlQif3g" target="_blank"><img src="https://img.shields.io/badge/Google_Play-%EB%85%B8%ED%8A%B8%EC%88%B2_%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-01875F?style=for-the-badge&logo=googleplay&logoColor=white" alt="Get it on Google Play" /></a> | |
| </p> | |
| **Notesoop-STT-Ko-v1**์ ๋ ธํธ์ฒ(Notesoop)์์ ๊ฐ๋ฐํ Apple Silicon(PyTorch MPS) ๊ฐ์ ํ๊ตญ์ด ์จ๋๋ฐ์ด์ค ์์ฑ์ธ์(ASR) ๋ชจ๋ธ์ ๋๋ค. | |
| Google์ `EmbeddingGemma-2` ์ค๋์ค ์ธ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์จ๋๋ฐ์ด์ค ํ๊ฒฝ์ ์ต์ ํ๋ ๊ฒฝ๋ ์ํฅ ๋ฆฌ๋์ ์ธ์ด ๋์ฝ๋๋ฅผ ๊ฒฐํฉํ์ฌ ์ค๊ณ๋์์ต๋๋ค. ์ฝ 1.2~1.5GB ์์ค์ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ์ ์ ์จ๋ก **์ค์๊ฐ ๋๋น ์ฝ 40๋ฐฐ์(`RTF 0.0251`, 41๋ถ ๋ถ๋ ์์ฑ์ ์ฝ 63์ด์ ์ฒ๋ฆฌ)**์ ๋น ๋ฅธ ์จ๋๋ฐ์ด์ค ์ถ๋ก ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. | |
| > ๋ณธ ๋ชจ๋ธ(Notesoop-STT-Ko-v1)์ ์ฌํด ์์ ๋ ธํธ์ฒ(Notesoop) ์ฑ์์๋ ๋ง๋๋ณด์ค ์ ์์ต๋๋ค. | |
| --- | |
| ## Background & Design Goals | |
| ๋ ธํธ์ฒ์ **"ํ์ต์ ๋นํจ์จ์ ์ค์ฌ, ์ฌ์ฉ์๊ฐ ๋๊ตฌ๊ฐ ์๋ ๋ฐฐ์์ ์ง์คํ ์ ์๋ ๊ฒฝํ์ ๋ง๋ ๋ค"**๋ ๋ฏธ์ ์๋ ํฉ์ด์ง ํ์ต ๋๊ตฌ์ AI๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ์ฐ๊ฒฐํ๋ ๊ธฐ์ ์ ์ฐ๊ตฌํ๊ณ ์์ต๋๋ค. | |
| ์ค์ ํ์ต ํ๊ฒฝ์์๋ ์์ญ ๋ถ์์ ์ ์๊ฐ ๋ถ๋์ ๊ฐ์ ๋ฐ ํ์ต ์์ฑ์ ๋ค๋ฃจ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ ์ํ์ ์์กดํ๊ฑฐ๋ ๊ธด ๋ณํ ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผ ํ๊ณ , ๋ฌด๊ฑฐ์ด ๋ชจ๋ธ ๋๋ฌธ์ ๊ธฐ๊ธฐ ๋ฆฌ์์ค๊ฐ ์ ์๋์ด ์ ์ PDF ์ด๋์ด๋ ํ๊ธฐ ๊ฐ์ ๋ณธ์ฐ์ ํ์ต ํ๋์ด ๋ฐฉํด๋ฐ๋ ๊ฒ์ ํฐ ๋นํจ์จ์ ๋๋ค. **Notesoop-STT-Ko-v1**์ ๊ธฐ์ ์ ๋ณต์กํจ์ ๋ชจ๋ธ ๋ด๋ถ๋ก ์จ๊ธฐ๊ณ ์ฌ์ฉ์์๊ฒ๋ ๋๊น ์๋ ํ์ต ํ๊ฒฝ์ ์ ๊ณตํ๊ธฐ ์ํด ๋ค์ ์ธ ๊ฐ์ง ๋ชฉํ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. | |
| * **์ค์ง์ ์ธ ํ์ต ํจ์จ (Practicality & Speed):** ๊ธด ๋ น์ ํ์ผ๋ ๋๊ธฐ ์๊ฐ ์์ด ์ฆ์ ๋ณต์ต๊ณผ ์ ๋ฆฌ์ ํ์ฉํ ์ ์๋๋ก, ๋น์๊ธฐํ๊ท(Non-Autoregressive) ๋จ์ผ ํจ์ค ๊ตฌ์กฐ์ ๊ณ ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ์ ์ฉํ์ต๋๋ค. | |
| * **๋ชจ๋ฐ์ผ ๋ฐ ์จ๋๋ฐ์ด์ค ์ต์ ํ (Simplicity & Accessibility):** ๋ณ๋์ ์๋ฒ๋ ๊ณ ์ฌ์ ์ฅ๋น ์์ด ํ๋ธ๋ฆฟยท์ค๋งํธํฐ ๋ฑ ์ ํ๋ ์ฐ์ฐ ์์์ ๊ฐ์ง ๋ชจ๋ฐ์ผ ๋๋ฐ์ด์ค์์๋ ์ถฉ๋ถํ ์ถ๋ก ์๋๋ฅผ ์ ๊ณตํ ์ ์๋๋ก, ์ํฅ ๋ฆฌ๋ ๋ชจ๋ธ์ ์จ๋๋ฐ์ด์ค์ ๋ง๊ฒ ์ด๊ฒฝ๋ํํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ์ ์จ์ ์ต์ํํ์ต๋๋ค. | |
| * **์ด๋ฆฐ ๊ธฐ์ ์คํ (Open Ecosystem):** ๋๊ตฌ๋ ์จ๋๋ฐ์ด์ค ํ๊ฒฝ์์ ํ๊ตญ์ด ์์ฑ์ธ์ ๊ธฐ์ ์ ๋ถ๋ด ์์ด ์คํํ๊ณ ๋ ๋์ ํ์ต ๊ฒฝํ์ ๋ง๋๋ ๋ฐ ํ์ฉํ ์ ์๋๋ก, ๋ชจ๋ธ ๊ฐ์ค์น์ PyTorch MPS ๊ณ ์ ์ถ๋ก ํ์ดํ๋ผ์ธ ์ ์ฒด๋ฅผ Apache-2.0 ๋ผ์ด์ ์ค๋ก ๊ณต๊ฐํฉ๋๋ค. | |
| --- | |
| ## Model Specifications | |
| | ํญ๋ชฉ | ์์ธ ์ฌ์ | | |
| | :--- | :--- | | |
| | **Audio Encoder** | `google/embeddinggemma-2` (Audio Tower, 16kHz Mono, 128-Mel) | | |
| | **Acoustic Decoder** | Lightweight Korean Acoustic Reader | | |
| | **Vocabulary** | 25,000 ํ๊ตญ์ด ํํ์ ๋ฐ ์์ ์ดํ์ง | | |
| | **Language Rescoring** | KenLM 3-Gram ํ๊ตญ์ด ์ธ์ด ๋ชจ๋ธ | | |
| | **Supported Backends** | PyTorch MPS (`bfloat16`), CUDA / CPU | | |
| | **Training Data** | AI Hub ํ๊ตญ์ด ๊ฐ์ ์์ฑ ๋ฐ์ดํฐ (์ฝ 300GB) | | |
| | **License** | Apache-2.0 | | |
| --- | |
| ## Overview | |
| Notesoop-STT-Ko-v1์ Google์ `embeddinggemma-2` ์ค๋์ค ์ธ์ฝ๋๊ฐ ์ถ์ถํ ๊ณ ๋ฐ๋ ์ํฅ ํํ์ ๋ฐํ์ผ๋ก, ์จ๋๋ฐ์ด์ค ํ๊ฒฝ์์ ์ง์ฐ ์์ด ๋น ๋ฅด๊ฒ ๋์ํ ์ ์๋๋ก ์ต์ ํ๋ ๊ฒฝ๋ ์ํฅ ๋ฆฌ๋๋ฅผ ํตํด ํ๊ตญ์ด ์์ฑ์ ํ ์คํธ๋ก ๊ณ ์ ๋ณต์ํฉ๋๋ค. | |
| * **Google EmbeddingGemma-2 ์ค๋์ค ์ธ์ฝ๋ ๊ธฐ๋ฐ:** ์ฌ์ ํ์ต๋ ๋๊ท๋ชจ ๋ฉํฐ๋ชจ๋ฌ ์ค๋์ค ์ธ์ฝ๋์ ํ๋ถํ ์ํฅ ํน์ง์ ํ์ฉํ์ฌ ๋ฐฐ๊ฒฝ ์์๊ณผ ๋ค์ํ ์์ง ์กฐ๊ฑด์์๋ ๊ฒฌ๊ณ ํ ์ํฅ ํํ์ ํฌ์ฐฉํฉ๋๋ค. | |
| * **์ด๊ฒฝ๋ ์จ๋๋ฐ์ด์ค ๋ฆฌ๋:** ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ด ์ ํ๋ ๋ชจ๋ฐ์ผ ๋ฐ ๋ฉํฑ ๋๋ฐ์ด์ค์์๋ ๋ถ๋ด ์์ด ๊ตฌ๋๋ ์ ์๋๋ก ํ๋ผ๋ฏธํฐ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต์ํํ์ต๋๋ค. | |
| * **Apple Silicon MPS ๊ณ ์ ๊ฐ์:** PyTorch MPS ํ๊ฒฝ์์ ๋ถํ์ํ ํ๋ณํ ์ค๋ฒํค๋๋ฅผ ์ค์ธ `bfloat16` ํ ์ ์ฐ์ฐ์ ํตํด ์ค์๊ฐ ๋๋น ์ฝ 40๋ฐฐ์์ ๋น ๋ฅธ ์ถ๋ก ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. | |
| * **GPU-CPU ๋น๋๊ธฐ ํ์ดํ๋ผ์ด๋:** GPU๊ฐ ์ค๋์ค ์ฒญํฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ CPU ์ค๋ ๋์์ ์ธ์ด ๋ชจ๋ธ ๋น ์์น์ ํ ์คํธ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ๋ณ๋ ฌ๋ก ์ํํ์ฌ ์ฒด๊ฐ ์ง์ฐ ์๊ฐ์ ๊ทน๋ํํ์ต๋๋ค. | |
| --- | |
| ## Data | |
| **Notesoop-STT-Ko-v1**์ ์ค์ ํ์ต ๋ฐ ๊ต์ก ํ์ฅ์ ์ํฅยท์ธ์ด์ ํน์ฑ์ ๋ฐ์ํ๊ธฐ ์ํด **AI Hub์ ์ฝ 300GB ๋ถ๋ ํ๊ตญ์ด ๊ฐ์ ์์ฑ ๋ฐ์ดํฐ**๋ก ํ์ต๋์์ต๋๋ค. | |
| * **์ค์ ๊ฐ์ ๋๋ฉ์ธ ํนํ:** ์ฝ 300GB ๊ท๋ชจ์ ๋ฐฉ๋ํ ์ค์ ๊ฐ์ ์์ฑ์ ํ์ต์ ํ์ฉํ์ฌ, ์ ์ ๋ ๋ญ๋ ์ฒด๋ฟ๋ง ์๋๋ผ ๊ฐ์ ํ์ฅ์ ๋ฐํ ์๋ ๋ณํ, ์ค๋ช ์กฐ ์ดํฌ, ํ์ ยท์ ๊ณต ์ฉ์ด, ์ฅ์๊ฐ ์ฐ์ ๋ฐํ ํ๊ฒฝ์์๋ ์์ ์ ์ธ ์ธ์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. | |
| * **ํํ์ยท์์ ํ์ด๋ธ๋ฆฌ๋ ํ ํฌ๋์ด์ง:** ํ๊ตญ์ด ๊ต์ฐฉ์ด ํน์ฑ์ ๋ง์ถฐ ์์ฃผ ์ฐ์ด๋ ํ๋ฉด ํํ์(Surface Morpheme)์ ์์ ๋จ์ Fallback์ ๊ฒฐํฉํ 25,000๊ฐ ์ดํ ์ฌ์ ์ ๊ตฌ์ถํ์ฌ ๋ฏธ๋ฑ๋ก ์ดํ(OOV) ์์ค์ ์ต์ํํ์ต๋๋ค. | |
| --- | |
| ## Benchmark | |
| `Notesoop-STT-Ko-v1`์ ์ฑ๋ฅ์ **(1) ๊ณต์ธ ํ์ค ํ๊ตญ์ด ํ์ ๋ฒค์น๋งํฌ**์ **(2) ์ค์ ๋ํ ์ ๊ณต ๊ฐ์ ๋กฑํผ ์์ฑ** ๋ ๊ฐ์ง ํ๊ฒฝ์์ ์ค์ธกํ ๊ฒฐ๊ณผ์ ๋๋ค. (Apple M1 Pro 16GB ๊ธฐ์ค) | |
| ### 1. ํ์ค ํ๊ตญ์ด STT ๋ฒค์น๋งํฌ (Zeroth-Korean Test Set, 457๊ฐ ๋ฌธ์ฅ) | |
| ํ๊ตญ์ด ์์ฑ์ธ์ ํ์ ํ๊ฐ์ ๊ณต์ ํ์ค ๋ฐ์ดํฐ์ ์ธ `Bingsu/zeroth-korean` ํ ์คํธ ๋ถํ (์ด 457๊ฐ ๋ฐํ ๋ฌธ์ฅ, 1์๊ฐ 11๋ถ 27์ด ๋ถ๋)์ ๋ํ ์ ์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋๋ค. | |
| | ๋ฐ์ดํฐ์ | ์ด ์ค๋์ค ๊ธธ์ด | ์ ์ฒด ์ ์ฌ ์๊ฐ โฑ๏ธ | ์ฒด๊ฐ ์๋ โก | RTF | ์ด๋น ์ฒ๋ฆฌ๋ (Throughput) | ์์ ์ค์ฐจ์จ (CER) ๐ฏ | ๋จ์ด ์ค์ฐจ์จ (WER) | | |
| | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | |
| | **Zeroth-Korean Test (457๋ฌธ์ฅ)** | **1์๊ฐ 11๋ถ (4,287์ด)** | **2๋ถ 30์ด (150.7์ด)** | **28.45๋ฐฐ์** | **0.0352** | **3.03 ๋ฌธ์ฅ/์ด** | **16.21%** | 45.40% | | |
| * **์ด๋น 3๋ฌธ์ฅ ์ด์์ ์ด๊ณ ์ ์ ์ฌ**: 1์๊ฐ 11๋ถ ๋ถ๋์ ๋ฐฉ๋ํ ์ค๋์ค๋ฅผ ๋จ 2๋ถ 30์ด ๋ง์ ์์ฃผํ๋ฉฐ, ๋ญ๋ ์ฒด ์์ฑ ํ๊ฒฝ์์ **16.21%์ ์ค์ํ ์์ ์ค์ฐจ์จ(CER)**์ ๋ฌ์ฑํฉ๋๋ค. | |
| * **์ค์ ์ ์ฌ ์ํ ์์**: | |
| * **์ ๋ต (REF)**: *"ํ ์์ ์ปคํผ๊ฐ ์๋น์์๊ฒ ์ ํด์ง๊ธฐ ์ํด์ ์ฌ๋ฌ ์ฐจ๋ก์ ๊ณต์ ์ ๊ฑฐ์ณ์ผ ํ๋ค"* | |
| * **์์ธก (HYP)**: *"ํ ์์ ์ปคํผ๊ฐ ์๋น์์๊ฒ ์ ํด์ง๊ธฐ ์ํด์ ์ฌ๋ฌ ์ฐจ๋ก์ ๊ณต์ ์ ๊ฑฐ์ณ์ผ ํ๋ค"* (CER: **0.00%**) | |
| * **์ ๋ต (REF)**: *"๋ํ ๋ฐ ์ ๋ํต๋ น ์ธก์ ์์ผ๋ก ๊ฒ์ฐฐ ์์ฌ์ ๊ด๋ จํด ์์ฌ ๋ด์ฉ์ ๋ํ ์ ์ฅ๋ฟ ์๋๋ผ ๋ณํธ์ธ๋จ์ ํ๋ ์ํฉ ๋ฑ๋ ์์ํ๊ฒ ๊ณต๊ฐํ๋ค๋ ๋ฐฉ์นจ์ด๋ค"* | |
| * **์์ธก (HYP)**: *"๋ํ ๋ฐ ์ ๋ํต๋ น ์ฃผ๋ณ์ ์์ผ๋ก ๊ฒ์ฐฐ์์ฌ์ ๊ด๋ จ๋ ์์ฌ ๋ด์ฉ์ ๋ํ ์ ์ฅ๋ฟ ์๋๋ผ ๋ณํธ์ธ๋จ์ ํ๋ ์ํฉ ๋ฑ๋ ์์ํ๊ฒ ๊ณต๊ฐํ๋ค๋ ๋ฐฉ์์ด๋ค"* (CER: **10.39%**) | |
| --- | |
| ### 2. ์ค์ ์ ๊ณต ๊ฐ์ ๋ น์ (41๋ถ 43์ด, Field Test) | |
| ๋ํ ๊ฐ์ ํ๊ฒฝ(๋ฐฐ๊ฒฝ ์ก์, ๋ฐํฅ, ๋ง๋๋ฌ ๋ฑ์ด ํฌํจ๋ ์ค์ 41๋ถ 43์ด ๋ น์ ์์ฑ)์ **Apple M1 Pro (16GB RAM)** ๋ชจ๋ธ์์ ์ง์ ๊ตฌ๋ํ๋ฉฐ ๊ธ๋ก๋ฒ ํ์ค ASR ๋ชจ๋ธ๋ค๊ณผ ๋น๊ต ์ธก์ ํ ์ค์ธก ๊ฒฐ๊ณผ์ ๋๋ค. | |
| | Model | Backend / Device | Processing Time | Speedup | RTF | CER (%) ๐ฏ | WER (%) | Host RAM | GPU Memory (VRAM) ๐ฅ๏ธ | | |
| | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | |
| | **Notesoop-STT-Ko-v1** | **PyTorch MPS (`bf16`)** | **1๋ถ 2์ด (62.7s)** | **39.9x** | **0.0251** | **22.46** | 39.25 | **1,076 MB** | 1,537 MB | | |
| | Whisper-medium | MPS | 4๋ถ 11์ด (251.5s) | 10.0x | 0.1005 | 26.68 | 45.82 | 1,050 MB | 3,467 MB | | |
| | Whisper-large-v3 | MPS | 11๋ถ 45์ด (704.9s) | 3.6x | 0.2816 | 25.55 | 42.10 | 1,243 MB | 6,325 MB | | |
| * **`Whisper-large-v3` ๋๋น 11.2๋ฐฐ ๊ณ ์ & ๋ ์ฐ์ํ ์ ํ๋:** Whisper-large-v3(11๋ถ 45์ด, CER 25.55%) ๋๋น **์ฝ 11.2๋ฐฐ ๋น ๋ฅธ ์๋(1๋ถ 2์ด)**์ **๋ ๋ฎ์ ์์ ์ค์ฐจ์จ(CER 22.46%, 3.09%p ํฅ์)**์ ๋์์ ์ ๊ณตํฉ๋๋ค. | |
| * **1/4 ์์ค์ ๊ฒฝ๋ VRAM (1.2~1.5GB):** Whisper-large-v3(6.3GB)์ 1/4๋ ์ ๋๋ ๊ฐ๋ฒผ์ด ๋ฉ๋ชจ๋ฆฌ ์ ์ ์จ ๋๋ถ์, ๊ธฐ๋ณธํ ๋งฅ๋ถ ์์ด/ํ๋ก(8GB/16GB)์์๋ ๋ฐ์ด๊ณผ ํฌ ์์ ์์ด ๋ค๋ฅธ ํ์ต ์ฑ๊ณผ ๋์์ ์พ์ ํ๊ฒ ๊ตฌ๋๋ฉ๋๋ค. | |
| * **๋น์๊ธฐํ๊ท(Non-Autoregressive) ๊ตฌ์กฐ์ ๊ฐ์ :** ๋ฌธ์ฅ์ ํ ํ ํฐ์ฉ ์์ฐจ ์์ฑํ๋ Whisper์ ๋ฌ๋ฆฌ, ๋น์๊ธฐํ๊ท ๊ตฌ์กฐ๋ก ์ค๋์ค ์ ์ฒด ์ํฅ ํน์ง์ ๋จ์ผ ํจ์ค($O(T)$)๋ก ๋ณ๋ ฌ ์ฒ๋ฆฌํ์ฌ ์ฅ์๊ฐ ์์ฑ์์๋ ์ฒ๋ฆฌ ์๋๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋นจ๋ผ์ง๋๋ค. | |
| --- | |
| ## Quickstart | |
| ### 1. Installation | |
| macOS (Apple Silicon M1 ์ด์ ๊ถ์ฅ) ๋ฐ Python 3.10+ ํ๊ฒฝ์ ๊ถ์ฅํฉ๋๋ค. ์ค๋์ค ๋์ฝ๋ฉ์ ์ํด ์์คํ ์ `ffmpeg`๊ฐ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค(`brew install ffmpeg`). | |
| ```bash | |
| git clone https://huggingface.co/Phsoft-ai/Notesoop-STT-Ko-v1 | |
| cd Notesoop-STT-Ko-v1 | |
| # ์์กด์ฑ ํจํค์ง ์ค์น | |
| pip install -r requirements.txt | |
| # KenLM 3-Gram ๋์ฝ๋ ์ค์น | |
| pip install https://github.com/kpu/kenlm/archive/master.zip | |
| ``` | |
| ### 2. CLI Usage | |
| `transcribe.py`๋ฅผ ํตํด ๋จ์ผ ๋ช ๋ น์ด๋ก ์ค๋์ค ํ์ผ์ ์ ์ฌํ ์ ์์ต๋๋ค. (`.wav`, `.m4a`, `.mp3`, `.flac` ์ง์) | |
| ```bash | |
| # ๊ธฐ๋ณธ ์คํ (PyTorch MPS ๋ฐฑ์๋, batch_size=4) | |
| python transcribe.py sample_audio.wav | |
| # ์ฅ์๊ฐ ๊ฐ์ ์ค๋์ค ์ ์ฌ ๋ฐ ๊ฒฐ๊ณผ ํ์ผ ์ ์ฅ | |
| python transcribe.py my_lecture.m4a --batch-size 4 --chunk-sec 16.0 --output transcript.txt | |
| # KenLM ๋น ์์น ๋นํ์ฑํ (Greedy CTC ๋์ฝ๋ฉ) | |
| python transcribe.py sample_audio.wav --no-kenlm | |
| ``` | |
| ### 3. Python API | |
| ```python | |
| from run_inference import EmbeddingGemmaSTT | |
| stt = EmbeddingGemmaSTT( | |
| device="mps", | |
| use_kenlm=True, | |
| lm_alpha=0.12, | |
| lm_beta=0.40, | |
| ) | |
| transcript, rtf = stt.transcribe( | |
| "sample_audio.wav", | |
| chunk_sec=16.0, | |
| overlap_sec=1.0, | |
| batch_size=4, | |
| ) | |
| print(f"RTF: {rtf:.4f} ({1/rtf:.1f}x real-time)") | |
| print(transcript) | |
| ``` | |
| --- | |
| ## Repository Structure | |
| ```text | |
| Notesoop-STT-Ko-v1/ | |
| โโโ README.md # Model Card ๋ฐ ์ฌ์ฉ ์๋ด | |
| โโโ checkpoints/ | |
| โ โโโ best_reader_inference.pt # ์ํฅ ๋ฆฌ๋ ๋ชจ๋ธ ๊ฐ์ค์น (137MB) | |
| โโโ data/ | |
| โ โโโ vocab/ | |
| โ โโโ vocab_25k.json # 25,000 ํ๊ตญ์ด ํํ์/์์ ์ดํ ์ฌ์ | |
| โ โโโ vector_bank_25k.pt # ์ดํ ๋งค์นญ ๋ฒกํฐ ๋ฑ ํฌ | |
| โ โโโ korean_lm.bin # KenLM 3-Gram ํ๊ตญ์ด ์ธ์ด ๋ชจ๋ธ (82.7MB) | |
| โโโ src/ | |
| โ โโโ model.py # ์ํฅ ๋ฆฌ๋ ๋ชจ๋ธ ๊ตฌํ | |
| โ โโโ dataset.py # ํ๊ตญ์ด ํํ์ ํ ํฌ๋์ด์ ๋ฐ ์ ๊ทํ | |
| โ โโโ decoder.py # KenLM ๋น ์์น ๋์ฝ๋ ๋ํผ | |
| โ โโโ step2_extract_features.py # EmbeddingGemma-2 ์ค๋์ค ํน์ง ์ถ์ถ๊ธฐ | |
| โโโ run_inference.py # ์ถ๋ก ํ์ดํ๋ผ์ธ ๋ฐ Python API | |
| โโโ transcribe.py # CLI ์คํ ์คํฌ๋ฆฝํธ | |
| โโโ sample_audio.wav # ํ ์คํธ์ฉ ์ํ ์ค๋์ค | |
| ``` | |
| --- | |
| ## License & Citation | |
| ๋ณธ ๋ชจ๋ธ๊ณผ ์ฝ๋๋ **[Apache License 2.0](LICENSE)** ํ์ ๊ณต๊ฐ๋์ด ์ฐ๊ตฌ ๋ฐ ์์ ์ ์ฉ๋๋ก ์์ ๋กญ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค. | |
| ```bibtex | |
| @misc{notesoop2026sttkov1, | |
| author = {Notesoop AI Team}, | |
| title = {Notesoop-STT-Ko-v1: Lightweight Korean On-Device Speech Recognition}, | |
| year = {2026}, | |
| publisher = {Hugging Face}, | |
| howpublished = {\url{https://huggingface.co/Phsoft-ai/Notesoop-STT-Ko-v1}}, | |
| note = {Apple Silicon MPS Accelerated Korean ASR} | |
| } | |
| ``` | |
| --- | |
| <p align="center"> | |
| <b>Notesoop (๋ ธํธ์ฒ)</b> โ ํ์ต์ ๋นํจ์จ์ ์ค์ฌ, ๋๊ตฌ๊ฐ ์๋ ๋ฐฐ์์ ์ง์คํ ์ ์๋ ๊ฒฝํ์ ๋ง๋ญ๋๋ค.<br> | |
| ์์ฑ ๊ธฐ๋ก๊ณผ PDF ํ๊ธฐ ์ฐ๋, ํต์ฌ ์ ๋ฆฌ, ๋ณต์ต ๋ฌธ์ ์์ฑ๊น์ง ํ๋๋ก ์ฐ๊ฒฐ๋ ํ์ต ํ๊ฒฝ์ ๋ ธํธ์ฒ ์ฑ์์ ๋ง๋๋ณด์ธ์. | |
| </p> | |