187 lukemat Uusi historia

My Journey Down the Rabbit Hole of Vibe Näytä tarkat tiedot

kirjoittaja Nilesh Raghuvanshi10m2025/04/22
Read on Terminal Reader

Liian pitkä; Lukea

Sukella matkamme rakennukseen 'Vaani' - Minimaalinen, yksityinen, universaali puhetta tekstiin -työpöytäsovellus käyttämällä vibe-koodausta. Se on käytännöllinen katsaus AI-yhteistyökokemukseen: nopeuteen, taisteluihin, oivalluksiin ja oppitunteihin.
featured image - My Journey Down the Rabbit Hole of Vibe Näytä tarkat tiedot
Nilesh Raghuvanshi HackerNoon profile picture
0-item
1-item
2-item

Building Vaani (वाणी) - Minimaalinen, yksityinen, yleismaailmallinen puhe-tekstin työpöytäsovellus


Muutama päivä sitten katsoin uskonnollisesti Andrej Karpathyn uusinta videota, jossa hän esitteli Vibe Codingia.


Olen käyttänyt AI-koodin avustajia jonkin aikaa, mutta olen edelleen erittäin mukana koodausprosessissa. AI toimii enimmäkseen älykkäänä automaattisena täydentämisenä, ottaen haltuun tylsät kattilan materiaalit, kirjoittamalla docstringsia tai joskus selittäen koodia, jonka kirjoitin eilen ja kätevästi unohdettu. Vibe-koodaus kuulosti enemmän kuin valmistuminen autokompleteista todelliseen yhteistuotantoon - siirtyminen AI: sta assistenttina AI: lle todellisena koodauskumppanina.


Andrej kertoi samassa videossa, että hän käyttää ääntä ensisijaisena syöttönä noin 50 prosenttia ajasta, koska se on intuitiivisempi ja tehokkaampi. Hän ehdotti joitakin Mac-vaihtoehtoja, jotka toimivat universaaleina puhe-tekstityökaluina, jotka toimivat useissa sovelluksissa. Työskentelen ensisijaisesti Windowsissa vuorovaikutuksessa sovellusten ja Linuxin kanssa komentosarjan kautta. Koska en löytänyt mitään hyviä vaihtoehtoja Windowsille (paitsi sisäänrakennetut)Voice Accessjoka on erittäin hidas), päätin rakentaa yhden itselleni. Minulla oli muutamia muita mahdollisia ideoita, mutta päädyin tähän, koska halusin rakentaa


    on
  • Se on ohjelmointikieli, jonka tiedän hyvin - Python
  • on
  • jotain, jota en käsitteellisesti tunne - äänen kaappaus ja käsittely, native UI
  • on
  • Työkalu, jota todella käytän, eikä vain lelu
  • on
  • jotain hyödyllistä yhteisölle, jonka voin avata
  • on
  • Opi jotain uutta matkan varrella
  • on


Päämäärä -Rakenna minimaalinen, yksityinen, yleismaailmallinen puhe-tekstin työpöydän sovellus


    on
  • Minimal - tekee yhden asian todella hyvin - puhe-tekstissä
  • on
  • Yksityinen - Mikään ei jätä konetta, kaikki offline
  • on
  • Universal - Toimii minkä tahansa Windows-sovelluksen kanssa
  • on
  • Cross Platform - Hyvä olla
  • on


Minä kutsun sitäVantaan (वाणी), joka tarkoittaa ”puhe” tai ”ääntä”Sanskritinja

VantaanSanskritin


Githubissa

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


asennuksen

pip install vaani-speech-to-text


demoa


Tämä artikkeli kertoo rakennuksen matkastaVaaniSe on käytännöllinen tutkimus siitä, miltä vibe-koodaus todella tuntuu - jännittävä nopeus, odottamattomat esteet, aitojen oivallusten hetket ja oppitunnit, jotka opittiin intensiivisessä yhteistyössä AI: n kanssa. Päätin käyttääClaude Sonnet 3.7, paras (jälleen yleisen vibe) käytettävissä oleva koodausavustaja tuolloin.Näytönohjain Google Gemini 2.5 ProSe julkaistiin ja päätin käyttää sitä koodin tarkastelijana.


BTW, tämä artikkeli on suurelta osin sanottu käyttämälläVaani😊


Ja sitten vibe.

asennuksen


AI Developer: Claude Sonnet 3.7

AI Code ReviewerLähde: Gemini 2.5 Pro Preview 03-25


AI-kehittäjällä ja AI Code Reviewerilla oli aina täydellinen koodi jokaisen kehotuksen yhteydessä. Aloitin uuden keskustelun, kun tietty tavoite on saavutettu, esim. vika on korjattu tai ominaisuus toteutetaan ja toimii onnistuneesti. Tein tämän hallitsemaan kontekstiikkunaa ja varmistamaan parhaan AI-suorituskyvyn. En käyttänyt mitään agenttisia IDE:itä (esim. Cursor, Windsurf jne.) ja luotin sen sijaanPääosat DesktopjaGooglen työstudioLisäksi vältin manuaalisia koodimuutoksia, joiden tarkoituksena oli julkaista avoimen lähdekoodin koodi yhteisön tarkasteluun.


The Initial Spark: Zeroista Scaffoldingiin sekunneissa


Joten mistä aloitamme? Perinteisesti tämä edellyttää huolellista suunnittelua. Esimerkiksi komponenttien kuvaaminen, rajapintojen suunnittelu, kirjastojen valinta ja projektin rakenteen asettaminen. Sen sijaan päätin aloittaa laiskalla ohjeella, kuten alla on esitetty.


on

Haluan rakentaa kevyen puhe-tekstisovelluksen Pythoniin Windows-käyttäjille. Ajatuksena on auttaa Windows-käyttäjiä kirjoittamaan asioita nopeasti käyttämällä ääntä missä tahansa sovelluksessa esim. sana, powerpoint, selain jne. Sovelluksen pitäisi toimia paikallisesti ilman internetiä yksityisyyden vuoksi.

on

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.


ja totuus hänen maineestaan,Claude Sonnet 3,7 ääntäSe tuotti kattavan sovellusrakenteen lähes välittömästi, täydellinen:


    on
  • System tray -integraatio Tkinterin avulla
  • on
  • Globaali hotkey-tunnistus näppäimistön avulla
  • on
  • Visuaalisen palautteen indikaattori
  • on
  • Asetukset Persistance UI
  • on
  • Puhetta tekstiin käyttämällä Vosk
  • on
  • Perusohjaus Audio Manager
  • on
  • Pääsisäänkäyntipaikka
  • on
  • Pakkaaminen pyinstallerilla
  • on


Alkuvaihe kaapasi täydellisesti vibe-koodin houkuttelevuuden: ohittaen tuntikausia suunnittelua ja perustavanlaatuista koodausta, siirtymällä suoraan ideasta konkreettiseen (vaikka buggy) sovellusrakenteeseen.


Alkuperäinen nimi: Riding the Waves: The Core Iteration Loop


Kun peruskomponentit ovat paikoillaan, todellinen kehitys alkoi asettumalla erilliseen rytmiin – AI-avustetun vibe-koodauksen ydinlinjaan:


    on
  1. Ominaisuuspyyntö / bug-raportti: kuvailisin toivottua ominaisuutta ("Lisätään kuuma sanan havaitseminen") tai ilmoittaisin ongelmasta ("Transcription-tulokset eivät näy!").
  2. on
  3. AI Code Generation: AI käsittelee pyyntöä ja tuottaa koodiosia, joskus muokkaamalla olemassa olevia toimintoja, joskus lisäämällä täysin uusia moduuleja.
  4. on
  5. Integraatio ja testaus: Integroisin AI: n koodin sovellukseen ja testaisin toiminnallisuutta manuaalisesti.
  6. on
  7. Palaute / hienosäätely: Jos se toimi, siirryimme eteenpäin. jos ei (joka oli yleistä!), Menisin takaisin vaiheeseen 1, joka antaa tarkempia virheitä tai kuvailee ei-toivottua käyttäytymistä.
  8. on


The Core Iteration Loop


Tämä kierros oli uskomattoman nopea, mutta myös raskasreaktiivinenEmme noudattaneet suurta suunnittelua; olimme navigoimassa näkymällä, vain korjaamalla ongelmia.jälkeenTärkeimmät haasteet ilmestyivät nopeasti:


    on
  • Callback Conundrums: Alustavat yritykset yhdistää sovelluksen eri osat (kuten äänitiedosto transkriptimoottoriin) eivät yksinkertaisesti kommunikoineet oikein.
  • on
  • Kilpailun monimutkaisuus: Taustatehtävien integrointi (kuten jatkuva äänenkäsittely) käyttöliittymän kanssa johti "klassisiin" samanaikaisiin ongelmiin - kaatumisiin tai ripustuksiin, jotka liittyvät yhteisten resurssien käyttämiseen tai käyttöliittymän päivittämiseen väärästä säikeestä.
  • on
  • Käyttöliittymän tilan pysyvyys: Asetusten ikkunan luotettava tallentaminen ja käyttäjäasetusten lataaminen osoittautui yllättävän vaikeaksi.Varmista, että yksinkertaiset ohjausobjektit, kuten valintaruudut, liukusäätimet ja pudotukset heijastuivat oikein ja tallensivat tilansa, vaati huomattavaa taaksepäin.
  • on
  • Jatkuva puheprosessointi: Kun pyydettiin rakentamaan jatkuva puheprosessointijärjestelmä, tekoäly keksi ylivoimaisesti hienostuneen ratkaisun, joka sisälsi jatkuvan kaappauksen, segmentin järjestämisen, rinnakkaisen käsittelyn, järjestetyn lisäämisen, konteksti-tietoisuuden ja niin edelleen.
  • on


Tämä vaihe korosti AI: n raakaa voimaa iteroinnissa, mutta myös toisen entiteetin tuottaman koodin vääristämisen potentiaalisen kaaoksen, joka luottaa AI: hen korjaamaan omat virheensä havaintojesi perusteella.


"Odota, miksi teemme tämän?" - Pivots ja välttämättömät todellisuuden tarkastukset


VaikkaClaudiaosoitti vaikuttavia koodausominaisuuksia, saada useimmat asiat oikein aluksi, se ei ollut virheetöntä. Erityisesti arkkitehtonisten valintojen osalta useat tapaukset pakottivat meidät pohtimaan perusteellisesti uudelleenClaude onja ehdotuksia.Claudia seemed eager to over-engineer the solutions making it extremely complex in an attempt to make it generic. For example, when tackling the fragmented text output, ClaudiaSe toimi, mutta tuntui liian monimutkaiselta.Kun kyseenalaistin tämän monimutkaisuuden tarpeen, se myönsi ja käännyimme paljon yksinkertaisempaan suoraa toteutusta havaitsemalla luonnollisia taukoja.Tämä on, kun tajusin, että kehittäjien intuitio yksinkertaisuudesta ja pragmatismista on arvokas vastine mahdolliselle AI: n liialliselle innostukselle.


Toinen esimerkki oli, kun toteutimme äänen kalibroinnin ja jatkoimme sitä (kun Gemini osoitti oikein tehokkuusongelman) asetuksissa. Myöhemmin syntyi käytännöllinen ajatus: "Eikö tämä kalibrointi olisi spesifinen käytetylle mikrofonille?" Tämä todellisen maailman käyttöskenaario paljasti sukupolven aikana puuttuvan virheen.ClaudiaSuosittelemme ensin kalibrointiasetusten tallentamistaKunkin laitteen, mutta pakko yksinkertaisempi ratkaisu: vain uudelleenkalibrointi, jos syöttölaite muuttuu. jälleen, ottaen huomioon käytännön käyttöympäristö (useimmat käyttäjät eivät todennäköisesti vaihda syöttölaitteita usein), valinta pysyä äänen kalibrointi vain 1 laite oli järkevää.


on
Nämä hetket korostavat, että tehokas vibe-koodaus ei ole passiivista hyväksyntää; se on aktiivinen vuoropuhelu, jossa kehittäjä ohjaa, kysyy ja joskus korjaa AI: n polkua.
on
Nämä hetket korostavat, että tehokas vibe-koodaus ei ole passiivista hyväksyntää; se on aktiivinen vuoropuhelu, jossa kehittäjä ohjaa, kysyy ja joskus korjaa AI: n polkua.

Nämä hetket korostavat, että tehokas vibe-koodaus ei ole passiivista hyväksyntää; se on aktiivinen vuoropuhelu, jossa kehittäjä ohjaa, kysyy ja joskus korjaa AI: n polkua.


Määrittele "Vibe": Kuinka Vaani ilmentää tätä lähestymistapaa


Heijastelemalla sitäVaaniKehitysmatka, se esitteli keskeisiä ominaisuuksia usein liittyvät vibe koodaus:


    on
  • Minimi etukäteen eritelmä: Aloitetaan tavoitteella, ei yksityiskohtainen suunnitelma.
  • on
  • AI ensisijaisena toteuttajana: AI kirjoitti suurimman osan alkuperäisestä koodista ja myöhemmistä ominaisuuksista / korjauksista.
  • on
  • Intuition ohjaamat hienosäädökset: Muutokset johtuivat usein subjektiivisesta testauksesta ("laatu tuntuu huonolta", "käyttöliittymän elementin pitäisi olla liikkuva") eikä muodollisista vaatimuksista.
  • on
  • Kehittyvä muotoilu: Sovelluksen arkkitehtuuri ja ominaisuussarja kehittyivät orgaanisesti ja reaktiivisesti. Esimerkiksi yksinkertaistamalla ytimen ääniputkea ja lisäämällä samanaikaisia ohjausobjekteja myöhemmin tai korvaamalla Tkinter PySide6:lla yksinkertaistamiseksi ja nykyaikaiseksi.
  • on
  • Debugging Delegation: Minun roolini bugien korjaamisessa oli usein raportoida oireista tarkasti, jotta AI voisi tuottaa parannuksen.
  • on


Tämä sopii hyvin yhteen nykyisen keskustelun kanssa, jossa vibe-koodaus määritellään sen nopeudella, riippuvuudella luonnollisesta kielestä ja joskus pienemmällä kehittäjän tarkastuksella.spektrinVaikkaVaaniAloitettu lähellä "puhdasta vibe" -päätä, hanke siirtyi luonnollisesti kohti enemmän rakennetta (pyytää modulaarisuutta ja koodin tarkistuksia), kun se kypsyi ja lähestyi julkaisua.


Beyond the Hype: Novel Insights from the Trenches Näytä tarkat tiedot


Työskentely niin tiiviisti AI: n kanssa täydellisessä projektissa tuotti jonkin verran tietoa, joka ylittää tyypillisen "AI on nopea, mutta tekee virheitä" kertomuksen.


    on
  1. AI:lla on yli-tekninen taipumus: toistuvasti AI: n ensimmäinen ratkaisu oli monimutkaisempi kuin tarpeen (esimerkiksi alkuperäinen arkkitehtuuri, tekstin puskurointi, konfiguraation käsittely).
  2. on
  3. Kehittäjä olennaisena suodattimena ja validoijana: Tämä ei ollut pelkästään passiivinen koodaus. Minun roolini kehittyi kriittiseksi validoijaksi, todellisuuden tarkistajaksi ja monimutkaisuuden suodattimeksi. Kysymys siitä, miksi AI oli yhtä tärkeä kuin uusien ominaisuuksien pyytäminen. Tehokas vibe-koodaus vaatii aktiivista ihmisen osallistumista.
  4. on
  5. Väistämätön muutos rakenteeseen: Pure vibe -koodaus sai projektin pois maasta uskomattoman nopeasti. Kuitenkin Vaanin ylläpito- ja julkaisuvalmiiksi tekeminen (erityisesti avoimen lähdekoodin osalta) vaati tietoista muutosta. Selkeä pyyntö modulaarisuuteen, koodin laadun analysointiin ja uudelleenkäsittelyyn tuli ratkaisevaksi myöhemmissä vaiheissa. Vibe-koodaus voi olla askel yksi, mutta perinteiset tekniikan periaatteet ovat edelleen tarpeen vankka ylläpitävä ohjelmisto.
  6. on
  7. Implisiittinen oppiminen vs. Syvä ymmärrys: Olen oppinut paljon palauttamalla AI: n koodin. Kuitenkin, koska AI usein toimitti korjauksia suoraan, minun ei aina tarvinnut saavuttaa syvällisintä ymmärrystä siitä, miksi tiettyjä monimutkaisia ongelmia esiintyi (kuten hienovaraiset kilpailuolosuhteet tai erityiset UI-puitteet). Tämä korostaa mahdollista kompromissia oppimisen nopeuden ja syvyyden välillä.
  8. on


Kaksikerroksinen miekka: punnita etuja ja haittoja


Pros:


    on
  • Blazing Speed: Prototyyppien valmistus ja alkuperäinen ominaisuuksien toteutus ovat henkeäsalpaavia nopeampia.
  • on
  • Monimutkaisuuden käsitteleminen: AI voi tuottaa koodia monimutkaisiin tehtäviin (kirjastojen integrointi, samanaikaisen käsittelyn käsitteleminen) nopeasti, mikä vähentää sisääntulon esteitä.
  • on
  • Boilerplate Buster: Kiusallinen asennus ja toistuva koodi käsitellään automaattisesti.
  • on
  • Pakotettu oppiminen (Debugging): AI-virheiden korjaaminen usein pakottaa ymmärtämään ongelma-alueen, joka epäsuorasti edistää oppimista.
  • on


Cons:


    on
  • Korkea hienovaraisten virheiden riski: Nopea sukupolvi ja reaktiivinen vianmääritys voivat helposti ohittaa edge-tapaukset, kilpailuolosuhteet tai syvemmät loogiset virheet.
  • on
  • Potentiaali huonoon arkkitehtuuriin: AI: n alkuperäiset suunnitteluvaihtoehdot voivat olla alioptimaalisia tai liian monimutkaisia, jos kehittäjä ei arvioi niitä kriittisesti.
  • on
  • Vaikea Debugging syklit: Korjaus koodi et ole kirjoittanut, varsinkin kun AI kamppailee taustalla ongelma (kuten monimutkainen tila tai samanaikaisesti), voi olla turhauttavaa ja aikaa vievää.
  • on
  • Kestävyysongelmat: Orgaanisesti kasvatettu, tekoälyn tuottama koodi voi tulla hämmentyneeksi ja vaikeaksi ymmärtää ilman tarkoituksellista uudelleenkäsittelyä ja rakenneuudistusta.
  • on
  • Taitojen eroosion mahdollisuus: Liiallinen riippuvuus voi haitata perustavanlaatuisen suunnittelun, vianmäärityksen, arkkitehtonisten taitojen ja ennen kaikkea inhimillisen intuition kehittämistä.
  • on
  • Muiden kuin toiminnallisten vaatimusten laiminlyönti: Turvallisuus, suorituskyky, resurssien hallinta ja kattava virheenkäsittely voidaan helposti jättää huomiotta toiminnallisuuden vauhdissa.
  • on


Taming the Vibe: Suositukset tehokkaaseen yhteistyöhön


Vibe-koodaus on epäilemättä tehokas työkalu, mutta se vaatii taitoa käyttää tehokkaasti. Jos olet kokenut kehittäjä ja harkitsee tätä lähestymistapaa, tässä ovat yleiset suositukseni, jotka perustuvat kokemukseeni rakentaaVaanija


  1. Validoi, älä vain hyväksy: Käsittele AI-koodia luonnoksena. Kysy arkkitehtonisia valintoja ("Miksi tämä malli on sopiva täällä?"). Pyydä vaihtoehtoja. Testaa perusteellisesti "onnellisen polun" ulkopuolella.
  2. on
  3. Toimi monimutkaisuuden suodattimena: Jos AI-ratkaisu näyttää liian monimutkaiselta tai käyttää epäselviä kuvioita ilman hyvää syytä, työntäkää taaksepäin.
  4. on
  5. Suunnitelma rakenteelle: Tunnista, että alkuperäinen vibe-koodattu prototyyppi todennäköisesti tarvitsee hienosäätöä. Budjettiaika uudelleenkäsittelyyn – modulaarisuuden parantaminen, selkeän dokumentaation lisääminen (kommentit, READMEs) ja koodin laadun parantaminen ennen kuin harkitset projektia vakaana tai valmiina julkaisemiseen.
  6. on
  7. Keskity ymmärtämiseen: Älä vain kopioi ja liitä AI-koodia. Käytä AI: ta opettajana. Kun se tarjoaa korjauksen tai monimutkaisen koodin, pyydä sitä selittämään sen takana olevaa perustelua.
  8. on
  9. Hyödynnä vakiintuneita työkaluja ja käytäntöjä: Kun tekoäly nopeuttaa iteraatiota, ohjelmiston laadun ylläpitäminen on entistä kriittisempää. Automatisoidut varhaiset testit – yksikkö- ja integrointitestit tarjoavat välttämättömiä turvaverkkoja regressiota vastaan. Yhdistä tämä koodin laatu- ja staattisten analyysityökalujen (kuten linterien ja analysoijien) kanssa virheiden, tyyliongelmien ja anti-mallien havaitsemiseksi, jotka voivat ohittaa sekä ihmisen että tekoälyä.
  10. on


Johtopäätös: Vibe Coding - Tehokas kumppani, ei korvaava


Minun matkakohteeniVantaanvahvisti, että AI-avustettu "vibe-koodaus" on enemmän kuin vain hype. Se muuttaa pohjimmiltaan kehitystyönkulkua, joka tarjoaa ennennäkemättömän nopeuden ideoiden kääntämisessä toiminnalliseen koodiin.

Vantaan


Se ei kuitenkaan ole taikaa. Se on yhteistyö, joka vaatii viestintää, kriittistä ajattelua ja valvontaa. AI toimii uskomattoman nopeana, osaavana, mutta joskus liian innostuneena avustajana. Se voi tuottaa monimutkaista logiikkaa sekunneissa, mutta voi jättää pois yksinkertaisimman ratkaisun tai jättää huomiotta todellisen maailman rajoitukset tai käytännöllisyyden. Se voi korjata vikoja välittömästi, mutta saattaa kamppailla vivahteiden kanssa.


Todellinen voima syntyy, kun kehittäjä osallistuu aktiivisesti – ohjaa tekoälyä, kyseenalaistaa sen oletuksia, validoi sen tuotantoa ja soveltaa perusohjelmistotekniikan periaatteita. Vibe-koodaus ei korvaa kehittäjän taitoja; se siirtyy kohti arkkitehtuuria, validointia, tehokasta kehotusta ja kriittistä integraatiota. Se on jännittävä, tehokas ja joskus haastava uusi tapa rakentaa, joka tarjoaa katsauksen tulevaisuuteen, jossa ihmisen luovuus ja tekoäly toimivat käsi kädessä, jota ohjaa hyvä tekninen tuomio.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks