Volver a proyectos
Integración de IA · Herramientas de desarrolloIntegración funcional

OpenCode Voice Input

De una idea en voz alta a un prompt listo.

Un flujo de voz a prompt que conecta la captura del micrófono, la detección de silencio y la transcripción con Whisper directamente a OpenCode.

Mi contribución

Diseño e implementación

Tecnologías

TypeScript / Groq Whisper / ffmpeg / Node.js

Ilustración del flujo · TypeScript + Whisper
X

El resultado

Convertí grabaciones del micrófono en prompts dentro de OpenCode.

Y

La evidencia

Comando /voz documentado y prueba de integración con un audio de referencia contra Groq.

Z

El enfoque

Separé captura de audio, transcripción e integración del comando en TypeScript.

Dentro del proyecto

Explorar el sistema

Abre una etapa para conocer cómo funciona y por qué se diseñó así.

01Capturaffmpeg · WAV

ffmpeg graba el micrófono en macOS como audio PCM mono a 16 kHz.

Decisión de ingeniería

Usar una herramienta especializada en audio y separar la grabación de la API de transcripción.

Ver implementación
02Detectar silencio−35 dB · 3 s

Una ventana de tres segundos de silencio detiene la grabación después de un margen inicial de cuatro segundos.

Decisión de ingeniería

Definir el fin de la grabación explícitamente. El índice del micrófono y los umbrales siguen siendo restricciones de configuración.

Ver implementación
03TranscribirGroq · Whisper

La función reutilizable transcribe(audioPath) envía el WAV a whisper-large-v3-turbo y devuelve el texto.

Decisión de ingeniería

Mantener la API independiente de OpenCode, propagar errores HTTP y cargar la clave desde el entorno.

Ver implementación
04Entregar promptstdout → OpenCode

El comando /voz entrega la transcripción a OpenCode. Los mensajes de progreso van a stderr para no contaminar el prompt.

Decisión de ingeniería

Usar una interfaz de comando pequeña con un contrato de salida claro, sin acoplar la transcripción a la interfaz del editor.

Ver implementación

Recorrido de implementación · no es una demo de inferencia

El problema

OpenCode recibe instrucciones de texto. Quería dictar una instrucción y entregar su transcripción al mismo flujo, sin trasladar texto manualmente entre una grabadora, una herramienta de transcripción y el editor.

El reto de ingeniería estaba en la integración: decidir cuándo terminar la grabación, gestionar una solicitud remota de transcripción y garantizar que el comando devolviera únicamente el prompt.

Límites pequeños. Responsabilidades claras.

Separar la transcripción

groq-stt.ts expone transcribe(audioPath). Recibe un archivo de audio y devuelve texto; no conoce OpenCode. Esto también permite probar la transcripción con una grabación guardada.

Usar la terminal como contrato

voz.ts coordina grabación y transcripción. Los mensajes de progreso van a stderr; el texto transcrito va a stdout. El comando /voz consume esa salida sin tener que filtrar mensajes de registro.

Definir las condiciones de grabación

ffmpeg captura audio mono a 16 kHz. La detección de silencio utiliza un umbral de −35 dB y una ventana de tres segundos, con un margen inicial de cuatro segundos. Son decisiones de configuración, no mediciones de latencia ni afirmaciones de calidad.

Qué se puede verificar

El repositorio público contiene el orquestador de grabación, el adaptador de transcripción, el instalador del comando y la documentación. Su prueba de integración envía el audio versionado voz.wav a Groq y comprueba la transcripción en español.

La prueba requiere red y una clave de API. Verifica un audio contra el servicio; no demuestra precisión para todos los hablantes, acentos o entornos ruidosos. Aquí no se atribuye una mejora de velocidad ni un benchmark de precisión.

Límites y próximos pasos

La grabación actual usa avfoundation en macOS y un índice de micrófono configurable. La transcripción depende de un servicio externo, sus límites de uso y la conexión. El audio se envía a Groq; no se procesa completamente en el dispositivo.

Las siguientes mejoras serían ampliar los audios de prueba, limitar el tiempo de las solicitudes, limpiar archivos ante fallos y hacer portable el adaptador de grabación. El diagrama interactivo del portfolio explica la implementación: no graba audio ni llama al modelo.

Construir / Verificar / Aprender

Evidencia, más que adjetivos.

Código e instalación

Grabación, transcripción e instalación disponibles en el repositorio público.

GitHub

Prueba de integración

La prueba documentada transcribe un audio versionado. Requiere una clave de Groq y acceso a la red.

GitHub
Siguiente caso

Detector de Rostros Sintéticos