---
name: audio-transcriber
description: "Транскрибация аудио и видео в чистый текст с разделением спикеров и очисткой слов-паразитов. Используй этот скилл когда пользователь хочет: расшифровать интервью, встречу, подкаст, голосовое сообщение или любой аудио/видео файл (.mp3, .wav, .mp4, .webm, .m4a, .ogg, .flac). Всегда используй этот скилл для любых задач транскрибации, даже если пользователь просто говорит 'расшифруй файл' или 'переведи аудио в текст'."
---

# Audio Transcriber

Двухэтапный пайплайн: **Whisper** (OpenAI) для распознавания речи → **Claude** для очистки и структурирования.

## Зависимости

```bash
pip install openai anthropic
# Для файлов >24 МБ (автоматическая разбивка):
pip install pydub  # + ffmpeg
```

Нужны переменные окружения: `OPENAI_API_KEY` и `ANTHROPIC_API_KEY`.

## Использование

```bash
python3 /tmp/audio-transcriber/scripts/transcribe.py <файл> [опции]
```

### Опции

| Флаг | По умолчанию | Описание |
|------|-------------|----------|
| `--lang` | `ru` | Язык аудио (ru, en, de, fr…) |
| `--mode` | `clean` | Формат вывода (см. ниже) |
| `--out` | `<имя>.md` | Путь для сохранения результата |
| `--no-postprocess` | — | Пропустить пост-обработку через Claude |

### Режимы вывода (`--mode`)

- **`clean`** — очищенный от слов-паразитов связный текст
- **`dialog`** — разбивка по спикерам: `Спикер 1: ...`, `Спикер 2: ...` (Claude анализирует контекст)
- **`timestamps`** — текст с временны́ми метками `[ММ:СС]`

### Примеры

```bash
# Простая расшифровка на русском
python3 transcribe.py meeting.mp3

# Встреча с разбивкой по спикерам
python3 transcribe.py interview.wav --mode dialog

# Подкаст с временны́ми метками, английский
python3 transcribe.py podcast.mp4 --lang en --mode timestamps --out podcast_transcript.md

# Только Whisper, без Claude (быстро, но грязно)
python3 transcribe.py quick_note.mp3 --no-postprocess
```

## Как работает диаризация

Whisper API не умеет физически разделять спикеров. Поэтому скилл использует двухэтапный подход:
1. Whisper транскрибирует весь текст
2. Claude анализирует контекст (смена темы, характер реплик, если упомянуты имена) и расставляет спикеров

Это работает хорошо для структурированных диалогов (интервью, встречи). Для хаотичных разговоров с перебиваниями — результат приблизительный, рекомендуй пользователю проверить.

## Большие файлы (>24 МБ)

Скрипт автоматически разбивает файл на части через `pydub` и обрабатывает каждую отдельно. Требует установки `pydub` и `ffmpeg`. Если их нет — скрипт сообщит об этом явно.

## Поддерживаемые форматы

`.mp3`, `.wav`, `.mp4`, `.webm`, `.m4a`, `.ogg`, `.flac`

## Результат

Расшифровка сохраняется в `.md` файл (по умолчанию рядом с исходником) и выводится в консоль (первые 1000 символов).

## Инструкции для Claude

1. Скопируй скрипт в рабочую директорию если нужно: `cp /tmp/audio-transcriber/scripts/transcribe.py /home/claude/`
2. Убедись что файл пользователя доступен в `/mnt/user-data/uploads/`
3. Запусти скрипт с нужными параметрами
4. Сохрани `.md` в `/mnt/user-data/outputs/` и покажи через `present_files`
5. Если пользователь не указал режим — спроси: нужен просто чистый текст, диалог по спикерам или текст с временны́ми метками?
