187 leituras Novo histórico

My Journey Down the Rabbit Hole of Vibe (em inglês)

por Nilesh Raghuvanshi10m2025/04/22
Read on Terminal Reader

Muito longo; Para ler

Dive into my journey building 'Vaani'- A minimal, private, universal Speech-to-Text desktop app using vibe coding. It's a practical look at the AI collaboration experience: the speed, the struggles, the insights, and the lessons learned.
featured image - My Journey Down the Rabbit Hole of Vibe (em inglês)
Nilesh Raghuvanshi HackerNoon profile picture
0-item
1-item
2-item

Building Vaani (वाणी) - Um aplicativo de desktop mínimo, privado e universal de fala para texto


Alguns dias atrás, eu estava religiosamente assistindo ao último vídeo de Andrej Karpathy onde ele apresentou Vibe Coding.


Eu tenho usado assistentes de código de IA há algum tempo, mas ainda estou altamente envolvido no processo de codificação. A IA está atuando principalmente como uma auto-complementação inteligente, assumindo coisas tediosas da caldeira, escrevendo docstrings, ou ocasionalmente explicando o código que escrevi ontem e convenientemente esquecido. codificação Vibe soou mais como se graduando de autocomplete para co-criação real - uma mudança da IA como assistente para a IA como um parceiro de codificação real.


Intrigado por essa potencial mudança de paradigma, decidi experimentá-la em primeira mão. No mesmo vídeo, Andrej compartilhou que ele usa voz como entrada primária cerca de 50% do tempo, pois é mais intuitivo e eficiente. Ele sugeriu algumas opções para Mac que atuam como ferramentas de voz para texto universais que funcionam em vários aplicativos. Eu trabalho principalmente no Windows para interagir com aplicativos e Linux através da linha de comando. Como eu não consegui encontrar nenhuma boa opção para Windows (exceto built-in).Voice Accessque é super lento), eu decidi construir um para mim mesmo. eu tinha algumas outras idéias potenciais, mas me ajustou a isso como eu queria construir


    Não
  • Em uma linguagem de programação que eu conheço bem - Python
  • Não
  • algo que eu não conheço conceitualmente - captura e processamento de áudio, UI nativo
  • Não
  • Uma ferramenta que eu realmente usaria e não apenas um brinquedo
  • Não
  • algo útil para a comunidade que eu possa open-source
  • Não
  • Aprenda algo novo ao longo do caminho
  • Não


Objetivo -Construa um aplicativo de desktop mínimo, privado e universal de voz para texto


    Não
  • Minimal - Faz uma coisa muito bem - discurso a texto
  • Não
  • Privado - Nada deixa minha máquina, tudo offline
  • Não
  • Universal - Deve funcionar com qualquer aplicativo do Windows
  • Não
  • Cross Platform - Bom para ter
  • Não


Eu o chamoVão (वाणी), que significa "palavra" ou "voz" emSanskrit.

VãoSanskrit


GitHub

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


Instalação

pip install vaani-speech-to-text


Demo


Este artigo crônica a jornada da construçãoVaaniÉ uma exploração prática do que a codificação de vibe realmente se sente – a velocidade excitante, os obstáculos inesperados, os momentos de insights genuínos e as lições aprendidas ao colaborar intensamente com uma IA.Claude Sonnet 3.7, o melhor (de novo, com base na vibe geral) assistente de codificação disponível na época.Conheça o Google Gemini 2.5 ProFoi lançado e eu decidi usá-lo como um revisor de código.


BTW, este artigo é em grande parte ditado usandoVaani😊


Vamos ao vibe.

O estabelecimento


AI DeveloperMarcadores: Claude Sonnet 3.7

AI Code ReviewerAvaliações sobre o Gemini 2.5 Pro Preview 03-25


O Desenvolvedor de IA e o Revisor de Código de IA sempre tinham código completo como contexto para cada prompt. Eu iniciei uma nova conversa uma vez que um determinado objetivo foi alcançado, por exemplo, um bug é corrigido ou um recurso é implementado e funciona com sucesso. Eu fiz isso para gerenciar a janela de contexto e garantir o melhor desempenho de IA. Eu não usei nenhum IDE de agência (por exemplo, Cursor, Windsurf, etc.) e, em vez disso, dependi deJoão DesktopeGoogle AI EstúdioEu também evitou quaisquer alterações de código manual com a intenção de liberar o código de código aberto para o exame da comunidade.


The Initial Spark: From Zero to Scaffolding em segundos


Então, onde começamos? Tradicionalmente, isso envolve planejamento meticuloso. Por exemplo, delinear componentes, projetar interfaces, escolher bibliotecas e configurar a estrutura do projeto. Em vez disso, decidi começar com um prompt preguiçoso como mostrado abaixo.


Quero construir um aplicativo de voz para texto leve em Python para usuários do Windows. A ideia é ajudar os usuários do Windows a escrever coisas rapidamente usando voz em qualquer aplicativo, por exemplo, palavra, powerpoint, navegador, etc. O aplicativo deve funcionar localmente sem a internet para privacidade.

Não

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.


e a sua reputação,Claude Sonnet 3.7Ele gerou uma estrutura de aplicação abrangente quase instantaneamente, completa com:


    Não
  • Integração com Tkinter
  • Não
  • Global hotkey detection using keyboard
  • Não
  • Indicador de Feedback Visual
  • Não
  • Configurações de persistência UI
  • Não
  • Conversação usando o Vosk
  • Não
  • Gerente de Áudio Básico
  • Não
  • Principais pontos de entrada
  • Não
  • Embalagem com o Pyinstaller
  • Não


A fase inicial capturou perfeitamente o encanto da codificação de vibe: contornando horas de design e codificação fundamental, movendo-se diretamente da ideia para um esqueleto de aplicação tangível (embora buggy).


Riding the Waves: The Core Iteration Loop (em inglês)


Com os componentes básicos no lugar, o verdadeiro desenvolvimento começou por se estabelecer em um ritmo distinto – o ciclo central da codificação de vibe assistida por IA:


    Não
  1. Feature Request / Bug Report: Eu descreveria um recurso desejado ("Let's add hot word detection") ou relataria um problema ("Os resultados da transcrição não estão aparecendo!").
  2. Não
  3. Geração de código de IA: A IA processaria a solicitação e geraria fragmentos de código, às vezes modificando funções existentes, às vezes adicionando módulos completamente novos.
  4. Não
  5. Integração e Testes: Eu integraria o código da IA no aplicativo e testaria manualmente a funcionalidade.
  6. Não
  7. Feedback / Refinamento: Se funcionasse, continuássemos.Se não (o que era frequente!), Voltarei ao passo 1, fornecendo detalhes de erro mais específicos ou descrevendo o comportamento indesejado.
  8. Não


The Core Iteration Loop


Este ciclo foi incrivelmente rápido, mas também pesadoReacçãoNão estávamos seguindo um grande projeto; estávamos navegando por visão, apenas corrigindo problemas.DepoisOs principais desafios surgiram rapidamente:


    Não
  • Callback Conundrums: Tentativas iniciais de conectar diferentes partes do aplicativo (como a entrada de áudio para o motor de transcrição) simplesmente falharam em se comunicar corretamente.
  • Não
  • Complexidades da concorrência: A integração de tarefas de fundo (como processamento de áudio contínuo) com a UI levou a problemas de concorrência “clássicos” – colisões ou suspensões relacionadas ao acesso a recursos compartilhados ou atualização da UI a partir do fio errado.
  • Não
  • Persistência do estado do UI: Obter a janela de configurações para salvar e carregar as preferências do usuário de forma confiável provou ser surpreendentemente difícil.Assegurar que controles simples como caixas de verificação, sliders e dropdowns refletem corretamente e armazenem seu estado exigiu um significativo retrocesso.
  • Não
  • Processamento contínuo de fala: Quando solicitado para construir um sistema de processamento contínuo de fala, a IA veio com uma solução esmagadoramente sofisticada que incluiu captura contínua, ordenação de segmentos, processamento paralelo, inserção ordenada, conscientização de contexto, e assim por diante.
  • Não


Esta fase destacou o poder bruto da IA para a iteração, mas também o caos potencial do código de depuração gerado por outra entidade, dependendo da IA para corrigir seus próprios erros com base em suas observações.


"Espere, por que estamos fazendo isso?" - Pivots e Verificações de Realidade Necessárias


EmboraClaudedemonstrou impressionantes capacidades de codificação, obtendo a maioria das coisas corretas no primeiro passo, não foi infalível.de Claudeas sugestões.Claudeparecia ansioso para sobre-engenhar as soluções tornando-o extremamente complexo em uma tentativa de torná-lo genérico. Por exemplo, ao abordar a saída de texto fragmentado,Claudepropôs uma classe de tampão de dados sofisticada.Funcionou, mas parecia excessivamente complexo.Uma vez que eu questionava a necessidade dessa complexidade, ela concedeu e nós voltamos para uma implementação direta muito mais simples, detectando pausas naturais.É quando eu percebi que a intuição do desenvolvedor sobre simplicidade e pragmatismo é um contrabalance valioso para o potencial excesso de entusiasmo pela IA.


Outro exemplo foi quando implementamos a calibração de áudio e persistimos (depois que Gemini apontou corretamente o problema de eficiência) em configurações. Mais tarde, surgiu um pensamento prático: "Não seria esta calibração específica para o microfone usado?".ClaudePrimeiro sugeriu armazenar configurações de calibraçãopor dispositivo, mas obrigado com uma solução mais simples: apenas recalibrando se o dispositivo de entrada mudar. novamente, considerando o contexto de uso prático (a maioria dos usuários é improvável que troque dispositivos de entrada com frequência), escolhendo persistir calibração de áudio para apenas 1 dispositivo fez sentido.


Não
Estes momentos enfatizam que a codificação de vibe eficaz não é aceitação passiva; é um diálogo ativo onde o desenvolvedor guia, faz perguntas e, às vezes, corrige a trajetória da IA.
Não
Não

Estes momentos enfatizam que a codificação de vibe eficaz não é aceitação passiva; é um diálogo ativo onde o desenvolvedor guia, faz perguntas e, às vezes, corrige a trajetória da IA.

Não

Estes momentos enfatizam que a codificação de vibe eficaz não é aceitação passiva; é um diálogo ativo onde o desenvolvedor guia, faz perguntas e, às vezes, corrige a trajetória da IA.


Definindo a "Vibe": Como Vaani incorporou essa abordagem


Refletindo sobre oVaaniA jornada de desenvolvimento, exibiu as características centrais frequentemente associadas à codificação do vibe:


    Não
  • Especificação mínima antecipada: Comece com um objetivo, não um projeto detalhado.
  • Não
  • A IA como implementador primário: A IA escreveu a grande maioria do código inicial e recursos / correções subsequentes.
  • Não
  • Refinamentos orientados pela intuição: As mudanças foram muitas vezes impulsionadas por testes subjetivos ("a qualidade se sente ruim", "o elemento de interface deve ser móvel") em vez de requisitos formais.
  • Não
  • Design emergente: A arquitetura e o conjunto de recursos do aplicativo evoluíram de forma orgânica e reativa. Por exemplo, simplificando o tubo de áudio do núcleo, e adicionando controles concorrentes mais tarde ou substituindo o Tkinter com o PySide6 para simplificação (threading) e um visual moderno.
  • Não
  • Delegação de depuração: Meu papel na correção de bugs era muitas vezes relatar os sintomas com precisão para que a IA pudesse gerar a cura.
  • Não


Isso se alinha bem com a discussão atual definindo codificação de vibe por sua velocidade, dependência de linguagem natural e, às vezes, um grau menor de escrutínio do desenvolvedor.EspectroEnquantoVaaniComeçando perto do fim da "vibe pura", o projeto naturalmente mudou para mais estrutura (requerendo modularização e revisões de código) à medida que amadurecia e se aproximava do lançamento.


Além do Hype: Novel Insights from the Trenches


Trabalhar tão estreitamente com a IA em um projeto completo produziu alguma visão que vai além da narrativa típica “AI é rápido, mas comete erros”.


    Não
  1. A IA tem uma tendência de engenharia excessiva: repetidamente, a primeira solução da IA foi mais complexa do que o necessário (por exemplo, arquitetura inicial, tampão de texto, manipulação de configurações).
  2. Não
  3. O desenvolvedor como um filtro e validador essencial: Este não era apenas codificação passiva. Meu papel evoluiu para o de um validador crítico, verificador de realidade e filtro de complexidade. questionando a IA por que essa arquitetura era tão importante quanto solicitar novos recursos.
  4. Não
  5. A mudança inevitável em direção à estrutura: a codificação de vibe puro fez o projeto sair do chão incrivelmente rapidamente. No entanto, para tornar o Vaani mantido e pronto para lançamento (especialmente para código aberto) foi necessária uma mudança consciente. Solicitar explicitamente modularização, análise de qualidade de código e refactoring tornou-se crucial em estágios posteriores.
  6. Não
  7. Aprendizagem implícita versus compreensão profunda: Aprendi muito debugando o código da IA. No entanto, porque a IA muitas vezes forneceu correções diretamente, eu nem sempre precisava alcançar o nível mais profundo de compreensão de por que certos problemas complexos ocorreram (como condições de corrida sutis ou quirks específicos do framework de UI).
  8. Não


A espada de dois lados: pesando os prós e contras


Pros:


    Não
  • Blazing Speed: O protótipo e a implementação inicial de recursos são impressionantemente mais rápidos.
  • Não
  • Complexidade: A IA pode gerar código para tarefas complexas (integrar bibliotecas, lidar com concorrência) rapidamente, reduzindo a barreira de entrada.
  • Não
  • Boilerplate Buster: configuração tediosa e código repetitivo são tratados automaticamente.
  • Não
  • Aprendizagem Forçada (via Debugging): Corrigir erros de IA muitas vezes força a compreensão do domínio do problema, favorecendo indiretamente a aprendizagem.
  • Não


Cons:


    Não
  • Alto risco de bugs sutis: geração rápida e depuração reativa podem facilmente perder casos de borda, condições de corrida ou defeitos lógicos mais profundos.
  • Não
  • Potencial para Arquitetura Pobre: As escolhas iniciais de design da IA podem ser sub-ótimas ou excessivamente complexas se não forem avaliadas criticamente pelo desenvolvedor.
  • Não
  • Ciclos difíceis de depuração: Corrigir código que você não escreveu, especialmente quando a IA luta com o problema subjacente (como estado complexo ou concorrência), pode ser frustrante e demorado.
  • Não
  • Preocupações com a manutenção: O código gerado pela IA, cultivado organicamente, pode ficar confuso e difícil de entender sem uma refactorização e estruturação deliberadas.
  • Não
  • Skill Erosion Potential: Over-reliance might hinder the development of fundamental design, debugging, architectural skills, and most importantly human intuition.
  • Não
  • Requisitos não funcionais Negligenciar: Segurança, desempenho, gerenciamento de recursos e gerenciamento de erros abrangentes podem ser facilmente ignorados na pressa pela funcionalidade.
  • Não


Taming the Vibe: Recomendações para uma colaboração eficaz


A codificação do Vibe é, sem dúvida, uma ferramenta poderosa, mas requer habilidade para operar de forma eficaz.Se você é um desenvolvedor experiente e está considerando esta abordagem, aqui estão minhas recomendações genéricas baseadas na minha experiência de construçãoVaani. o


    Não
  1. Valide, não apenas aceite: trate o código de IA como um projeto. Pergunte suas escolhas arquitetônicas ("Por que esse padrão? é apropriado aqui?"). Peça alternativas. Teste completamente além do "caminho feliz".
  2. Não
  3. Se uma solução de IA parecer excessivamente complexa ou usar padrões obscuros sem uma boa razão, recuar.
  4. Não
  5. Plano para Estrutura: Reconheça que o protótipo inicial codificado por vibe provavelmente precisará de refinamento. Tempo de orçamento para refactoring – melhorar a modularidade, adicionar documentação clara (comentários, READMEs) e melhorar a qualidade do código antes de considerar um projeto estável ou pronto para ser lançado.
  6. Não
  7. Concentre-se na compreensão: não copie apenas o código da IA. Use a IA como um tutor. Quando fornecer uma correção ou um pedaço complexo de código, peça-lhe para explicar o raciocínio por trás dele.
  8. Não
  9. Aproveite as ferramentas e práticas estabelecidas: À medida que a IA acelera a iteração, manter a qualidade do software torna-se ainda mais crucial.Abrir testes automatizados de teste precoce - unidade e testes de integração fornecem redes de segurança essenciais contra regressões.Aparelhe isso com ferramentas de análise de qualidade de código e estáticas (como linters e analisadores) para capturar bugs, problemas de estilo e anti-padrões que podem passar por cima de humanos e IA.
  10. Não


Conclusão: Codificação Vibe - Um parceiro poderoso, não um substituto


Meu edifício de viagemVãoEle fundamentalmente muda o fluxo de trabalho de desenvolvimento, oferecendo velocidade sem precedentes na tradução de idéias em código funcional. Ele permitiu-me, um único desenvolvedor, para construir um aplicativo razoavelmente complexo em uma fração do tempo (~ 15 horas) que poderia ter tradicionalmente levado.

Vão


No entanto, não é uma varinha mágica. É uma colaboração que requer comunicação, pensamento crítico e supervisão. A IA age como um assistente incrivelmente rápido, experiente, mas às vezes excessivamente entusiasmado. Pode gerar lógica complicada em segundos, mas pode perder a solução mais simples ou ignorar restrições do mundo real ou praticabilidade. Pode corrigir bugs instantaneamente, mas pode lutar com as nuances.


O verdadeiro poder surge quando o desenvolvedor se envolve ativamente – guiando a IA, questionando suas suposições, validando sua saída e aplicando princípios fundamentais de engenharia de software. O codificação Vibe não substitui as habilidades do desenvolvedor; ele a move em direção à arquitetura, validação, prompting eficaz e integração crítica. É uma nova maneira emocionante, poderosa e às vezes desafiadora de construir, oferecendo um vislumbre de um futuro onde a criatividade humana e a inteligência artificial trabalham de mãos dadas, guiadas por um bom julgamento de engenharia.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks