CLAUDE_md for Speak-Memo

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

プロジェクト概要

Speak-Memoは音声入力をリアルタイムで整形・要約するウェブアプリケーションです。

主な機能(v2.0)

  1. 音声入力(生データ) - macOSの音声入力をそのまま表示(speak-memoは触らない)
  2. 誤字修正版 - speak-memoが誤字脱字を修正したテキスト
  3. 話題・要点 - リアルタイムで話題や要点を抽出
  4. 完成原稿 - 論理的に整理された文章を生成

技術スタック

  • フロントエンド:バニラJavaScript
  • バックエンド:Node.js(サーバー)
  • AI処理:OpenAI API(誤字脱字修正、要約、文章整理)
  • 個人辞書:corpus/mm/ディレクトリのテキストファイルから生成

コマンド

サーバー起動

# 環境変数OPENAI_API_KEYが必要
node server.js

個人辞書の更新

# corpus/mm/にテキストファイルを配置後
node analyze-corpus.js

辞書への単語追加

node update-dictionary.js

アーキテクチャ

ファイル構成

  • index.html - メインのHTMLファイル(4つの表示エリア)
  • style.css - スタイルシート
  • app.js - フロントエンドのJavaScript(v2.0)
  • server.js - Node.jsサーバー(OpenAI APIプロキシ、個人辞書適用)
  • personal-dictionary.json - 個人辞書データ
  • analyze-corpus.js - コーパスから辞書を生成
  • update-dictionary.js - 辞書に誤変換パターンを追加

データフロー

  1. ユーザーが音声入力エリアにテキストを入力
  2. 1秒のデバウンス後、自動的に処理開始
  3. 3つの処理が並列実行:
    • 誤字脱字修正(個人辞書適用)
    • 話題・要点抽出
    • 完成原稿生成
  4. 各エリアがリアルタイムで更新

個人辞書の仕組み

  • corpus/mm/ディレクトリ内のテキストファイルを解析
  • 頻出単語(ChatGPT、Claude、結城など)を抽出
  • 誤変換パターン(蔵人→Claude、結木→結城など)を定義
  • OpenAI APIコール時に参考情報として使用

バージョン履歴

  • v1.0 - 基本的な3エリア版(音声入力、話題・要点、完成原稿)
  • v1.1 - 個人辞書機能を追加
  • v1.2 - 個人辞書のバグ修正(プロンプトが表示される問題)
  • v2.0 - 4エリア版に拡張(音声入力の競合問題を解決)

注意事項

  • 音声入力エリア(生データ)はspeak-memoが変更しない
  • 誤字修正は個人辞書を優先的に適用
  • OpenAI APIキーは環境変数で管理
  • バージョン更新時は必ずバージョン番号を変更する

(2025年6月11日)