File size: 5,140 Bytes
c92cda6
 
e275025
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3cda35c
c92cda6
3cda35c
 
c92cda6
3cda35c
c92cda6
 
3cda35c
 
c92cda6
3cda35c
 
c92cda6
 
3cda35c
 
 
 
c92cda6
3cda35c
 
 
 
c92cda6
3cda35c
 
c92cda6
3cda35c
 
 
 
 
 
 
 
 
 
 
 
c92cda6
 
3cda35c
c92cda6
3cda35c
 
 
 
 
c92cda6
 
3cda35c
 
 
 
 
 
e275025
3cda35c
 
 
 
 
 
 
 
 
 
 
 
 
 
c92cda6
3cda35c
 
 
c92cda6
 
 
3cda35c
 
 
 
e275025
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Trans for Doctors - Установка и использование

## Основные возможности

- 🎤 **STT (Speech-to-Text)** - транскрибация аудио с помощью Whisper
- 📚 **Knowledge Base** - база медицинских терминов
- 🤖 **LLM Коррекция** - исправление ошибок через OpenRouter API
  - Поддержка Google Gemini (рекомендуется)
  - Поддержка OpenAI GPT-4o
  - Поддержка Anthropic Claude
  - Множество других моделей через OpenRouter
- 📄 **Report Generation** - генерация DOCX отчетов

## CLI (uv) — end-to-end пайплайн

После `uv sync` доступен CLI-скрипт `transmed` для запуска ступенчатой архитектуры STT → KB → LLM → (отчет):

```bash
# Установка зависимостей
uv sync
uv pip install .[llm]  # для LLM-коррекции (OpenRouter)

# Запуск пайплайна
uv run transmed \
  --audio test_sound_ru.wav \
  --model . \
  --terms medical_terms.txt \
  --llm \
  --save-original --save-corrected --generate-report
```

Параметры:
- `--audio`: путь к .wav
- `--model`: папка с локальной Whisper-моделью (в корне проекта)
- `--terms`: файл терминов (Knowledge Base)
- `--llm` / `--no-llm`: включить/выключить коррекцию через LLM
- `--openrouter-key`: ключ OpenRouter (по умолчанию берет `OPENROUTER_API_KEY` из окружения)
- `--generate-report`: сформировать DOCX отчет
- `--results-dir`, `--logs-dir`: каталоги для выходных данных

💡 **OpenRouter:** Доступ к Google Gemini, GPT, Claude и другим моделям! См. [corrector/OPENROUTER.md](corrector/OPENROUTER.md)

## Быстрый старт (UV)

### Предварительные требования
- Python 3.13+ (torch GPU колеса требуют совместимую версию)
- Git
- Установленный менеджер uv

```bash
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy BypassUser -c "irm https://astral.sh/uv/install.ps1 | iex"
```

### Установка
```bash
git clone <ваш-репозиторий>
cd Trans_for_doctors

# uv сам создаст .venv и установит зависимости из pyproject.toml
uv sync
source .venv/bin/activate  # Windows: .venv\Scripts\activate
```

### Подготовка CUDA (опционально)
uv sync ставит базовый torch. Для GPU поставьте колесо под свою версию CUDA 13.0:
```bash
# CUDA 13.0 (cu130)
uv pip install --upgrade \
  --index-url https://download.pytorch.org/whl/cu130 \
  torch torchvision torchaudio
```
Проверка GPU:
```bash
uv run python - <<'PY'
import torch
print(torch.cuda.is_available())
print(torch.cuda.device_name(0) if torch.cuda.is_available() else "cpu")
PY
```

### Запуск
```bash
uv run python run_demo.py \
  --device auto \
  --dtype float32 \
  --medical-prompt medical_terms.txt \
  --audio test_sound_ru.wav
```

- --device auto выберет CUDA если доступно, иначе CPU.
- Для GPU: --device cuda --dtype float32 
- Для CPU: --device cpu --dtype float32.

## Структура проекта
- run_demo.py — основной скрипт
- app/main.py — CLI для полного пайплайна (зарегистрирован как `transmed`)
- pyproject.toml — зависимости для uv
- requirements.txt — совместимость для pip
- Конфиги модели (config.json, generation_config.json, tokenizer_config.json и т.д.)
- medical_terms.txt — медицинская терминология
- Логи и результаты — папки logs/ и results/

## CLI параметры
- --audio — путь к аудиофайлу (по умолчанию test_sound_ru.wav)
- --medical-prompt — путь к файлу терминов
- --language — код языка (по умолчанию ru)
- --device — auto | cuda | cpu
- --dtype — auto | float32 | float16 | bfloat16

## Альтернатива: pip без uv
```bash
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python run_demo.py
```

## Решение проблем
- Модель не скачивается: проверьте сеть и выполните huggingface-cli login.
- CUDA OOM: запустите на CPU (--device cpu) или используйте float16 на меньшей карте.
- Нет прав записи: убедитесь, что у вас есть права на каталог (chmod -R 755 ./).

## Windows .exe сборка (uv + PyInstaller)
Инструкции по сборке единичного `.exe` лежат в [packaging/windows/README.md](packaging/windows/README.md).