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. https://youtu.fi/EWvNQjAaOHw?t=4690&embedable=totta 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) joka on erittäin hidas), päätin rakentaa yhden itselleni. Minulla oli muutamia muita mahdollisia ideoita, mutta päädyin tähän, koska halusin rakentaa Voice Access on on on on on on Se on ohjelmointikieli, jonka tiedän hyvin - Python jotain, jota en käsitteellisesti tunne - äänen kaappaus ja käsittely, native UI Työkalu, jota todella käytän, eikä vain lelu jotain hyödyllistä yhteisölle, jonka voin avata Opi jotain uutta matkan varrella Päämäärä - Rakenna minimaalinen, yksityinen, yleismaailmallinen puhe-tekstin työpöydän sovellus on on on on on Minimal - tekee yhden asian todella hyvin - puhe-tekstissä Yksityinen - Mikään ei jätä konetta, kaikki offline Universal - Toimii minkä tahansa Windows-sovelluksen kanssa Cross Platform - Hyvä olla Minä kutsun sitä , joka tarkoittaa ”puhe” tai ”ääntä” ja (वाणी) Vantaan Sanskritin Vantaan Sanskritin Githubissa https://github.com/webstruck/vaani-speech-to-text asennuksen pip install vaani-speech-to-text demoa HTTPS://youtu.fi/HYVYYYY4?embedable=true Tämä artikkeli kertoo rakennuksen matkasta Se 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ää , paras (jälleen yleisen vibe) käytettävissä oleva koodausavustaja tuolloin. Se julkaistiin ja päätin käyttää sitä koodin tarkastelijana. Vaani Claude Sonnet 3.7 Näytönohjain Google Gemini 2.5 Pro BTW, tämä artikkeli on suurelta osin sanottu käyttämällä 😊 Vaani Ja sitten vibe. asennuksen : Claude Sonnet 3.7 AI Developer Lähde: Gemini 2.5 Pro Preview 03-25 AI Code Reviewer 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 sijaan ja Lisäksi vältin manuaalisia koodimuutoksia, joiden tarkoituksena oli julkaista avoimen lähdekoodin koodi yhteisön tarkasteluun. Pääosat Desktop Googlen työstudio 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 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. 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, Se tuotti kattavan sovellusrakenteen lähes välittömästi, täydellinen: Claude Sonnet 3,7 ääntä on on on on on on on on on System tray -integraatio Tkinterin avulla Globaali hotkey-tunnistus näppäimistön avulla Visuaalisen palautteen indikaattori Asetukset Persistance UI Puhetta tekstiin käyttämällä Vosk Perusohjaus Audio Manager Pääsisäänkäyntipaikka Pakkaaminen pyinstallerilla 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 on on on on Ominaisuuspyyntö / bug-raportti: kuvailisin toivottua ominaisuutta ("Lisätään kuuma sanan havaitseminen") tai ilmoittaisin ongelmasta ("Transcription-tulokset eivät näy!"). AI Code Generation: AI käsittelee pyyntöä ja tuottaa koodiosia, joskus muokkaamalla olemassa olevia toimintoja, joskus lisäämällä täysin uusia moduuleja. Integraatio ja testaus: Integroisin AI: n koodin sovellukseen ja testaisin toiminnallisuutta manuaalisesti. 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ä. Tämä kierros oli uskomattoman nopea, mutta myös raskas Emme noudattaneet suurta suunnittelua; olimme navigoimassa näkymällä, vain korjaamalla ongelmia. Tärkeimmät haasteet ilmestyivät nopeasti: reaktiivinen jälkeen on on on on on Callback Conundrums: Alustavat yritykset yhdistää sovelluksen eri osat (kuten äänitiedosto transkriptimoottoriin) eivät yksinkertaisesti kommunikoineet oikein. 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ä. 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. 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. 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 Vaikka osoitti vaikuttavia koodausominaisuuksia, saada useimmat asiat oikein aluksi, se ei ollut virheetöntä. Erityisesti arkkitehtonisten valintojen osalta useat tapaukset pakottivat meidät pohtimaan perusteellisesti uudelleen ja ehdotuksia. 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, Se 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. Claudia Claude on Claudia Claudia 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. Suosittelemme ensin kalibrointiasetusten tallentamista , 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ää. Claudia Kunkin laitteen on 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. 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ä Kehitysmatka, se esitteli keskeisiä ominaisuuksia usein liittyvät vibe koodaus: Vaani on on on on on on Minimi etukäteen eritelmä: Aloitetaan tavoitteella, ei yksityiskohtainen suunnitelma. AI ensisijaisena toteuttajana: AI kirjoitti suurimman osan alkuperäisestä koodista ja myöhemmistä ominaisuuksista / korjauksista. 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. 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. Debugging Delegation: Minun roolini bugien korjaamisessa oli usein raportoida oireista tarkasti, jotta AI voisi tuottaa parannuksen. 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. Vaikka Aloitettu 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. spektrin Vaani 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 on on on on 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). 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. 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. 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ä. Kaksikerroksinen miekka: punnita etuja ja haittoja Pros: on on on on on Blazing Speed: Prototyyppien valmistus ja alkuperäinen ominaisuuksien toteutus ovat henkeäsalpaavia nopeampia. Monimutkaisuuden käsitteleminen: AI voi tuottaa koodia monimutkaisiin tehtäviin (kirjastojen integrointi, samanaikaisen käsittelyn käsitteleminen) nopeasti, mikä vähentää sisääntulon esteitä. Boilerplate Buster: Kiusallinen asennus ja toistuva koodi käsitellään automaattisesti. Pakotettu oppiminen (Debugging): AI-virheiden korjaaminen usein pakottaa ymmärtämään ongelma-alueen, joka epäsuorasti edistää oppimista. Cons: on on on on on on on Korkea hienovaraisten virheiden riski: Nopea sukupolvi ja reaktiivinen vianmääritys voivat helposti ohittaa edge-tapaukset, kilpailuolosuhteet tai syvemmät loogiset virheet. Potentiaali huonoon arkkitehtuuriin: AI: n alkuperäiset suunnitteluvaihtoehdot voivat olla alioptimaalisia tai liian monimutkaisia, jos kehittäjä ei arvioi niitä kriittisesti. 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ää. Kestävyysongelmat: Orgaanisesti kasvatettu, tekoälyn tuottama koodi voi tulla hämmentyneeksi ja vaikeaksi ymmärtää ilman tarkoituksellista uudelleenkäsittelyä ja rakenneuudistusta. Taitojen eroosion mahdollisuus: Liiallinen riippuvuus voi haitata perustavanlaatuisen suunnittelun, vianmäärityksen, arkkitehtonisten taitojen ja ennen kaikkea inhimillisen intuition kehittämistä. Muiden kuin toiminnallisten vaatimusten laiminlyönti: Turvallisuus, suorituskyky, resurssien hallinta ja kattava virheenkäsittely voidaan helposti jättää huomiotta toiminnallisuuden vauhdissa. 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 rakentaa ja Vaani on on on on on 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. Toimi monimutkaisuuden suodattimena: Jos AI-ratkaisu näyttää liian monimutkaiselta tai käyttää epäselviä kuvioita ilman hyvää syytä, työntäkää taaksepäin. 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. 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. 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ä. Johtopäätös: Vibe Coding - Tehokas kumppani, ei korvaava Minun matkakohteeni vahvisti, 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 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.