187 odczyty Nowa historia

My Journey Down the Rabbit Hole of Vibe - recenzja

przez Nilesh Raghuvanshi10m2025/04/22
Read on Terminal Reader

Za długo; Czytać

Zanurz się w moim budynku podróży 'Vaani' - minimalna, prywatna, uniwersalna aplikacja desktopowa Speech-to-Text wykorzystująca kodowanie wibracyjne.
featured image - My Journey Down the Rabbit Hole of Vibe - recenzja
Nilesh Raghuvanshi HackerNoon profile picture
0-item
1-item
2-item

Building Vaani (वाणी) - minimalna, prywatna, uniwersalna aplikacja desktopowa mowy do tekstu


Kilka dni temu religijnie oglądałem najnowsze wideo Andrzeja Karpaty, w którym wprowadził Vibe Coding.


Od jakiegoś czasu używam asystentów kodowania AI, ale wciąż jestem bardzo zaangażowany w proces kodowania. AI działa głównie jako inteligentna auto-kompletacja, przejmując się nudnymi rzeczami z kotłowni, pisząc docstrings lub okazjonalnie wyjaśniając kod, który napisałem wczoraj i wygodnie zapomniałem. kodowanie Vibe brzmiało bardziej jak ukończenie od autocomplete do rzeczywistego współtworzenia - zmiana z AI jako asystenta do AI jako rzeczywistego partnera kodującego.


Zaintrygowany tym potencjalnym zmianą paradygmatu, postanowiłem doświadczyć go z pierwszej ręki. W tym samym wideo Andrej podzielił się, że używa głosu jako głównego wejścia około 50% czasu, ponieważ jest bardziej intuicyjny i wydajny. Sugeruje kilka opcji dla Mac, które działają jako uniwersalne narzędzia mowy do tekstu, które działają w wielu aplikacjach. Pracuję głównie w systemie Windows do interakcji z aplikacjami i Linuxem za pośrednictwem linii poleceń.Voice Accessktóry jest bardzo powolny), postanowiłem zbudować jeden dla siebie. miałem kilka innych potencjalnych pomysłów, ale zdecydowałem się na to, jak chciałem zbudować


  • Programowanie w języku, który dobrze znam - Python
  • coś, z czym nie jestem pojęciowo zaznajomiony - nagrywanie i przetwarzanie dźwięku, native UI
  • narzędzie, które naprawdę używam, a nie tylko zabawka
  • Coś pożytecznego dla społeczności, które mogę otworzyć
  • Naucz się czegoś nowego w drodze


Celem -Stwórz minimalną, prywatną, uniwersalną aplikację desktopową od mowy do tekstu


  • Minimalne - czyni jedną rzecz naprawdę dobrze - przemówienie do tekstu
  • Prywatne - nic nie opuszcza mojej maszyny, wszystko jest offline
  • Uniwersalny - powinien współpracować z dowolną aplikacją Windows
  • Cross Platform - dobre do posiadania


Nazywam toVaani (वाणी), co oznacza „mowę” lub „głos” wSanskryci...

WańSanskryci


GitHub

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


Instalacja

pip install vaani-speech-to-text


Demo


Ten artykuł opisuje drogę budowyVaaniJest to praktyczne odkrycie tego, jak naprawdę wygląda kodowanie wibracyjne – ekscytująca prędkość, nieoczekiwane przeszkody, chwile prawdziwego wglądu i lekcje zdobyte podczas intensywnej współpracy z sztuczną inteligencją.Claude Sonnet 3,7 zł, najlepszy (znowu, w oparciu o ogólną wibrację) dostępny asystent kodowania w tym czasie.Nowy Google Gemini 2.5 ProZostał wydany i postanowiłem użyć go jako przeglądarki kodu.


BTW, ten artykuł jest w dużej mierze dyktowany przy użyciuVaani😊


Zróbmy sobie wibrację.

Instalacja


AI DeveloperClaude Sonnet 3,7

AI Code ReviewerOpis produktu: Gemini 2.5 Pro Preview 03-25


AI Developer i AI Code Reviewer zawsze miały kompletny kod jako kontekst dla każdego polecenia. Zainicjowałem nową rozmowę po osiągnięciu określonego celu, np. bug jest naprawiony lub funkcja jest wdrażana i działa z powodzeniem. Zrobiłem to, aby zarządzać oknem kontekstu i zapewnić najlepszą wydajność AI. Nie używałem żadnych agentycznych IDEs (np. Cursor, Windsurf itp.) i zamiast tego polegałem naMikołaj DesktopiGoogle AI StudioUniknąłem również wszelkich ręcznych zmian kodu z zamiarem uwolnienia kodu open source do przeglądu społeczności.


The Initial Spark: From Zero to Scaffolding w kilka sekund


Tak więc, od czego zaczynamy? Tradycyjnie wiąże się to z dokładnym planowaniem. Na przykład, rysowanie komponentów, projektowanie interfejsów, wybieranie bibliotek i ustawianie struktury projektu.


Chcę zbudować lekką aplikację mowy do tekstu w Pythonie dla użytkowników systemu Windows. Pomysł polega na tym, aby pomóc użytkownikom systemu Windows szybko pisać rzeczy za pomocą głosu w dowolnej aplikacji np. słowo, powerpoint, przeglądarka itp. Aplikacja powinna działać lokalnie bez internetu dla prywatności.

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.


i jego reputacji,Claude Sonnet 3,7 złTo wygenerowało kompleksową strukturę aplikacji niemal natychmiast, kompletny z:


  • Integracja z systemem za pomocą Tkinter
  • Globalne wykrywanie kluczy przy użyciu klawiatury
  • Wskaźnik wizualnego zwrotu UI
  • Ustawienia UI Persistence
  • Mów do tekstu przy użyciu Vosk
  • Podstawowy menedżer audio
  • Główny punkt wejścia
  • Opakowanie przy użyciu pyinstaller


Początkowy etap doskonale uchwycił urok kodowania wibracyjnego: omijając godziny projektowania i kodowania podstawowego, przechodząc bezpośrednio od pomysłu do konkretnego (choć błędnego) szkieletu aplikacji.


Riding the Waves: The Core Iteration Loop - recenzja


Dzięki podstawowym komponentom, prawdziwy rozwój rozpoczął się od ustalenia się w odrębnym rytmie – podstawowym obwodzie kodowania wibru wspomaganego przez sztuczną inteligencję:


  1. Wniosek o funkcję / raport błędu: Opisałbym pożądaną funkcję ("Dodajmy wykrywanie gorących słów") lub zgłosiłbym problem ("Rezultaty transkrypcji nie pojawiają się!").
  2. Generacja kodu AI: Sztuczna inteligencja przetwarza żądanie i generuje fragmenty kodu, czasami modyfikując istniejące funkcje, a czasami dodając zupełnie nowe moduły.
  3. Integracja i testowanie: Integrowałbym kod AI w aplikacji i ręcznie przetestowałbym funkcjonalność.
  4. Jeśli nie (co było częste!), Wróciłbym do kroku 1, podając bardziej szczegółowe szczegóły błędu lub opisując niepożądane zachowanie.


The Core Iteration Loop


Ten bieg był niesamowicie szybki, ale także ciężki.ReaktywnyNie podążaliśmy za wielkim projektem; nawigowaliśmy widokiem, naprawiając tylko problemy.PoNajważniejsze wyzwania pojawiły się szybko:


  • Callback Conundrums: Początkowe próby podłączenia różnych części aplikacji (takich jak wejście audio do silnika transkrypcji) po prostu nie powiadomiły się poprawnie.
  • Integracja zadań tła (takich jak ciągłe przetwarzanie dźwięku) z interfejsem użytkownika doprowadziła do „klasycznych” problemów równoczesnych – awarii lub zawieszeń związanych z dostępem do udostępnionych zasobów lub aktualizacją interfejsu użytkownika z niewłaściwego paska.
  • UI State Persistence: Utrzymanie okna ustawień, aby niezawodnie zapisać i załadować preferencje użytkownika, okazało się zaskakująco trudne.
  • Ciągłe przetwarzanie mowy: Gdy poproszono o zbudowanie ciągłego systemu przetwarzania mowy, AI wymyślił niezwykle wyrafinowane rozwiązanie, które obejmowało ciągłe przechwytywanie, sortowanie segmentów, równoległe przetwarzanie, uporządkowane wstawianie, świadomość kontekstu i tak dalej.


Ta faza podkreśliła surową moc AI do iteracji, ale także potencjalny chaos kodów debugujących generowanych przez inną jednostkę, polegającą na AI, aby naprawić własne błędy w oparciu o twoje obserwacje.


"Czekaj, dlaczego to robimy?" - Podstawy i niezbędne kontrole rzeczywistości


Podczas gdyClaudewykazały imponujące możliwości kodowania, uzyskanie większości rzeczy w porządku w pierwszej kolejności, nie było to nieomylne.Claude’ai sugestii .ClaudeWydawało się, że chcą nadmiernie inżynierować rozwiązania, co czyni je niezwykle złożonymi, próbując uczynić je ogólnymi.ClaudeZaproponował wyrafinowaną klasę buforowania danych. Działało to, ale wydawało mi się zbyt skomplikowane. Kiedy podważyłem potrzebę tej złożoności, przyznał się i przechodziliśmy do znacznie prostszej bezpośredniej implementacji poprzez wykrywanie naturalnych przerw.


Innym przykładem było to, gdy wdrożyliśmy kalibrację dźwięku i utrzymaliśmy ją (po tym, jak Gemini słusznie wskazał na problem wydajności) w ustawieniach. Później pojawiła się praktyczna myśl: „Czy ta kalibracja nie będzie specyficzna dla używanego mikrofonu?”.ClaudeNajpierw zaproponowano przechowywanie ustawień kalibracjiza urządzeniePonownie, biorąc pod uwagę praktyczny kontekst użytkowania (większość użytkowników jest mało prawdopodobne, aby często przełączać urządzenia wejściowe), wybierając, aby utrzymać kalibrację dźwięku dla tylko 1 urządzenia ma sens.


Te momenty podkreślają, że skuteczne kodowanie wibru nie jest bierną akceptacją; jest to aktywny dialog, w którym deweloper kieruje, zadaje pytania, a czasami poprawia trajektorię sztucznej inteligencji.
Te momenty podkreślają, że skuteczne kodowanie wibru nie jest bierną akceptacją; jest to aktywny dialog, w którym deweloper kieruje, zadaje pytania, a czasami poprawia trajektorię sztucznej inteligencji.

Te momenty podkreślają, że skuteczne kodowanie wibru nie jest bierną akceptacją; jest to aktywny dialog, w którym deweloper kieruje, zadaje pytania, a czasami poprawia trajektorię sztucznej inteligencji.


Definicja „Vibe”: Jak Vaani uosabia to podejście


Refleksja na tematVaaniPodróż rozwojową, wykazała podstawowe cechy często związane z kodowaniem wibe:


  • Minimalna specyfikacja z wyprzedzeniem: Początek z celem, a nie szczegółowym planem.
  • AI jako główny wykonawca: Sztuczna inteligencja napisała ogromną większość pierwotnego kodu i późniejszych funkcji / poprawek.
  • Zmiany były często napędzane subiektywnymi testami („jakość wydaje się słaba”, „element interfejsu użytkownika powinien być ruchomy”) zamiast formalnymi wymaganiami.
  • Rozwijająca się konstrukcja: Architektura i zestaw funkcji aplikacji ewoluowały organicznie i reaktywnie. na przykład uproszczenie podstawowego przewodnika audio i dodanie sterowników równoczesnych później lub zastąpienie Tkintera za pomocą PySide6 w celu uproszczenia (przeciągania) i nowoczesnego wyglądu.
  • Delegacja debugowania: Moja rola w naprawie błędów często polegała na dokładnym zgłaszaniu objawów, aby sztuczna inteligencja mogła wygenerować leczenie.


To dobrze pasuje do obecnej dyskusji definiującej kodowanie wibracyjne przez jego szybkość, zależność od naturalnego języka, a czasami mniejszy stopień kontroli przez programistów.SpektrumPodczas gdyVaaniProjekt rozpoczął się w pobliżu końca „czystej wibracji”, projekt naturalnie przeniósł się w kierunku większej struktury (zamówienia modularyzacji i przeglądu kodu), gdy dojrzewał i zbliżał się do wydania.


Beyond the Hype: Novel Insights from the Trenches (Przez hype: Wgląd w powieść z trenczów)


Współpraca tak ściśle z AI nad kompletnym projektem dała wgląd, który wykracza poza typową narrację „AI jest szybki, ale popełnia błędy”.


  1. Sztuczna inteligencja ma tendencję do nadmiernego inżynierii: wielokrotnie pierwsze rozwiązanie sztucznej inteligencji było bardziej złożone niż konieczne (np. architektura początkowa, buforowanie tekstu, obsługa konfiguracji).
  2. Twórca jako niezbędny filtr i walidator: To nie było tylko pasywne kodowanie. Moja rola ewoluowała w rolę krytycznego walidatora, weryfikatora rzeczywistości i filtra złożoności. Kwestionując AI, dlaczego ta architektura była tak ważna, jak żądanie nowych funkcji.
  3. Nieunikniona zmiana w kierunku struktury: kodowanie czystej wibracji przyniosło projektowi niesamowitą szybkość. Jednak, aby uczynić Vaani utrzymywalnym i gotowym do wydania (szczególnie w przypadku oprogramowania open source) konieczna była świadoma zmiana. Wyraźne żądanie modularyzacji, analizy jakości kodu i refaktorowania stało się kluczowe na późniejszych etapach. kodowanie Vibe może być pierwszym krokiem, ale tradycyjne zasady inżynierii są nadal potrzebne dla solidnego oprogramowania podtrzymywalnego.
  4. Implicit Learning vs. Deep Understanding: Dużo się nauczyłem, debugując kod AI. Jednak, ponieważ AI często dostarczało naprawy bezpośrednio, nie zawsze musiałem osiągnąć najgłębszy poziom zrozumienia, dlaczego wystąpiły pewne złożone problemy (takie jak subtelne warunki wyścigowe lub specyficzne dziwactwa ramy UI).


Podwójny miecz: ważenie zalet i wad


Pros:


  • Blazing Speed: Prototypowanie i wdrożenie funkcji jest o wiele szybsze.
  • Rozwiązywanie złożoności: Sztuczna inteligencja może szybko generować kod do złożonych zadań (integracja bibliotek, obsługa równoczesności), obniżając barierę wejścia.
  • Boilerplate Buster: Ciężkie ustawienia i powtarzający się kod są obsługiwane automatycznie.
  • Przymusowe uczenie się (poprzez debugowanie): Naprawienie błędów AI często zmusza do zrozumienia obszaru problemu, pośrednio wspierając uczenie się.


Cons:


  • Wysokie ryzyko drobnych błędów: Szybkie generowanie i reaktywne usuwanie błędów może łatwo pominąć przypadki krawędzi, warunki wyścigowe lub głębsze błędy logiczne.
  • Potencjał dla słabej architektury: początkowe wybory projektowe AI mogą być nieoptymalne lub zbyt złożone, jeśli nie zostaną krytycznie ocenione przez dewelopera.
  • Trudne cykle debugowania: Naprawienie kodu, którego nie napisałeś, zwłaszcza gdy AI zmaga się z podstawowym problemem (takim jak złożony stan lub równoległość), może być frustrujące i czasochłonne.
  • Zaniepokojenie utrzymaniem: Organicznie uprawiany, wygenerowany przez sztuczną inteligencję kod może stać się zakłócony i trudny do zrozumienia bez celowego refaktorowania i strukturyzacji.
  • Potencjał erozji umiejętności: Nadmierna zależność może utrudniać rozwój podstawowego projektowania, debugowania, umiejętności architektonicznych i, co najważniejsze, ludzkiej intuicji.
  • Bezpieczeństwo, wydajność, zarządzanie zasobami i kompleksowe zarządzanie błędami można łatwo pominąć w pośpiechu do funkcjonalności.


Taming the Vibe: Zalecenia dla skutecznej współpracy


Kodowanie Vibe jest niewątpliwie potężnym narzędziem, ale wymaga umiejętności skutecznego obsługi. Jeśli jesteś doświadczonym deweloperem i rozważasz to podejście, oto moje ogólne zalecenia oparte na moim doświadczeniu w budowaniuVaani...


  1. Validate, Don't Just Accept: Treat AI code as a draft. Question its architectural choices ("Why this pattern? Is it appropriate here?"). Ask for alternatives. Test thoroughly beyond the "happy path."
  2. Działaj jak filtr złożoności: Jeśli rozwiązanie AI wydaje się zbyt skomplikowane lub używa niejasnych wzorców bez dobrego powodu, odwróć się.
  3. Plan dla struktury: Uznaj, że początkowy prototyp z kodem vibe prawdopodobnie będzie potrzebował udoskonalenia. czas budżetowy na refaktoring – poprawa modułowości, dodanie jasnej dokumentacji (komentarze, READMEs) i poprawa jakości kodu przed rozważeniem projektu stabilnego lub gotowego do wydania.
  4. Koncentruj się na zrozumieniu: Nie kopiuj tylko kodu AI. Użyj AI jako nauczyciela. Kiedy dostarcza naprawy lub złożonego kawałka kodu, poproś go o wyjaśnienie uzasadnienia.
  5. Wykorzystanie zaawansowanych narzędzi i praktyk: W miarę jak sztuczna inteligencja przyspiesza iterację, utrzymanie jakości oprogramowania staje się jeszcze ważniejsze.Przyjęcie zautomatyzowanych testów na wczesnym etapie – jednostki i testy integracji zapewniają niezbędne siatki bezpieczeństwa przeciwko regresji.Połącz to z narzędziami do jakości kodu i statycznej analizy (takimi jak lintery i analizatory), aby złapać błędy, problemy ze stylem i antymatry, które mogą ominąć zarówno ludzi, jak i sztuczną inteligencję.


Konkluzja: Kodowanie Vibe - potężny partner, a nie zastępca


Mój budynek podróżyWańPotwierdził, że „kodowanie wibracyjne” wspomagane przez sztuczną inteligencję jest czymś więcej niż tylko hype. To zasadniczo zmienia przepływ pracy rozwoju, oferując bezprecedensową prędkość w tłumaczeniu pomysłów na kod funkcjonalny.To pozwoliło mi, jednemu deweloperowi, zbudować stosunkowo złożoną aplikację w ułamku czasu (~ 15 godzin), który mógłby tradycyjnie zająć.

Wań


Jest to współpraca wymagająca komunikacji, krytycznego myślenia i nadzoru. AI działa jak niesamowicie szybki, wiedzący, ale czasami nadmiernie entuzjastyczny asystent. Może generować skomplikowaną logikę w ciągu sekund, ale może pominąć najprostsze rozwiązanie lub pominąć ograniczenia lub praktyczność w świecie rzeczywistym. Może natychmiast naprawić błędy, ale może walczyć z niuansami.


Prawdziwa moc pojawia się, gdy deweloper aktywnie angażuje się – kierując sztuczną inteligencją, kwestionując jej założenia, walidując jej wyniki i stosując podstawowe zasady inżynierii oprogramowania. kodowanie Vibe nie zastępuje umiejętności dewelopera; przesuwa je w kierunku architektury, walidacji, skutecznego zachęcania i krytycznej integracji.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks