Skip to content

Commit 91f6b86

Browse files
Alenkarashimohin
andauthored
Update 0.6.6 (#6)
* Update README.md * Get fix for libs version (#5) * Update README.md * Fix/lib verison (#4) * fix: conflict version for onnxruntime * Update README.md * Create README.md for pypi * Update USAGE.md * Update _version.py * fix: update logger in asr.py and model_downloader.py, add base tests, add README.hf.md * feat: add pytest. * fix: change dtypes.py, update logger.py * fix: change README. * feat: add silero-vad lib * fix: silero-vad import utils * feat: update new version of package. --------- Co-authored-by: ashimohin <ashimohin@kbl-kr.ru>
1 parent 966439e commit 91f6b86

26 files changed

+774
-413
lines changed

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,4 @@
33
/kairos_asr.egg-info
44
.idea
55
/train
6-
/docs/README.hf.md
76
__pycache__/
8-
/docs/README.md

docs/README.hf.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
![image](assets/logo.png)
2+
3+
# Kairos Automatic Speech Recognition (Hugging Face)
4+
5+
[GitHub: Alenkar/kairos-asr](https://github.com/Alenkar/kairos-asr)
6+
7+
## 📄 Описание
8+
9+
**Kairos ASR** — высокопроизводительная библиотека распознавания русской речи на базе [GigaAM-style RNN-T](https://github.com/salute-developers/GigaAM) и **ONNX**. Фокус: скорость, точность и простая интеграция в микросервисы и десктопы.
10+
11+
Основные возможности:
12+
- Оптимизированный ONNX-инференс
13+
- **CPU** и **GPU (CUDA, extra `[gpu]`)**
14+
- Временные метки (**word-level**, **sentence-level**)
15+
- Итеративная обработка с прогрессом и ETA
16+
- Встроенный **Voice-Activity-Detection (VAD)**
17+
- Поддержка длинных аудио
18+
- Поддержка **Windows** и **Linux**
19+
20+
## 📦 Файлы в этом репозитории HF
21+
22+
Модельный репозиторий `Alenkar/KairosASR` содержит:
23+
- `kairos_asr_encoder.onnx`
24+
- `kairos_asr_decoder.onnx`
25+
- `kairos_asr_joint.onnx`
26+
- `kairos_asr_tokenizer.model`
27+
28+
`kairos-asr` загружает эти файлы через `huggingface_hub` автоматически. Можно скачать вручную:
29+
30+
```python
31+
from huggingface_hub import hf_hub_download
32+
33+
path = hf_hub_download("Alenkar/KairosASR", "kairos_asr_encoder.onnx")
34+
print(path)
35+
```
36+
37+
## ⚡ Быстрый старт
38+
39+
```bash
40+
pip install kairos-asr[cpu]
41+
# для GPU: pip install kairos-asr[gpu]
42+
```
43+
44+
Если нужна конкретная сборка Torch под вашу CUDA:
45+
46+
```bash
47+
# пример под CUDA 12.1/12.2 (cu121)
48+
pip install torch==2.6.0 torchaudio==2.6.0 \
49+
--index-url https://download.pytorch.org/whl/cu121 --upgrade
50+
```
51+
52+
## 🚀 Использование (Python)
53+
54+
Минимальный пример:
55+
56+
```python
57+
from kairos_asr import KairosASR
58+
59+
asr = KairosASR() # авто-загрузка весов с HF
60+
result = asr.transcribe(wav_file="audio.wav")
61+
print(result.full_text)
62+
```
63+
64+
Требования к аудио:
65+
- Любые форматы, поддерживаемые `ffmpeg`; ресемплинг до 16 kHz.
66+
- WAV PCM 16-bit mono (рекомендуется); стерео приводится к моно.
67+
- Длинные записи режутся Silero VAD на ~15–25 c (жёсткий лимит ~30 c) и объединяются.
68+
69+
## 🖥️ Использование (CLI)
70+
71+
Установите пакет, затем:
72+
73+
```bash
74+
# Проверить окружение
75+
kairos-asr doctor
76+
77+
# Список локальных/доступных моделей
78+
kairos-asr list
79+
80+
# Скачать все модели заранее
81+
kairos-asr download
82+
83+
# Перевести файл в текст
84+
kairos-asr transcribe <wav_file>
85+
```
86+
87+
## ⚙️ Системные требования
88+
- `ffmpeg` должен быть доступен в `PATH` (загрузка и ресемплинг аудио).
89+
- Доступ в интернет при первом запуске: скачивание весов моделей. Для ускорения и избежания лимитов задайте `HF_TOKEN` (`huggingface-cli login` или экспорт переменной окружения).
90+
91+
## Больше информации
92+
93+
Для получения дополнительной информации об исходной модели смотрите ее [карточку модели](https://huggingface.co/ai-sage/GigaAM-v3).

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ kairos-asr transcribe <wav_file>
6464

6565
## ⚙️ Системные требования
6666
- `ffmpeg` должен быть доступен в `PATH` (загрузка и ресемплинг аудио).
67-
- Доступ в интернет при первом запуске: скачивание весов с Hugging Face и модели Silero VAD через `torch.hub`. Для ускорения и избежания лимитов задайте `HF_TOKEN` (`huggingface-cli login` или экспорт переменной окружения).
67+
- Доступ в интернет при первом запуске: скачивание весов моделей. Для ускорения и избежания лимитов задайте `HF_TOKEN` (`huggingface-cli login` или экспорт переменной окружения).

docs/USAGE.md

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,11 @@ print(asr.transcribe("audio.wav").full_text)
2424
и оптимизированы для **ONNX**-инференса.
2525

2626
По умолчанию веса загружаются автоматически. При
27-
необходимости можно указать путь вручную
28-
или управлять загрузками через утилиту `ModelDownloader`:
27+
необходимости можно указать путь вручную:
2928
```python
3029
from kairos_asr import KairosASR
3130

32-
weights_dir_path = "<ваш путь до весов>"
33-
34-
encoder_path = f"{weights_dir_path}/kairos_asr_encoder.onnx"
35-
decoder_path = f"{weights_dir_path}/kairos_asr_decoder.onnx"
36-
joint_path = f"{weights_dir_path}/kairos_asr_joint.onnx"
37-
tokenizer_path = f"{weights_dir_path}/kairos_asr_tokenizer.model"
38-
39-
asr = KairosASR(
40-
encoder_path=encoder_path,
41-
decoder_path=decoder_path,
42-
tokenizer_path=tokenizer_path,
43-
joint_path=joint_path
44-
)
31+
asr = KairosASR(model_path="<ваш путь до весов>")
4532
```
4633

4734
Автозагрузка:
@@ -50,23 +37,21 @@ from kairos_asr import KairosASR
5037
asr = KairosASR()
5138
```
5239

53-
Явный контроль загрузок:
40+
Явный контроль загрузок через утилиту `ModelDownloader`:
5441
```python
5542
from kairos_asr.models.utils.model_downloader import ModelDownloader
5643

57-
downloader = ModelDownloader()
44+
downloader = ModelDownloader() # также можно указать model_path="<ваш путь до весов>"
5845

5946
# Скачать все модели
60-
paths = downloader.download_all_models()
61-
62-
# Получить путь до конкретной модели
63-
encoder_path = downloader.get_model_path("encoder")
47+
paths = downloader.download_all()
6448

6549
# Скачать конкретную модель
66-
encoder_path = downloader.download_model("encoder")
50+
encoder_path = downloader.download_file("encoder")
51+
52+
# Получить путь до конкретной модели
53+
encoder_path = downloader.check_local_file("encoder")
6754

68-
# Проверить наличие локально без загрузки
69-
has_tokenizer = downloader.check_file_exists_local("tokenizer")
7055
```
7156

7257
## Требования к аудио (`wav_file`)

kairos_asr/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
check_device,
66
extract_sentences_from_words,
77
setup_logging,
8-
get_logger,
98
)
109
from .models import ModelDownloader
1110

11+
setup_logging(logger_name="kairos_asr")
12+
1213
__all__ = [
1314
"KairosASR",
1415
"__version__",
1516
"check_device",
1617
"extract_sentences_from_words",
1718
"setup_logging",
18-
"get_logger",
1919
"dtypes",
2020
"audio_utils",
2121
"ModelDownloader",
22-
]
22+
]

kairos_asr/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.6.5"
1+
__version__ = "0.6.6"

kairos_asr/core/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .asr import KairosASR
2-
from .data_classes import dtypes
2+
from . import dtypes
33

44

55
__all__ = ["KairosASR", "dtypes"]

0 commit comments

Comments
 (0)