yandex-speechkit-skill

A skill and scripts for transcribing audio through Yandex SpeechKit: audio preparation, Object Storage upload and asynchronous v3 recognition

  • 1 ★ on the repository
  • Last commit
Skill

Extended access

Why this level

  • The scripts send your recordings to Yandex Cloud and upload files to Object Storage with static keys
  • `.env` holds SpeechKit and storage keys: a leaked file opens access to the cloud
All reasons and checks
Russian stack

18studio/yandex-speechkit-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/yandex-speechkit-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The scripts send your recordings to Yandex Cloud and upload files to Object Storage with static keys
  • `.env` holds SpeechKit and storage keys: a leaked file opens access to the cloud

This is third-party code. Review the repository files before installing.

What it does

The `yandex-speechkit` skill teaches an agent to choose a speech recognition mode in Yandex SpeechKit: streaming for live audio, synchronous for short recordings and asynchronous for long meetings and calls. By default it recommends API v3 over gRPC and service account authentication. Reference files cover mode selection, the STT v3 protocol and common errors. Nine Python scripts ship with the skill. `inspect_audio.py` shows codec, sample rate and duration with a mode recommendation, `prepare_audio.py` converts a recording to WAV, LINEAR16, OGG Opus or MP3 through ffmpeg, and `split_audio_by_size.py` cuts large files into parts. `object_storage_upload.py` and `object_storage_presign.py` upload a file to Yandex Object Storage and issue a private download link. The `transcribe_file_async.py` script covers the whole path: preparation, upload, link and asynchronous recognition with result polling. An interrupted run resumes from a prepared file, an already uploaded object or an operation id. The agent turns the final transcript into text, subtitles, timestamped words or JSON.

Who it is for. Analysts, editors and developers who need Russian transcripts of meetings, calls and interviews through Yandex Cloud rather than a separate transcription service.

Good fit when

  • An hour-long meeting recording must become text with timestamps and speaker labels
  • Client calls are turned into subtitles or structured JSON for later analysis
  • A heavy video file is first converted to 16 kHz mono and then cut into parts under 20 MiB
  • A project decision: streaming recognition for a voice assistant or asynchronous for recordings
  • SpeechKit answers with a 403 error and the service account rights and folder must be sorted out

Not a fit when

  • You need transcription without Yandex Cloud: the scripts require SpeechKit and Object Storage keys
  • Recognition runs on a device without internet: SpeechKit is a cloud service
  • The agent handles only short voice messages: one synchronous request is enough without the whole pipeline
  • You need speech synthesis: the skill covers recognition, not voice generation

Example request

Transcribe the recording meeting.mp4 through SpeechKit in asynchronous mode and save the text with timestamps.

Limitations

Python 3.11 and ffmpeg are required, plus ffprobe for detailed analysis. SpeechKit keys are `YANDEX_IAM_TOKEN` or the fallback `YANDEX_API_KEY`. Object Storage needs static access keys and a bucket name; these are separate credentials: an upload key does not grant the right to call SpeechKit.

When Object Storage settings are present in the environment, files go only through the asynchronous path. The synchronous API accepts short recordings, and the in-parts mode cuts a file into chunks up to a set size.

Local settings live in the `.env` file, so it must not be committed. The license is MIT; the README gives no detailed Claude Code install guide, so the skill is copied into the agent's skills directory by hand.

How to disable. Delete the skill folder from the agent's skills directory and clear the `.env` file with keys. Remove created Object Storage objects and service account rights in the Yandex Cloud console.

FAQ

Which SpeechKit mode should I use for a meeting recording?

Asynchronous through API v3. It takes a link to a file in Object Storage and suits long recordings and subtitles. Streaming is for live audio and synchronous for short recordings.

How do I run the whole pipeline with one command?

Run `python3 transcribe_file_async.py ./meeting.mp4 ./meeting_async_workdir`. The script prepares the audio, uploads it to Object Storage, creates a private link and waits for the recognition result.

What if the upload or request is interrupted?

Resume with options: `--prepared-file` and `--skip-prepare` reuse prepared audio, `--skip-upload` with `--source-url` reuses an uploaded object, and `--operation-id` resumes polling a submitted operation.

Which keys do the scripts need?

`YANDEX_IAM_TOKEN` for SpeechKit, with `YANDEX_API_KEY` as a fallback. For Object Storage `YANDEX_STORAGE_ACCESS_KEY`, `YANDEX_STORAGE_SECRET_KEY` and `YANDEX_STORAGE_BUCKET`. These credential groups are not interchangeable.

Which formats does the script prepare audio into?

`prepare_audio.py` supports the wav, linear16, ogg-opus and mp3 presets. For SpeechKit a recording is usually converted to mono at 16 kHz.

Discussion

No questions or reviews yet.

Russian stack

A Node.js command-line tool that turns long conversation recordings into text through Yandex SpeechKit asynchronous recognition

CLIExtended access6Repository stars
Russian stack

A skill collection for the Russian stack: GigaChat, YandexGPT, Yandex 360, Yandex Cloud, Metrika and marketplace orders

SkillExtended access81Repository stars
Russian stack

Four single-file MCP servers for YandexGPT, text recognition, SpeechKit speech synthesis and Yandex search

MCP serverExtended access
Russian stack

A set of MCP servers and skills for the OpenClaw assistant: YandexGPT, OCR, speech synthesis and image generation

MCP serverExtended access1Repository stars

Yandex Cloud CLI reference skill

Yandex Cloud CLI Skill for Claude Code

Russian stack

A reference skill for the Yandex Cloud CLI (yc): VMs, networking, storage, databases, Kubernetes, IAM, DNS and Russia/Kazakhstan multi-region

SkillExtended access4Repository stars

README in short

The README lists files and requirements, then gives command examples: file inspection, conversion, splitting, synchronous and asynchronous recognition, upload and a private link. It ends with notes on choosing the path and on saving transcript analysis in a separate file.

README badge

Original 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.

Report a problem

Foxx AIyandex-speechkit-skill
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.