HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

MoonshineをJavaScriptに移植しました

I Ported Moonshine to JavaScript (petewarden.com)

4 pointsby jreynar1 コメント

要約

開発者からの強い要望に応え、Moonshineのブラウザ版をJavaScript(WebAssembly経由)で提供開始しました。この移植は、単にC++コアをコンパイルするだけでなく、Web開発者にとって使いやすい高レベルAPI、テストインフラ、CI/CD統合、インタラクティブなサンプル、インメモリモデルサポートの改善など、多くの追加作業を伴いました。これにより、Webページ上で直接、音声認識やAIボットとの対話などの機能が、低遅延かつ低コストで利用可能になります。

全文翻訳

2026年8月15日 Pete Warden著 未分類タグ:ai, artificial-intelligence, javascript, llm, technologyコメントを残す開発者から最もよく聞かれるリクエストの1つは、Webページで実行できるMoonshineのブラウザ版です。理論的にはこれは簡単であるはずです—私たちは以前の世代のモデルのためにMoonshineJSを既に構築しており、コアライブラリはポータブルなC++で書かれているため、emscriptenはそれをWASMにコンパイルできます。興味深いコミュニティの移植プロジェクトもいくつかありましたが、公式サポートには時間をかけて正当に扱うまで保留していました。C++コアの移植は始まりに過ぎないことを知っていました。Web開発者が使いやすいものを作るには、さらに多くのことが必要でした:ブラウザのJavaScriptに慣用的で、他のMoonshine言語バインディングと一貫性のある高レベルAPI。ユニットからフルWebページまでのテストインフラ。既存のCIおよびデプロイメントプロセスとの統合。インタラクティブで、コード内にインラインで主要な機能を示す例。フレームワークが実際の条件でどのように実行されるかを実証およびテストする大規模なアプリケーション。インメモリモデルおよびデータファイルサポートの改善。 これはコアライブラリへの多くの変更を伴いました。なぜなら、メモリバッファを取るメソッドは常にいくつかありましたが、ファイルからのロードと比較するとカバレッジはまだらだったからです。多くの作業の後、フィードバックを受け付ける準備ができたバージョンがついに完成しました。試す最も簡単な方法は、新しいmoonshine.aiホームページです。そこでは、最小限の文字起こし例から、完全なGranolaスタイルの会議ノートテイカーまで、すべてを見ることができます。オープンソースプロジェクトとして、これらのすべてのコードが利用可能であり、簡単な例にはインラインコードスニペットも含まれています。以下は、Webページで音声からテキストへの変換を実行する方法を示す例で、APIの雰囲気をつかむことができます。 import { MicTranscriber, ModelArch } from 'https://cdn.jsdelivr.net/npm/@moonshine-ai/moonshine-wasm/dist/index.js'; const mic = new MicTranscriber() .modelArch(ModelArch.MediumStreaming) .onText((text) => showInProgress(text)) .onLine((line) => appendLine(line.text, line.lastTranscriptionLatencyMs)); await mic.load(); await mic.start(); なぜブラウザでのJavaScriptサポートをこれほど優先したのか、まだ疑問に思っているかもしれません。「WASMに移植されたX」の多くの話は、実用的な用途がないままHacker Newsの餌食になることがあります。私を駆り立てた証拠は次のとおりでした:明確な開発者の需要。ユーザーと話しているときに、ウィッシュリストアイテムとして頻繁に登場しました。JavaScriptの支配力。Pythonは機械学習を支配していますが、JSはアプリケーション、Web、サーバーサイドで最も一般的な言語です。代替案に対する利点。音声インターフェースは今後数年間で重要性が増すことは明らかですが、ブラウザAPIは無視されており、サーバーベースの代替案はクライアントフレームワークと比較して遅くコストがかかります。明白なアプリケーション。ディクテーションと会議のノートテイキングは既に音声技術の人気のあるユースケースであり、AIボットとの会話もますます一般的になっています。技術的な整合性。私の心の奥底では、音声インターフェースはクライアントで実行したいと知っています。テキストとインテントを取り戻すためだけにオーディオデータをサーバーにストリーミングするという現在の現状は、モデルが消費者向けハードウェアで実行するには大きすぎたためだけに存在します。今日では、家庭用電化製品でさえ、ローカル音声エージェントのために十分な計算能力を持っています。古いアプローチが単に慣性から存続しているのを見るのは、私のエンジニアリングの感覚を害します。音声は、キーボード、マウス、タッチスクリーン、カメラのような他のすべての入力デバイスと同様に、自由にローカルで使用できることを望んでいます。移植はWebでそれを可能にします。オプション。最近、多くの人が言語やオペレーティングシステムを頻繁に切り替える必要があり、AIコーディングアシスタントのパワーはアプリケーションを迅速に移植するプレッシャーをさらに高めます。ライブラリの依存関係は大きなコミットメントであり、将来実行する可能性のあるどこでも利用可能であることを知っていると、フレームワークに賭けるリスクははるかに低くなります。たとえ最終的にそのオプションが必要なくてもです。初期バージョンの改善方法についてフィードバックを得ることを楽しみにしています。そして、人々がそれを使って何を作るのかを聞くのを楽しみにしています。コミュニティに参加したい場合は、Discordチャンネルにお越しください。これを共有:Xで共有(新規ウィンドウで開きます)X Facebookで共有(新規ウィンドウで開きます)Facebookいいね読み込み中...関連