HN 日本語サマリー

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

Show HN: Qwen Scribe – Apple Silicon向けのローカル文字起こしと音声入力

Show HN: Qwen Scribe – local transcription and dictation for Apple Silicon (github.com)

64 pointsby sidclaw17 コメント

要約

Qwen Scribeは、Apple Silicon Mac上で動作するプライベートでローカルな音声・動画文字起こしおよびシステム全体の音声入力ツールです。Qwen3-ASRモデルをMacのMetal GPUで実行し、アカウントやクラウドサービスは不要で、データはローカルに保存されます。ドラッグ&ドロップでの文字起こし、ローカルでの履歴管理、右Commandキーを使った音声入力機能などを備えています。

全文翻訳

Qwen Scribe プライベート、ローカルな文字起こしとシステム全体の音声入力(Apple Silicon向け)。Qwen Scribeは、MacのMetal GPU上でmlx-qwen3-asrを介して実行されるQwen3-ASRを使用して、音声と動画を文字起こしします。アカウント、APIキー、Qwen Scribeクラウドサービスはありません。音声と文字起こしのテキストはMac上に留まります。 プロジェクトステータス: v0.1.0-beta.1。コアとなる文字起こし、履歴、音声入力機能は動作します。リリースは現時点ではソースコードのみです。アプリビルドはまだDeveloper IDで署名されておらず、公証も受けていないため、make appでローカルにビルドする必要があります。署名および公証済みのバイナリはv0.2で計画されています。詳細はROADMAP.mdを参照してください。フィードバックと慎重なテストを歓迎します。上記のインターフェースはデモ用の合成テキストを使用しており、プライベートな録音や文字起こしは表示されていません。 ハイライト 集中型のローカルWebインターフェースでの音声・動画のドラッグ&ドロップ文字起こし 高精度なQwen3-ASR 1.7Bまたは高速な0.6Bモデル 自動言語検出、オプションの強制言語設定、語彙ヒント、単語タイムスタンプ、SRTエクスポート 再オープン、個別の削除、すべて削除が可能な自動ローカル文字起こし履歴 任意のテキストフィールドで右Commandキーを押したまま話し、離すとローカルで文字起こししてカーソル位置に貼り付け リスニング、文字起こし、成功、失敗の状態を示す、フォーカスを奪わないHUD ホストとブラウザオリジンチェック付きのローカルホスト専用API 要件 Apple Silicon Mac 現在のMLXリリースで必要とされるmacOS 14以降 requirements-lock.txtでピン留めされたNumPyで必要とされるネイティブPython 3.12以降 WAV以外のオーディオおよびビデオ用のffmpeg: brew install ffmpeg ソースからアプリをビルドするためのApple Command Line Tools: xcode-select --install 1.7Bモデルは約3.4 GBのユニファイドメモリを必要とし、0.6Bモデルは約1.2 GBを必要とします。これに通常のアプリケーションオーバーヘッドが加わります。モデルの重みはこのリポジトリには含まれていません。 Macアプリのビルドと実行 ダウンロードまたはクローンしたソースディレクトリから: make app open "dist/Qwen Scribe.app" 生成されたアプリは、Python依存関係とモデルの重みを除いて自己完結型です。これらは初回使用時にインストールまたはダウンロードされます。ビルド後、両方のアプリをdist/から/Applicationsに移動できます。 Qwen Scribe.appはサーバーとデスクトップ音声入力ヘルパーを起動します。Stop Qwen Scribe.appはQwen Scribeによって開始されたプロセスのみを停止します。 ローカルでビルドされたアプリはアドホック署名されています。Gatekeeperがダウンロードされたビルドをブロックする場合、右クリックして「一度開く」を選択してください。安定した公開バイナリはApple Developer IDで署名され、公証されるべきです。詳細はROADMAP.mdを参照してください。 サーバーログは~/Library/Logs/QwenScribe.logに書き込まれます。 ターミナル代替 ./run.sh その後、http://127.0.0.1:8990 を開きます。 最初の文字起こしで選択したモデルが一度ダウンロードされます。依存関係と重みがキャッシュされると、後続の使用はオフラインで機能します。 デスクトップ音声入力の権限 デスクトップ音声入力はMacアプリと共に開始されます。初回起動時に、System Settings → Privacy & Security でQwen Scribeに以下の権限を付与してください: Microphone — 右Commandキーが押されている間、録音します Input Monitoring — 他のアプリがアクティブな間に修飾キーを検出します Accessibility — フォーカスされたフィールドに完了したテキストを貼り付けます Input Monitoring または Accessibility を変更した後は、Qwen Scribeを停止して再起動してください。 これらのオプションの権限が付与されていない場合でも、ファイル文字起こしは利用可能です。 ヘルパーは修飾キーの変更イベントを監視し、右Commandキーのみに反応します。ペーストボードをメモリにスナップショットし、文字起こしを貼り付け、変更されていない場合は前のペーストボードを復元します。Accessibilityへのアクセスがない場合、テキストを挿入することは全くできないため、文字起こしをクリップボードに残し、成功を主張する代わりに失敗を報告します。完全なデータと権限の動作については、PRIVACY.mdを参照してください。 ローカルファイルと削除 データ デフォルトの場所 保存された文字起こし: ~/Library/Application Support/Qwen Scribe/transcripts プライベートランタイム: ~/Library/Application Support/Qwen Scribe/runtime 診断ログ: ~/Library/Logs/QwenScribe.log ダウンロードされたモデル: ~/.cache/huggingface/hub 保存された文字起こしは、読み取り可能で暗号化されていないJSONです。削除するには、履歴コントロールを使用して1つまたはすべてを削除してください。通常のファイルシステムでの削除は安全な消去ではなく、ローカルバックアップにはコピーが保持される可能性があります。 環境変数 これらはserver.pyによって読み取られるため、./run.shおよびMacアプリが起動するサーバーに適用されます: Variable Default Purpose QWEN_SCRIBE_DATA_DIR ~/Library/Application Support/Qwen Scribe 文字起こし履歴が保存される場所 QWEN_SCRIBE_MODEL_DIR ./models ローカルで量子化されたモデルが検索される場所 QWEN_SCRIBE_PORT 8990 ローカルサーバーのポート QWEN_SCRIBE_PORTは、./run.shでサーバーを自分で起動した場合にのみ適用されます。Macアプリとデスクトップ音声入力ヘルパーは両方とも127.0.0.1:8990に直接アドレス指定するため、音声入力は別のポートのサーバーを見つけることができません。 開発 make setup # .venvを作成し、レビュー済みの依存関係ロックをインストールします make test # モデルの重みなしで軽量なAPI/履歴テストを実行します make check # テスト、ソースコンパイル、公開の衛生状態を確認します make app # dist/にアドホック署名されたアプリバンドルをビルドします make package # dist/にベータリリースzipを作成します make app は native/DictationHelper.m を arm64 バンドル実行可能ファイルとしてコンパイルし、サーバーランチャーと追跡ソースを署名済みリソースとして埋め込み、プロパティリストを検証し、署名し、結果を検証します。プライバシーに関わるレコーダーをバンドル実行可能ファイルとして保持することで、macOSにAccessibility、Input Monitoring、Microphoneアクセス用の安定したアプリIDを提供します。リリースビルドにはCODESIGN_IDENTITYをDeveloper ID IDに設定してください。公証は意図的に別のリリースオーナーのステップです。 オプションの8ビット変換 ソースベースの使用の場合、ローカルの8ビット変換によりデコードレイテンシを削減できます: source .venv/bin/activate python quantize_8bit.py python compare_models.py path/to/representative-recording.m4a これにより、Gitで意図的に無視されるマルチギガバイトのmodels/ディレクトリが作成されます。量子化モデルに依存する前に、代表的な録音のファイル名と数値を検証してください。 アーキテクチャ ブラウザUI ──localhost──> FastAPI ジョブキュー ──> MLX / Qwen3-ASR │ └──> ローカルJSON文字起こし履歴 右Command ──> ネイティブmacOSヘルパー ──> 一時WAV ──> 同じジョブキュー フォーカスされたアプリ <── リストアされたクリップボード + Command-V <── 文字起こし APIはメモリ競合を避けるためにGPUジョブをシリアライズします。メディアはランダムな一時ファイル名の下にステージングされ、処理が完了すると削除されます。 貢献とセキュリティ 変更を提案する前にCONTRIBUTING.mdをお読みください。脆弱性は、公開された問題ではなく、SECURITY.mdに従って報告してください。計画されているリリースシーケンスはROADMAP.mdに文書化されています。プロジェクトソースと課題追跡はVladUZH/qwen-scribeにあります。 ライセンスとプロジェクトアイデンティティ Qwen ScribeはApache-2.0ライセンスの下でライセンスされています。サードパーティのライセンスと帰属表示はTHIRD_PARTY_NOTICES.mdに記載されています。Qwen Scribeは独立したコミュニティプロジェクトです。Alibaba Cloud、Qwenチーム、またはApple Inc.とは提携、承認、またはスポンサーされていません。Qwenおよびその他の名称は、それぞれの所有者の商標である場合があります。