187 lecturas Nueva Historia

Mi viaje hacia abajo el agujero de conejo de Vibe

por Nilesh Raghuvanshi10m2025/04/22
Read on Terminal Reader

Demasiado Largo; Para Leer

Sumérgete en mi edificio de viaje 'Vaani' - Una aplicación de escritorio minimalista, privada y universal de habla a texto usando codificación de vibe.Es una mirada práctica a la experiencia de colaboración de IA: la velocidad, las luchas, las ideas y las lecciones aprendidas.
featured image - Mi viaje hacia abajo el agujero de conejo de Vibe
Nilesh Raghuvanshi HackerNoon profile picture
0-item
1-item
2-item

Building Vaani (वाणी) - A Minimal, Private, Universal Speech-to-Text Desktop Application


Hace unos días, estaba viendo religiosamente el último vídeo de Andrej Karpathy donde introdujo Vibe Coding.


He estado usando asistentes de código de IA durante un tiempo, pero todavía estoy altamente involucrado en el proceso de codificación. la IA está actuando principalmente como una completación automática inteligente, tomando las cosas tediosas de la caldera, escribiendo docstrings, o ocasionalmente explicando el código que escribí ayer y convenientemente olvidado. la codificación Vibe suena más como graduarse de la autocomplete a la co-creación real - un cambio de la IA como asistente a la IA como socio de codificación real.


Intrigado por este potencial cambio de paradigma, decidí experimentarlo de primera mano. En el mismo vídeo, Andrej compartió que usa la voz como entrada primaria aproximadamente el 50% del tiempo ya que es más intuitiva y eficiente. Sugirió algunas opciones para Mac que actúan como herramientas universales de voz a texto que funcionan en múltiples aplicaciones. Trabajo principalmente en Windows para interactuar con aplicaciones y Linux a través de la línea de comandos. Como no podía encontrar ninguna buena opción para Windows (excepto la integrada).Voice Accessque es muy lento), decidí construir uno para mí mismo.Tenía algunas otras ideas potenciales pero me fijé en esto como quería construir


    y
  • En un lenguaje de programación que conozco bien: Python.
  • y
  • algo con el que no estoy familiarizado conceptualmente: captura y procesamiento de audio, UI nativo
  • y
  • una herramienta que realmente usaría y no sólo un juguete
  • y
  • algo útil para la comunidad que puedo abrir
  • y
  • Aprender algo nuevo por el camino
  • y


Objetivo -Build a minimal, private, universal speech-to-text desktop application


    y
  • Minimal - hace una cosa realmente bien - discurso a texto
  • y
  • Privado - Nada deja mi máquina, todo fuera de línea
  • y
  • Universal - Debería funcionar con cualquier aplicación de Windows
  • y
  • Plataforma Cross - Bueno para tener
  • y


Lo llamoVañón (वाणी), que significa “habla” o “voz” enSanskrit. el

VañónSanskrit


GitHub

https://github.com/webstruck/vaani-speech-to-text


Instalación

pip install vaani-speech-to-text


Demo


Este artículo narra el viaje de la construcciónVaaniEs una exploración práctica de lo que realmente siente la codificación de vibe: la velocidad excitante, los obstáculos inesperados, los momentos de verdadera visión y las lecciones aprendidas al colaborar intensamente con una IA.Claude Sonnet 3.7, el mejor (de nuevo, basado en la vibe general) asistente de codificación disponible en ese momento.Artículo siguienteGoogle Gemini 2.5 Profue liberado y decidí usarlo como un revisor de código.


BTW, este artículo es en gran medida dictado usandoVaani😊


Vamos a vibe.

El establecimiento


AI DeveloperClaude Sonnet 3.7

AI Code ReviewerInicio » Gemini 2.5 Pro Preview 03-25


El desarrollador de IA y el revisor de código de IA siempre tenían el código completo como contexto para cada prompt. Inicié una nueva conversación una vez que se alcanzó un determinado objetivo, por ejemplo, un bug se fija o una característica se implementa y funciona con éxito. hice esto para gestionar la ventana de contexto y asegurar el mejor rendimiento de IA. No usé ninguna IDE de agencia (por ejemplo, Cursor, Windsurf, etc.) y en lugar de eso confié enTítulo DesktopyGoogle y el estudioTambién evité cualquier cambio de código manual con la intención de liberar el código de código abierto para la revisión de la comunidad.


The Initial Spark: From Zero to Scaffolding en segundos


Así que, ¿de dónde empezamos? Tradicionalmente, esto implica una planificación meticulosa. Por ejemplo, delinear componentes, diseñar interfaces, elegir bibliotecas y configurar la estructura del proyecto.


y

Quiero construir una aplicación ligera de voz a texto en Python para usuarios de Windows.La idea es ayudar a los usuarios de Windows a escribir cosas rápidamente usando voz en cualquier aplicación, por ejemplo, palabra, powerpoint, navegador, etc. La aplicación debe funcionar localmente sin Internet para la privacidad.

y

I want to build a lightweight speech to text app in Python for Windows users. The idea is to help Windows users write things quickly using voice in any application e.g. word, powerpoint, browser etc. The app should work locally without the internet for privacy. Should activate using hot key or hot word.


y a su reputación,Claude Sonnet 3.7Generó una estructura de aplicación completa casi instantáneamente, completa con:


    y
  • Integración con Tkinter
  • y
  • Detección global de llaves rápidas utilizando el teclado
  • y
  • Indicador de retroalimentación visual
  • y
  • Configuración de persistencia UI
  • y
  • Interpretación de texto con Vosk
  • y
  • Administrador de audio básico
  • y
  • Punto de entrada principal
  • y
  • Empaquetado con Pyinstaller
  • y


La fase inicial capturó perfectamente el encanto de la codificación de vibe: el paso de horas de diseño y codificación fundamental, pasando directamente de la idea a un esqueleto de aplicación tangible (aunque buggy).


Siguiente Riding the Waves: The Core Iteration Loop


Con los componentes básicos en su lugar, el verdadero desarrollo comenzó con el establecimiento de un ritmo distinto, el ciclo central de la codificación de vibe asistida por IA:


    y
  1. Feature Request / Bug Report: Describiría una característica deseada ("Añadamos detección de palabras calientes") o reportaría un problema ("Los resultados de la transcripción no aparecen!").
  2. y
  3. Generación de código de IA: La IA procesaría la solicitud y generaría fragmentos de código, a veces modificando funciones existentes, a veces añadiendo módulos completamente nuevos.
  4. y
  5. Integración y prueba: Introduciría el código de la IA en la aplicación y probaría manualmente la funcionalidad. ¿Funciona?
  6. y
  7. Si no (que era frecuente!), Volvería al paso 1, proporcionando detalles de error más específicos o describiendo el comportamiento no deseado.
  8. y


The Core Iteration Loop


This loop was incredibly fast, but also heavily ReaccionesNo estábamos siguiendo un gran diseño; estábamos navegando por la vista, solucionando sólo problemas.DespuésLos principales desafíos surgieron rápidamente:


    y
  • Callback Conundrums: Los intentos iniciales de conectar diferentes partes de la aplicación (como la entrada de audio al motor de transcripción) simplemente fallaron en comunicarse correctamente.
  • y
  • Complexidades de la competencia: La integración de tareas de fondo (como el procesamiento de audio continuo) con la interfaz de usuario llevó a problemas de concurrencia "clásicos" - colisiones o colisiones relacionadas con el acceso a recursos compartidos o la actualización de la interfaz de usuario desde el hilo equivocado.
  • y
  • Persistencia del estado de la interfaz: Obtener la ventana de configuración para guardar y cargar de manera fiable las preferencias del usuario resultó sorprendentemente difícil.Asegurarse de que los controles simples como las cajas de verificación, los deslizadores y las caídas se reflejaran correctamente y almacenaran su estado requirió un importante retroceso.
  • y
  • Continuous Speech Processing: When asked to build a continuous speech processing system, AI came up with an overwhelmingly sophisticated solution that included continuous capture, segment ordering, parallel processing, ordered insertion, context awareness, and so on. It worked in principle but was still buggy. Finally, a pushback and a little hint nudged it towards a simpler approach that worked reasonably well.
  • y


Esta fase destacó el poder bruto de la IA para la iteración, pero también el caos potencial del código de depuración generado por otra entidad, confiando en la IA para corregir sus propios errores basados en sus observaciones.


"Espera, ¿por qué estamos haciendo esto?" - Pivots y comprobaciones de realidad necesarias


MientrasClaudedemostró impresionantes capacidades de codificación, obteniendo la mayoría de las cosas bien al principio, no fue infalible.La de ClaudeLas sugerencias.Claudeparecía ansioso por sobre-ingenierizar las soluciones que lo hacen extremadamente complejo en un intento de hacerlo genérico. por ejemplo, al abordar la salida de texto fragmentada,Claudepropuso una clase de buffer de datos sofisticada. Funciona, pero se sintió demasiado complejo. Una vez que cuestioné la necesidad de esta complejidad, admitió y nos volvimos a una implementación directa mucho más simple detectando pausas naturales.


Another instance was when we implemented audio calibration and persisted (after Gemini rightly pointed out the efficiency issue) it in settings. Later, a practical thought emerged: "Won't this calibration be specific to the microphone used?". This real-world usage scenario revealed a bug missed during generation. ClaudePrimero se sugirió almacenar la configuración de calibraciónpor dispositivo, pero obligado con una solución más simple: simplemente recalibrado si el dispositivo de entrada cambia. Otra vez, considerando el contexto de uso práctico (la mayoría de los usuarios son poco propensos a cambiar los dispositivos de entrada con frecuencia), eligiendo persistir la calibración de audio para sólo 1 dispositivo hizo sentido.


y
Estos momentos subrayan que la codificación de vibe efectiva no es la aceptación pasiva; es un diálogo activo donde el desarrollador guía, cuestiona y a veces corrige la trayectoria de la IA.
y
Estos momentos subrayan que la codificación de vibe efectiva no es la aceptación pasiva; es un diálogo activo donde el desarrollador guía, cuestiona y a veces corrige la trayectoria de la IA.

Estos momentos subrayan que la codificación de vibe efectiva no es la aceptación pasiva; es un diálogo activo donde el desarrollador guía, cuestiona y a veces corrige la trayectoria de la IA.


Definir la "Vibe": Cómo Vaani encarnó este enfoque


Reflexionando sobre elVaaniEl viaje de desarrollo, mostró las características básicas a menudo asociadas con la codificación de vibe:


    y
  • Especificación mínima anticipada: Comenzó con un objetivo, no un plan detallado.
  • y
  • AI como implementador primario: La AI escribió la gran mayoría del código inicial y las características / correcciones posteriores.
  • y
  • Refinamientos impulsados por la intuición: Los cambios a menudo fueron impulsados por las pruebas subjetivas ("la calidad se siente pobre", "el elemento de interfaz de usuario debe ser movible") en lugar de los requisitos formales.
  • y
  • Diseño emergente: la arquitectura y el conjunto de características de la aplicación evolucionaron de forma orgánica y reactiva. Por ejemplo, simplificando la tubería de audio principal, y añadiendo controles de concurrencia más tarde o reemplazando Tkinter con PySide6 para la simplificación (threading) y un aspecto moderno.
  • y
  • Debugging Delegation: Mi papel en la reparación de los errores a menudo era informar de los síntomas con precisión para que la IA pudiera generar la cura.
  • y


Esto se alinea bien con la discusión actual que define la codificación de vibe por su velocidad, la dependencia del lenguaje natural y, a veces, un menor grado de control por parte de los desarrolladores.El espectroMientrasVaaniComenzando cerca del final de la "vibe pura", el proyecto naturalmente cambió hacia más estructura (requerir modularización y revisiones de código) a medida que maduraba y se acercaba al lanzamiento.


Más allá del Hype: Novel Insights from the Trenches


Trabajar tan estrechamente con la IA en un proyecto completo produjo una cierta visión que va más allá de la típica narración “la IA es rápida pero comete errores”.


    y
  1. The AI has an over-engineering tendency: Repeatedly, the AI's first solution was more complex than necessary (e.g. initial architecture, text buffering, configuration handling). It seems potentially biased towards comprehensive or generic solutions requiring the developer to actively filter for simplicity and context.
  2. y
  3. El desarrollador como un filtro y validador esencial: Esto no fue sólo codificación pasiva. Mi papel evolucionó en el de un validador crítico, verificador de realidad y filtro de complejidad. Cuestionando a la IA por qué esta arquitectura era tan importante como solicitar nuevas características.
  4. y
  5. El cambio inevitable hacia la estructura: la codificación de vibe puro sacó el proyecto de la tierra increíblemente rápido. Sin embargo, para hacer que Vaani fuera mantenible y listo para su lanzamiento (especialmente para código abierto) fue necesario un cambio consciente. Solicitar explícitamente la modularización, el análisis de calidad del código y el refactoring se convirtieron en cruciales en etapas posteriores.
  6. Aprendizaje implícito vs. Comprensión profunda: Aprendí mucho debugando el código de la IA. Sin embargo, debido a que la IA a menudo proporcionaba correcciones directamente, no siempre necesitaba alcanzar el nivel más profundo de comprensión de por qué ocurrían ciertos problemas complejos (como condiciones de carreras sutiles o peculiaridades del marco de la interfaz de usuario).
  7. y


La espada de doble borde: pesando los pros y los contras


Pros:


    y
  • Blazing Speed: El prototipo y la implementación inicial de características son impresionantes.
  • y
  • Resolver la complejidad: la IA puede generar código para tareas complejas (integrar bibliotecas, manejar concurrencias) rápidamente, bajando la barrera a la entrada.
  • y
  • Boilerplate Buster: la configuración tediosa y el código repetitivo se manejan automáticamente.
  • y
  • Aprendizaje forzado (via Debugging): Corregir errores de IA a menudo obliga a comprender el dominio del problema, fomentando indirectamente el aprendizaje.
  • y


Cons:


    y
  • Alto riesgo de errores sutiles: la generación rápida y el desgaste reactivo pueden perder fácilmente casos de punta, condiciones de carrera o defectos lógicos más profundos.
  • y
  • Potencial para la arquitectura pobre: Las opciones iniciales de diseño de la IA pueden ser suboptimales o demasiado complejas si no son evaluadas críticamente por el desarrollador.
  • y
  • Ciclos de Debugging Difíciles: Corregir el código que no escribiste, especialmente cuando la IA lucha con el problema subyacente (como el estado complejo o la concurrencia), puede ser frustrante y demorado.
  • Preocupaciones de mantenimiento: El código generado por la IA, cultivado de manera orgánica, puede convertirse en confuso y difícil de entender sin una refactorización y una estructuración deliberadas.
  • y
  • Potencial de erosión de habilidades: La dependencia excesiva podría obstaculizar el desarrollo del diseño fundamental, el desgaste, las habilidades arquitectónicas y, lo más importante, la intuición humana.
  • Requisitos no funcionales Negligencia: la seguridad, el rendimiento, la gestión de recursos y el manejo integral de errores pueden ser fácilmente ignorados en la prisa por la funcionalidad.
  • y


Taming the Vibe: Recomendaciones para una colaboración efectiva


Vibe codificación es sin duda una herramienta poderosa, pero requiere habilidad para manejar de manera efectiva. Si usted es un desarrollador experimentado y está considerando este enfoque, aquí están mis recomendaciones genéricas basadas en mi experiencia de la construcciónVaani. el


    y
  1. Valida, no solo acepta: Trata el código de la IA como un proyecto. Pregunta sus opciones arquitectónicas ("¿Por qué este patrón? ¿es apropiado aquí?").
  2. y
  3. Actúa como un filtro de complejidad: Si una solución de IA parece demasiado compleja o utiliza patrones obscuros sin una buena razón, presione hacia atrás.
  4. y
  5. Plan de Estructura: Reconoce que el prototipo inicial codificado con vibe probablemente necesitará refinamiento. Tiempo de presupuesto para refactoring – mejorar la modularidad, agregar documentación clara (comentarios, READMEs) y mejorar la calidad del código antes de considerar un proyecto estable o listo para su lanzamiento.
  6. y
  7. Enfoque en la comprensión: No solo copie el código de la IA. Utilice la IA como tutor. Cuando proporcione una corrección o una pieza compleja de código, pídale que explique el razonamiento detrás de ella.
  8. y
  9. Aprovechar las herramientas y prácticas establecidas: A medida que la IA acelera la iteración, el mantenimiento de la calidad del software se vuelve aún más crítico. Abrazar las pruebas automatizadas de ensayo temprano y las pruebas de integración proporcionan redes de seguridad esenciales contra las regresiones.
  10. y


Conclusión: Vibe Coding - Un socio poderoso, no un reemplazo


Mi edificio de viajeVañónconfirmó que el "codificación vibe" asistido por IA es más que un hype. cambia fundamentalmente el flujo de trabajo de desarrollo, ofreciendo una velocidad sin precedentes en la traducción de ideas en código funcional. Me permitió, un desarrollador único, construir una aplicación razonablemente compleja en una fracción del tiempo (~ 15 horas) que podría haber tomado tradicionalmente.

Vañón


Sin embargo, no es una varita mágica. Es una colaboración que requiere comunicación, pensamiento crítico y supervisión. La IA actúa como un asistente increíblemente rápido, conocedor, pero a veces excesivamente entusiasta. Puede generar lógica compleja en segundos, pero puede perder la solución más simple o ignorar las restricciones del mundo real o la practicabilidad. Puede corregir errores de inmediato, pero puede luchar con los matices.


El verdadero poder surge cuando el desarrollador se involucra activamente – guiando la IA, cuestionando sus supuestos, validando su rendimiento y aplicando los principios fundamentales de ingeniería de software. El código Vibe no reemplaza las habilidades del desarrollador; lo desplaza hacia la arquitectura, la validación, la prompting efectiva e integración crítica. Es una nueva forma emocionante, poderosa y a veces desafiante de construir, ofreciendo un vistazo a un futuro donde la creatividad humana e inteligencia artificial trabajan de la mano, guiados por un juicio de ingeniería sólido.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks