yandex-speechkit-skill

Скилл и скрипты для расшифровки аудио через Yandex SpeechKit: подготовка записи, загрузка в Object Storage и асинхронное распознавание v3

  • 1 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

Почему такой уровень

  • Скрипты отправляют ваши записи в Yandex Cloud и загружают файлы в Object Storage по статическим ключам
  • В `.env` лежат ключи SpeechKit и хранилища: утечка файла откроет доступ к облаку
Все причины и проверки
Российский стек

18studio/yandex-speechkit-skill

Установка

Работает в
Сервисы

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/yandex-speechkit-skill

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скрипты отправляют ваши записи в Yandex Cloud и загружают файлы в Object Storage по статическим ключам
  • В `.env` лежат ключи SpeechKit и хранилища: утечка файла откроет доступ к облаку

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл `yandex-speechkit` учит агента выбирать режим распознавания речи в Yandex SpeechKit: потоковый для живого звука, синхронный для коротких записей и асинхронный для длинных встреч и звонков. По умолчанию рекомендуется API v3 через gRPC и аутентификация сервисным аккаунтом. Справочные файлы описывают выбор режима, протокол STT v3 и типичные ошибки. Вместе со скиллом идут девять скриптов на Python. `inspect_audio.py` показывает кодек, частоту и длительность с рекомендацией по режиму, `prepare_audio.py` через ffmpeg переводит запись в WAV, LINEAR16, OGG Opus или MP3, `split_audio_by_size.py` режет большие файлы на части. `object_storage_upload.py` и `object_storage_presign.py` загружают файл в Yandex Object Storage и выдают закрытую ссылку на скачивание. Скрипт `transcribe_file_async.py` проходит весь путь: подготовка, загрузка, ссылка и асинхронное распознавание с опросом результата. Прерванный запуск можно продолжить с готового файла, уже загруженного объекта или по идентификатору операции. Итоговый транскрипт агент превращает в текст, субтитры, слова с метками времени или JSON.

Для кого. Аналитикам, редакторам и разработчикам, которым нужны расшифровки встреч, звонков и интервью на русском через Yandex Cloud, а не отдельный сервис транскрибации.

Подходит, если

  • Запись совещания на час надо превратить в текст с метками времени и разметкой по говорящим
  • Из звонков клиентов делают субтитры или структурированный JSON для дальнейшего анализа
  • Тяжелый файл с видео сначала конвертируют в 16 кГц моно, затем режут на части меньше 20 МиБ
  • Решение по проекту: потоковое распознавание для голосового ассистента или асинхронное для записей
  • SpeechKit отвечает ошибкой 403, и надо разобраться с правами сервисного аккаунта и каталогом

Не подходит, если

  • Нужна расшифровка без Yandex Cloud: скрипты требуют ключи SpeechKit и Object Storage
  • Распознавание идет на устройстве без интернета: SpeechKit работает как облачный сервис
  • Агент работает только с короткими голосовыми сообщениями: хватит одного синхронного запроса без всего конвейера
  • Нужна синтезация речи: скилл описывает распознавание, а не озвучку

Пример запроса к агенту

Расшифруй запись meeting.mp4 через SpeechKit в асинхронном режиме и сохрани текст с метками времени.

Ограничения

Нужны Python 3.11 и ffmpeg, а для подробного анализа еще ffprobe. Ключи SpeechKit задают `YANDEX_IAM_TOKEN` или запасной `YANDEX_API_KEY`. Для Object Storage требуются статические ключи доступа и имя корзины, это отдельные данные: ключ загрузки не дает права вызывать SpeechKit.

Если в окружении заданы настройки Object Storage, файлы идут только асинхронным путем. Синхронное API принимает короткие записи, а режим по частям режет файл на куски до заданного размера.

Локальные настройки лежат в файле `.env`, поэтому его нельзя коммитить. Лицензия MIT. Подробной инструкции по установке в Claude Code в README нет, скилл копируют в каталог скиллов агента вручную.

Как отключить. Удалите папку скилла из каталога скиллов агента и очистите файл `.env` с ключами. Созданные объекты в Object Storage и права сервисного аккаунта убирают в консоли Yandex Cloud.

Частые вопросы

Какой режим SpeechKit выбрать для записи встречи?

Асинхронный через API v3. Он принимает ссылку на файл в Object Storage и подходит для длинных записей и субтитров. Потоковый режим нужен для живого звука, синхронный для коротких записей.

Как запустить весь конвейер одной командой?

Выполните `python3 transcribe_file_async.py ./meeting.mp4 ./meeting_async_workdir`. Скрипт подготовит аудио, загрузит его в Object Storage, создаст закрытую ссылку и дождется результата распознавания.

Что делать, если загрузка или запрос прервались?

Продолжите с опциями: `--prepared-file` и `--skip-prepare` берут готовое аудио, `--skip-upload` с `--source-url` берет уже загруженный объект, а `--operation-id` возобновляет опрос отправленной операции.

Какие ключи нужны скриптам?

Для SpeechKit `YANDEX_IAM_TOKEN`, запасной вариант `YANDEX_API_KEY`. Для Object Storage `YANDEX_STORAGE_ACCESS_KEY`, `YANDEX_STORAGE_SECRET_KEY` и `YANDEX_STORAGE_BUCKET`. Эти группы данных не взаимозаменяемы.

В какие форматы скрипт готовит аудио?

`prepare_audio.py` поддерживает пресеты wav, linear16, ogg-opus и mp3. Для SpeechKit обычно переводят запись в моно с частотой 16 кГц.

Обсуждение

Вопросов и отзывов пока нет.

Российский стек

Консольная утилита на Node.js, которая переводит длинные аудиозаписи разговоров в текст через асинхронное распознавание Yandex SpeechKit

CLIРасширенный доступ6Звезды репозитория
Российский стек

Подборка скиллов российского стека: GigaChat, YandexGPT, Яндекс 360, Яндекс Облако, Метрика и заказы маркетплейсов

СкиллРасширенный доступ81Звезды репозитория
Российский стек

Четыре однофайловых MCP-сервера для YandexGPT, распознавания текста, синтеза речи SpeechKit и поиска Яндекса

MCP-серверРасширенный доступ
Российский стек

Набор MCP-серверов и скиллов для ассистента OpenClaw: YandexGPT, распознавание текста, синтез речи и генерация изображений

MCP-серверРасширенный доступ1Звезды репозитория

Скилл справочника Yandex Cloud CLI

Yandex Cloud CLI Skill for Claude Code

Российский стек

Скилл-справочник по командам Yandex Cloud CLI (yc): виртуалки, сети, хранилище, базы, Kubernetes, IAM, DNS и мультирегион Россия и Казахстан

СкиллРасширенный доступ4Звезды репозитория

Коротко о README

README перечисляет файлы и требования, затем дает примеры команд: проверка файла, конвертация, нарезка, синхронное и асинхронное распознавание, загрузка и закрытая ссылка. В конце идут заметки о выборе пути и о том, что анализ транскрипта сохраняют отдельным файлом.

Бейдж для README

Исходный SKILL.md

---
name: yandex-speechkit
description: Work with Yandex SpeechKit speech-to-text, especially STT v3 over gRPC. Use when Codex needs to choose between streaming, synchronous, or asynchronous recognition; prepare audio for SpeechKit; generate or write clients from the cloudapi proto files; configure STT v3 request options; troubleshoot authentication, folder ID, format, or session issues; or post-process SpeechKit transcripts into plain text, timestamps, subtitles, or structured output.
---

# Yandex SpeechKit

## Overview

Use this skill to implement or troubleshoot speech recognition with Yandex SpeechKit. Default to STT v3 for new gRPC integrations and choose the recognition mode based on whether audio is live, short and pre-recorded, or long and pre-recorded.

## Workflow Decision

Choose the recognition mode before writing code:

- Use streaming recognition for live microphone audio, assistants, bots, and real-time captions.
- Use synchronous recognition for short pre-recorded voice messages when a single request-response flow is enough.
- Use asynchronous recognition for long recordings, meetings, calls, subtitles, and other offline transcription jobs.

If the task starts from a recorded file, do not force it through streaming unless the user explicitly needs real-time emulation.

Read [references/mode-selection.md](references/mode-selection.md) when the mode is not obvious.

## Default Choices

- Prefer API v3 for new projects.
- Prefer gRPC clients generated from `yandex/cloud/ai/stt/v3/stt_service.proto`.
- Prefer service-account authentication when possible.
- For SpeechKit scripts, prefer `YANDEX_IAM_TOKEN` / `--iam-token` over `YANDEX_API_KEY` / `--api-key`; API keys are fallback credentials.
- Treat Object Storage credentials and SpeechKit credentials as separate. S3-compatible Object Storage upload uses static access/secret keys, while SpeechKit recognition uses IAM token or API key and folder context.
- Prefer explicit audio preparation over guessing server-side behavior.
- Prefer handling `partial`, `final`, and `final_refinement` separately in streaming clients.
- Prefer asynchronous recognition for long files and batch workflows.

## Streaming STT v3

When implementing streaming recognition:

1. Generate or use a client for `Recognizer.RecognizeStreaming`.
2. Send `session_options` as the first client message.
3. Stream audio chunks after the session is configured.
4. Keep chunk cadence close to real time.
5. Stop or reconnect if the session hits timing or payload limits.
6. Accumulate `partial` results for UI feedback and `final` or `final_refinement` for committed transcript text.

Use `silence_chunk` when the client already knows the silence duration and wants to avoid transmitting literal silence bytes. Use explicit `eou` controls only when the application owns utterance boundary detection.

Read [references/stt-v3-protocol.md](references/stt-v3-protocol.md) before implementing request and response handling.

Сообщить о проблеме

Foxx AIyandex-speechkit-skill
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.