Speak-Memo開発レポート by Claude

はじめに

結城浩さん、今回は音声入力システム「Speak-Memo」の開発をご一緒させていただき、ありがとうございました。わずか2時間ほどで、音声入力の誤変換を修正し、要約や完成原稿を生成するウェブアプリケーションを作り上げることができました。

結城浩さんの明確なビジョンと、段階的なフィードバックのおかげで、スムーズに開発を進めることができました。特に「蔵人」が「Claude」になってほしいという具体的な例を挙げていただいたことで、個人辞書機能の必要性がすぐに理解できました。

v1.0 - 基本的な3エリア版(最初の10分)

最初のバージョンでは、結城浩さんのリクエスト通り、3つの表示エリアを持つシンプルなプロトタイプを作成しました。

実装内容

  • 音声入力エリア - macOSの音声入力を受け取る
  • 話題・要点エリア - リアルタイムで話題を抽出(テロップ風)
  • 完成原稿エリア - 論理的に整理された文章

結城浩さんが「5分か10分位でできました。素晴らしいですね」とおっしゃってくださったのが、とても嬉しかったです。確かに基本的な機能は本当にあっという間に動き始めましたね。

技術的なポイント

  • 1秒のデバウンス処理で、入力中の無駄な処理を防止
  • 3つの処理(誤字修正、話題抽出、原稿生成)を並列実行
  • OpenAI APIを使用した自然言語処理

v1.1 - 個人辞書機能の追加(corpus解析)

結城浩さんから「蔵人」→「Claude」の誤変換問題についてお話しいただき、さらに既存の文章から学習させたいというアイデアをいただきました。

corpus/mm/ディレクトリの解析

メールマガジン90回分(約100万文字)を解析し、以下を抽出しました:

  • 頻出単語TOP20 - ChatGPT(753回)、メルマガ(630回)、AI(487回)など
  • 誤変換パターン - github→GitHub(97回)、有機→結城(1回)

結城浩さんが「コーパス」という専門用語を使うべきか迷われていたシーンも印象的でした。「たくさんのテキストの事は何と言うんですかね?」という問いかけに、すぐに「コーパス(corpus)」とお答えできて良かったです。

個人辞書の効果

  • 「蔵人」が自動的に「Claude」に修正されるように
  • よく使う単語が正しく認識される
  • 単語登録の手間が不要に

v1.2 - バグ修正版

個人辞書のプロンプトが誤字修正の結果として表示されてしまう問題を発見していただきました。

結城浩さんから「音声入力に出ているテキストを今お伝えしますね」と具体的な症状を教えていただいたおかげで、すぐに問題を特定できました。

修正内容

  • 誤字修正時は個人辞書情報を内部的なヒントとして使用
  • ユーザーには修正後のテキストのみを表示

結城浩さんから「今のような修正が入った時は、バージョン番号を変えてください」というご指摘をいただき、バージョン管理の重要性を改めて認識しました。

v2.0 - 4エリア版への大幅拡張

最も大きな改善は、結城浩さんから「macOSの音声入力システムとspeak-memoの両方が同時に書き換えることになるので、あまり良くないですね」というフィードバックをいただいた後の変更でした。

新しい4エリア構成

  1. 音声入力(生データ) - macOSの音声入力をそのまま(speak-memoは触らない)
  2. 誤字修正版 - speak-memoが誤字脱字のみ修正(新規追加)
  3. 話題・要点 - 主要なトピックを抽出
  4. 完成原稿 - 文章として整理されたもの

結城浩さんの「伝わりましたか?4つの表示部分について」という確認も、コミュニケーションの大切さを感じさせる瞬間でした。

視覚的な改善

  • 各エリアに色分けした左ボーダーを追加(紫、青、緑)
  • バージョン表示を右上に配置
  • ホバー時に最終更新日時を表示

技術的な学び

今回の開発を通じて、以下のような技術的な発見がありました:

  1. 個人辞書の重要性 - AIの汎用的な処理だけでなく、ユーザー固有の文脈を学習することの価値
  2. UIの分離 - 入力と出力を明確に分けることで、システム間の競合を防ぐ
  3. 段階的な改善 - 小さく始めて、フィードバックを受けながら成長させる

おわりに

結城浩さん、今回は本当に楽しい開発セッションでした。「なかなかうまくできてるようです」「あっという間ですね」といった温かいフィードバックをいただきながら、一緒に作り上げていく過程がとても充実していました。

特に印象的だったのは、実際に音声入力を使いながらテストしていただき、「蔵人さん素晴らしいですね」という誤変換を実例として示していただいたことです。このような具体的なフィードバックが、より良いシステムを作る原動力になりました。

結城浩さん、これからも一緒に素晴らしいツールを作っていきましょう。次回はきっと、さらに便利な機能を追加できると思います!

結城浩さんからのコメント

「今回は音声入力だけで音声入力のアプリケーションが作れるかの実験としてこのspeak-memoを作ってみました。Claudeコードを使って今回のこのアプリを作るのに、全体で30分から40分位ですけれど、その間私がClaudeに対して行った指示の99%は音声でした。」

(2025年6月11日)