187 測定値 新しい歴史

My Journey Down the Rabbit Hole of Vibe コード

Nilesh Raghuvanshi10m2025/04/22
Read on Terminal Reader

長すぎる; 読むには

私の旅のビル「Vaani」に潜入 - Vibe コーディングを使用した最低限のプライベートでユニバーサルなスピーチ トップ デスクトップ アプリです. It is a practical look at the AI collaboration experience: the speed, the battles, the insights, and the lessons learned.
featured image - My Journey Down the Rabbit Hole of Vibe コード
Nilesh Raghuvanshi HackerNoon profile picture
0-item
1-item
2-item

Building Vaani (वाणी) - A Minimum, Private, Universal Speech-to-Text Desktop Application(ビルディング・ヴァーニ)


数日前に、私はアンドレイ・カーパシーがVibe Codingを紹介した最新のビデオを宗教的に見ていました。


私はしばらくの間AIコードアシスタントを使用していますが、私はまだコードプロセスに非常に関与しています。AIは主にスマートな自動完成として機能し、退屈なボイラープレートのものを取り、ドクストリングを書くか、あるいは昨日書いたコードを時々説明し、快適に忘れていました。Vibeコードは、自動完成から実際の共同創造への卒業のようでした - AIのアシスタントからAIの実際のコードパートナーへの移行。


この潜在的なパラダイムの変化に魅了され、私はそれを最初の手で体験することに決めた。同じビデオで、Andrejは、彼がコマンドライン上のアプリケーションとLinuxとの相互作用のために、主にWindowsで働いています。私はWindowsのための良いオプションを見つけることができなかったので、コマンドライン上のアプリケーションとLinuxとの相互作用のために、私は主に複数のアプリケーションで動作する普遍的な音声テキストツールとして機能するMacのいくつかのオプションを提案しました。Voice Accessスーパー遅い)で、私は自分自身のために1つを構築することに決めました. I had a few other potential ideas but settled for this as I wanted to build


  • よく知っているプログラミング言語:Python
  • 概念的に知らないもの - オーディオキャプチャと処理、ネイティブUI
  • 本当に使いたい道具であって、おもちゃではない。
  • オープンソースで使えるコミュニティに役立つ何か
  • 途中で新しいことを学ぶ


目標 -最低限のプライベートで普遍的なスピーチテキストデスクトップアプリケーションを構築する


  • ミニマル - Does one thing really well - speech-to-text
  • プライベート - Nothing Leaves My Machine, Everything Offline
  • Universal - 任意の Windows アプリで動作するべき
  • クロスプラットフォーム - Good to Have


I call itヴァンニ (वाणी)「Speech」または「Voice」を意味する。サンスクリットで。

ヴァンニサンスクリット


GitHub

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


設置

pip install vaani-speech-to-text


デモ


この記事は、建物の旅の記録です。Vaaniこれは、Vibeコードが実際にどう感じるかについての実践的な探索です - エキサイティングなスピード、予期せぬブロック、真の洞察の瞬間、AIと密接に協力するときに学んだレッスン。ジョン・ソニー 3.7, the best (again, based on general vibe) available coding assistant at that time. 同時に、Google ジェミニ 2.5 Proリリースされ、コードレビューとして使用することにしました。


BTW、この記事は主に使用Vaaniハイ。


VIBEにしよう。

THE SETUP


AI Developerクロード・ソネット 3.7

AI Code Reviewerジェミニ 2.5 Pro Preview 03-25


AI 開発者と AI コードレビューは、常に各プロンプトのコンテキストとして完全なコードを持っていました. I initiated a fresh conversation once a certain goal is achieved. e.g. a bug is fixed or a feature is implemented and working successfully. I did this to manage the context window and ensure the best AI performance. I did not use any agentic IDEs (e.g. Cursor, Windsurf, etc.) and instead relied onクリス・デスクトップそしてGoogle AI スタジオまた、コミュニティの審査のためにオープンソースのコードをリリースする意図をもって手動コードの変更を避けた。


The Initial Spark: From Zero to Scaffolding in Seconds オリジナルタイトル


したがって、どこから始めようか? 伝統的に、これは細心のプランニングを伴う。 たとえば、コンポーネントの概要、インターフェイスを設計し、ライブラリを選択し、プロジェクトの構造を設定する。


私はWindowsユーザーのためのPythonで軽量なスピーチからテキストのアプリを作成したいです。アイデアは、Windowsユーザーがあらゆるアプリケーションで音声を使用して素早くものを書くのを助けることです. 例えば、Word、PowerPoint、ブラウザなど. アプリケーションは、プライバシーのためにインターネットなしでローカルで動作する必要があります. ホットキーまたはホットワードを使用してアクティベートする必要があります.

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.


自分の評判に忠実に、ジョン・ソニー 3.7完全に berserk となり、ほぼ即座に包括的なアプリケーション構造を生成し、以下を含む:


  • Tkinter を使用した System Tray 統合
  • グローバルホットキー検出用キーボード
  • ビジュアルフィードバック指標 UI
  • Persistence UI の設定
  • Vosk を使用してテキストへのスピーチ
  • 基本オーディオマネージャー
  • 主な入場ポイント
  • パッケージ:Pyinstaller


初期段階では、Vibe コーディングの魅力を完璧に捉えました:デザインと基本的なコーディングの時間を回避し、アイデアから直ちに実感可能な (たとえバグな) アプリケーションの骨格に移動しました。


『Riding the Waves: The Core Iteration Loop』


基本的なコンポーネントが置かれると、実際の開発は別々のリズムに定着することから始まりました - AI サポートされた Vibe コーディングのコア ループ:


  1. Feature Request / Bug Report: I would describe a desired feature ("Let's add hot word detection") or report a problem ("The transcription results are not appearing!"). 頻繁に、バグレポートにはエラーログやスクリーンショットが含まれています。
  2. AI Code Generation: AI はリクエストを処理し、コードのスナップを生成し、時には既存の機能を変更し、時にはまったく新しいモジュールを追加します。
  3. 統合&テスト:AIのコードをアプリケーションに統合し、機能性を手動でテストします。
  4. フィードバック / リファインメント: もしそれが効いたら、私たちは進めました。 (頻繁でした!), 私はステップ1に戻り、より具体的なエラーの詳細を提供したり、望ましくない行動を説明します。


The Core Iteration Loop


このループは信じられないほど速かったが、重い。反応We were not following a grand design; we were navigating by sight, fixing problems only. 我々は偉大なデザインに従っていなかった。急速に課題が浮かび上がりました:


  • Callback Conundrums: アプリケーションの異なる部分を接続する最初の試み(オーディオ入力がトランスクリプションエンジンに含まれるように)は、単に正しくコミュニケーションに失敗しました。
  • 競合の複雑さ: UI に背景タスク (継続的なオーディオ処理など) を統合すると、共有リソースへのアクセスや間違ったトレードから UI を更新することに関連する「古典的な」共通の問題が発生する - AI は列と同期メカニズムを含むソリューションを提案しましたが、しばしば正しい方法を得るために複数の試みが必要でした。
  • UI State Persistence: ユーザーの設定を信頼できるように保存してロードするための設定ウィンドウを取得することは驚くほど困難でした。チェックボックス、スライダー、ドロップダウンなどの簡単なコントロールが正しく反映され、その状態を保存することを確保するには、大幅なバックアップが必要でした。
  • 継続的なスピーチ処理:継続的なスピーチ処理システムを構築するよう求められたとき、AIは継続的なキャプチャ、セグメント順序、並行処理、順序付けの挿入、コンテキスト認識などを含む圧倒的に洗練されたソリューションを開発しました。


この段階では、I.I.のリターションのための原発力だけでなく、あなたの観察に基づいて自身のエラーを修正するためのAIに依存する別のエンティティティによって生成されるデバッグコードの潜在的な混乱も強調しました。


「Wait, Why Are We Doing This? - Pivots and Necessary Reality Checks」


たとえクラウド印象的なコード能力を示し、最初からほとんどのことを正しく行うことは間違いのないことでした。特に建築的な選択に関しては、いくつかの事例が私たちを根本的に考え直すことを強要しました。Claudeの提案です。クラウドソリューションを過剰にエンジニアリングし、それを一般的なものにしようと極めて複雑にしているように見えた。クラウド高度なデータバッファリングクラスを提案しました。それは機能しましたが、過度に複雑に感じました。この複雑さの必要性に疑問を投げかけると、私たちは自然な休憩を検出することによってより単純な直接実装に転換しました。


もう一つの例は、オーディオカリブレーションを実装し、(ジェミニーが効率性の問題を正しく指摘した後)それを設定で実行したときでした。クラウド最初に、カリキュラムの設定を保存することを提案しました。デバイスまた、実用的な使用の文脈を考慮して(ほとんどのユーザーが頻繁に入力デバイスを切り替えることは不可能です)、たった1台のデバイスのためのオーディオの校正を継続することを選択したのは意味がありました。


これらの瞬間は、効果的なVibeコードは被動的な受け入れではなく、開発者がAIの軌道をガイドし、質問し、時には訂正するアクティブな対話であることを強調します。

これらの瞬間は、効果的なVibeコードは被動的な受け入れではなく、開発者がAIの軌道をガイドし、質問し、時には訂正するアクティブな対話であることを強調します。

これらの瞬間は、効果的なVibeコードは被動的な受け入れではなく、開発者がAIの軌道をガイドし、質問し、時には訂正するアクティブな対話であることを強調します。


「Vibe」を定義する: Vaaniがこのアプローチをどのように体現したか


reflecting on theVaani開発の旅では、Vibeコードとよく関連するコアの特徴を示した。


  • 最小限の事前仕様:詳細な青図ではなく、目標から始まります。
  • AIは、初期のコードとその後の機能/修正の大半を書いた。
  • 直感駆動の改良:変更はしばしば主観的なテスト(「品質が悪く感じる」「UI要素が移動可能でなければならない」)によるものであった。
  • 新たなデザイン: アプリケーションのアーキテクチャと機能セットは有機的かつ反応的に進化しました. たとえば、コアオーディオパイプラインを簡素化し、後で並列コントロールを追加したり、Tkinter を PySide6 に置き換えたりして (threading) の簡素化と近代的な外観を提供しました。
  • バグの修正における私の役割は、しばしばAIが治療を生成できるように、正確に症状を報告することでした。


これは、そのスピード、自然言語への依存、時には開発者による監視の程度が低いことにより、vibe coding を定義する現在の議論とよく一致しています。スペクトルたとえVaani「純粋な雰囲気」の端に近づいて始まったプロジェクトは、自然にリリースに近づいて成熟し、より多くの構造(モジュラリゼーション、およびコードレビューを要求する)に向かって移行した。


『Beyond the Hype: Novel Insights from the Trenches』


完全なプロジェクトでAIと密接に協力することで、典型的な「AIは速いが間違いを犯す」という物語を超える洞察が得られました。


  1. AIには過度にエンジニアリングの傾向があります: 繰り返し、AIの最初のソリューションは必要以上に複雑でした(例えば、初期アーキテクチャ、テキストバッファリング、構成処理)。
  2. 重要なフィルターと検証者としての開発者:これは単なる受動的なコードではありませんでした。私の役割は、重要な検証者、現実検証者、複雑性フィルターの役割に発展しました。なぜこのアーキテクチャが新しい機能を要求するのと同じくらい重要だったのか、AIに疑問を投げかけました。
  3. 構造への必然的な転換:Pure vibe コーディングはプロジェクトを信じられないほど速く完成させた。しかし、Vaani を維持可能でリリース可能にするためには(特にオープンソース向け)意識的な転換が必要だった。Modularization、コード品質分析、および refactoring を明示的に要求することは、後期段階で重要になった。Vibe コーディングは第一段階かもしれないが、強力な維持可能なソフトウェアには従来のエンジニアリング原則が必要である。
  4. Implicit Learning vs. Deep Understanding: I learned a lot by debugging the AI's code. However, because the AI often provided fixes directly, I didn't always need to the deepest level of understanding of why certain complex issues occurred (like subtle race conditions or specific UI framework quirks). これは、学習の速度と深さの間の潜在的なバックアップを強調しています。


The Double-Edged Sword: Weighing the Pros and Cons


Pros:


  • Blazing Speed: プロトタイプと初期機能の実装は驚くほど速い。
  • AIは、複雑なタスク(ライブラリを統合し、同時に処理する)のためのコードを迅速に生成し、入力の障壁を下げることができます。
  • Boilerplate Buster: トラブルな設定と繰り返しコードは自動的に処理されます。
  • 強制学習(デバッグを通じて):AIのエラーを修正することは、しばしば問題の領域を理解し、間接的に学習を促進する。


Cons:


  • 微妙なバグの高いリスク: 迅速な生成と反応的なデバッグは、簡単にエッジケース、レース条件、またはより深い論理的な欠陥を逃すことができます。
  • 貧しいアーキテクチャの可能性:AIの初期の設計選択は、開発者によって批判的に評価されない場合、最小限または過度に複雑である可能性があります。
  • 困難なデバッグサイクル: あなたが書かなかったコードを修正する、特にAIが潜在的な問題(複雑な状態や同時に)と戦っているとき、それは frustrating し、時間がかかります。
  • メンテナビリティの懸念:有機的に栽培されたAI生成コードは、意図的な再構築と構造化なしに混乱し、理解しにくい可能性があります。
  • スキル侵蚀の可能性:過剰な依存は、基本的な設計、デバッグ、建築スキル、そして最も重要なのは人間の直感の開発を妨げる可能性があります。
  • 非機能的要件 無視: セキュリティ、パフォーマンス、リソース管理、および包括的なエラー処理は、機能の急いで簡単に無視することができます。


「Taming the Vibe: Recommendations for Effective Collaboration」


Vibe コーディングは間違いなく強力なツールですが、効率的に操作するためのスキルが必要です. あなたが経験豊富な開発者で、このアプローチを検討している場合は、私のビルディングの経験に基づいて私の一般的な勧告があります。Vaaniで。


  1. Validate, Don't Just Accept: Treat AI code as a draft. Question its architectural choices ("Why this pattern? Is it appropriate here?"). 代替案を求める。
  2. 複雑性フィルターとして機能する: AI ソリューションが過度に複雑に見えるか、あるいは正当な理由がなく曖昧なパターンを使用している場合、後押ししてください。
  3. Plan for Structure: Recognize that the initial vibe-coded prototype will likely need refinement. Budget time for refactoring – improving modularity, adding clear documentation (comments, READMEs), and enhancing code quality before considering a project stable or release-ready. プロジェクトを安定またはリリース準備を検討する前に、初期のvibe-codedプロトタイプの改良が必要であることを認識してください。
  4. 理解に焦点を当てる: AI コードをコピーして挿入しないでください. AI をチュートリアルとして使用してください. 修正や複雑なコードを提供するとき、その背後にある論点を説明するように依頼してください. 「なぜ」を理解することは重要です。
  5. 既存のツールと実践の活用: AI が回復を加速するにつれて、ソフトウェアの品質を維持することはさらに重要になります。 早期の自動テスト - ユニットおよび統合テストは、回帰に対する不可欠なセキュリティネットワークを提供します。これをコードの品質と静的分析ツール(ランターや分析機など)と組み合わせて、ヒトとAIの両方を超える可能性のあるバグ、スタイルの問題、および反パターンを捕捉します。


結論:Vibe Coding - A Powerful Partner, Not a Replacement


私の旅の建物ヴァンニAIが支援する「vibe coding」は単なるハイプ以上のものだということを確認した。開発ワークフローを根本的に変え、アイデアを機能コードに翻訳するのに前例のないスピードを提供した。

ヴァンニ


しかし、それは魔法の棒ではありません。コミュニケーション、批判的思考、監督を必要とするコラボレーションです。AIは信じられないほど速く、熟練したが、時には過度に熱狂的なアシスタントとして機能します。それは数秒で複雑な論理を生成することができますが、最も単純な解決策を逃すか、現実世界の制約や実用性を無視することができます。


本当のパワーは、開発者が積極的に関わるときに出現します - AI を指導し、その仮定を疑問視し、その出力を検証し、基本的なソフトウェアエンジニアリング原則を適用します。Vibe コードは開発者のスキルを置き換えるのではなく、アーキテクチャ、検証、効果的なプロンプト、および批判的な統合に向かって移動します。

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks