# Azure Speech To Text > Transcribe audio a texto con Azure AI Speech (API REST Fast Transcription). Proveedor STT en la nube opcional, preferido cuando AZURE_SPEECH_KEY está configurada. Fuente: https://skillsagentes.com/skills/calesthio/openmontage/azure-speech-to-text Markdown: https://skillsagentes.com/skills/calesthio/openmontage/azure-speech-to-text.md Repositorio: https://github.com/calesthio/OpenMontage Autor: calesthio Licencia: MIT Actualizado: el mes pasado Coste de contexto: 83 tok instalada, 1.3k tok al activarse, 1.3k tok con todos los archivos del bundle Bundle: 1 archivo, 5 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add calesthio/OpenMontage --skill azure-speech-to-text --agent claude-code # Cursor npx -y skills add calesthio/OpenMontage --skill azure-speech-to-text --agent cursor # Codex npx -y skills add calesthio/OpenMontage --skill azure-speech-to-text --agent codex # Gemini CLI npx -y skills add calesthio/OpenMontage --skill azure-speech-to-text --agent gemini # Windsurf npx -y skills add calesthio/OpenMontage --skill azure-speech-to-text --agent windsurf # Cline npx -y skills add calesthio/OpenMontage --skill azure-speech-to-text --agent cline ``` ## Qué hace - Transcribe archivos de audio locales con la API REST Fast Transcription de Azure AI Speech - Usa Fast Transcription en vez de Batch o el SDK: no hace falta Blob storage, ni URLs SAS, ni paquete nativo — solo `requests` y dos variables de entorno - Devuelve la respuesta mapeada al esquema del `transcriber` de OpenMontage - Es la ruta preferida cuando `AZURE_SPEECH_KEY` está configurada; si no, el `transcriber` local con faster-whisper es la ruta offline por defecto ## Cuándo usarla - Convertir audio o vídeo a texto - Generar subtítulos - Procesar contenido hablado dentro de OpenMontage ## Cuándo no - No hay clave de Azure configurada: la ruta por defecto es el faster-whisper local ## Qué la activa - "Transcribe este audio a texto" - "Genera subtítulos para este vídeo" - "Pásame a texto lo que se dice en este archivo" ## Antes de instalar - Necesita acceso a internet y un recurso de Azure AI Speech con `AZURE_SPEECH_KEY` y `AZURE_SPEECH_REGION`. - makes network requests ## Archivos - SKILL.md — 5 KB ## SKILL.md Reproducido tal cual desde calesthio/OpenMontage bajo MIT. Esta sección es el documento original y está en inglés. # Azure AI Speech — Speech-to-Text Transcribe audio to text with **Azure Fast Transcription** — synchronous, word-level timestamps, speaker diarization, and multi-language identification. In OpenMontage this is exposed through the `azure_stt` tool (`capability=analysis`, `provider=azure`). It is an **optional cloud STT provider** — when `AZURE_SPEECH_KEY` is configured, prefer it for cloud transcription. The local `transcriber` tool (faster-whisper) remains the **default offline path** and the fallback when Azure is unavailable. > Docs: [Fast Transcription](https://learn.microsoft.com/azure/ai-services/speech-service/fast-transcription-create) · [Speech service overview](https://learn.microsoft.com/azure/ai-services/speech-service/spx-overview) ## Why Fast Transcription (not Batch) Azure exposes three STT surfaces. OpenMontage uses **Fast Transcription** because the pipeline transcribes **local audio files**: | Surface | Input | Latency | Needs | |---------|-------|---------|-------| | **Fast Transcription** (used here) | local file, multipart POST | synchronous, sub-real-time | key + region | | Batch Transcription | audio at a URL (Blob + SAS) | async job + polling | Blob storage plumbing | | Speech SDK (`spx`) | mic / stream / file | streaming | native `azure-cognitiveservices-speech` package | Fast Transcription needs no Blob storage, no SAS URLs, and no native SDK — just `requests` and the two env vars. ## Setup Create a **Speech** resource in the [Azure portal](https://portal.azure.com); copy the key and region from its **Keys and Endpoint** page. ```bash export AZURE_SPEECH_KEY=your_speech_resource_key export AZURE_SPEECH_REGION=eastus # your resource's region # export AZURE_SPEECH_ENDPOINT=https://... # optional: overrides region ``` `azure_stt` reports `AVAILABLE` once `AZURE_SPEECH_KEY` plus either `AZURE_SPEECH_REGION` or `AZURE_SPEECH_ENDPOINT` are set. ## Using it in a pipeline Prefer `azure_stt` over `transcriber` unless the run must be offline. Its output matches the `transcriber` schema exactly, so it is a drop-in for `subtitle_gen` and any stage that consumes a transcript. ```python from tools.tool_registry import registry registry.discover() stt = registry._tools["azure_stt"] result = stt.execute({ "input_path": "projects/my-video/assets/audio/narration.mp3", # "language": "en", # ISO 639-1 or BCP-47 ("en-US"); omit for auto-ID # "diarize": True, # speaker labels, no HuggingFace token needed # "max_speakers": 4, "output_dir": "projects/my-video/artifacts", }) if result.success: segs = result.data["segments"] # [{id,start,end,text,words:[...]}] words = result.data["word_timestamps"] # flat [{word,start,end,probability}] ``` If `azure_stt` is unavailable (no key) or errors, fall back to `transcriber` (local whisper) — its `execute` signature and output are identical. ## Parameters that matter - **`language`** — pass an ISO code (`"en"`) or a full locale (`"en-US"`). Pin it when you know the language; it is faster and more accurate than auto-ID. - **`candidate_locales`** — when `language` is omitted, Azure runs language identification across this shortlist. Narrow it to the languages you actually expect; a huge list slows detection and invites misclassification. - **`diarize` / `max_speakers`** — enable for multi-speaker audio (interviews, podcasts). Set `max_speakers` to the real upper bound. - **`profanity_filter`** — `None` | `Masked` (default) | `Removed` | `Tags`. ## Response shape (mapped to the transcriber schema) The raw Azure response (`phrases[]` with `offsetMilliseconds` / `words[]`) is converted to seconds and the OpenMontage transcript schema: ```json { "segments": [ {"id": 0, "start": 0.0, "end": 2.4, "text": "Hello world", "speaker": 1, "words": [{"word": "Hello", "start": 0.0, "end": 0.5, "probability": 0.98}]} ], "word_timestamps": [{"word": "Hello", "start": 0.0, "end": 0.5, "probability": 0.98}], "language": "en-US", "duration_seconds": 2.4, "provider": "azure" } ``` Note: Fast Transcription has no *per-word* confidence, so each word carries the **phrase** confidence in `probability`. ## Limits & tips - Single file up to ~2 hours / a few hundred MB per request. For longer or bulk jobs, use Azure Batch Transcription instead. - Send clean audio (16 kHz+ mono is plenty). Transcode video to audio first if you only need speech — smaller upload, same result. - Verify timing: word timestamps drive subtitle cues in `subtitle_gen`. Spot-check the first and last cues against the source audio. ## Dónde encaja - Categoría: [Datos y analítica](https://skillsagentes.com/categorias/datos-analitica.md) — Consulta, limpia y visualiza datos sin salir del agente. - Creador: [calesthio](https://skillsagentes.com/creators/calesthio.md) — 0 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Seedance 2 5](https://skillsagentes.com/skills/calesthio/openmontage/seedance-2-5.md): Genera vídeo cinematográfico de 4-30 s con ByteDance Seedance 2.5 por fal.ai, Volcengine Ark, Runway o ComfyUI. Cubre el contrato de prompt 2.5, cortes duros, locks de continuidad y voz. - [Comfyui](https://skillsagentes.com/skills/calesthio/openmontage/comfyui.md): Úsalo al trabajar con workflows de ComfyUI en OpenMontage: comfyui_image/video/music, workflows propios, selección de output_node, modelos que faltan, LoRAs, poca VRAM e importación de workflows de la comunidad. - [Fish Audio Tts](https://skillsagentes.com/skills/calesthio/openmontage/fish-audio-tts.md): Genera narración expresiva y multilingüe con fish.audio (modelos S1 / S2) y reutiliza voces clonadas mediante reference_id. - [Minimax H3](https://skillsagentes.com/skills/calesthio/openmontage/minimax-h3.md): Genera vídeo con MiniMax H3 (Hailuo 3.0) por la API oficial v2, fal.ai, Runway, nodos partner de ComfyUI o pesos abiertos locales. Clips de 4-15s a 2K con animación de primer/último fotograma. - [Gemini Omni](https://skillsagentes.com/skills/calesthio/openmontage/gemini-omni.md): Genera y edita conversacionalmente vídeos cortos con Google Gemini Omni Flash: itera con ediciones en lenguaje natural, clips de 3-10s a 720p con audio y texto en pantalla, e imágenes de referencia por etiquetas. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)