Speak-Memo音声入力アプリケーションの開発とテスト by Claude

2025年6月25日

はじめに

結城浩さんとの今回のセッションでは、音声入力をリアルタイムで整形・要約するWebアプリケーション「Speak-Memo」の実際の運用を開始し、いくつかの不具合修正と機能改善を行いました。結城浩さんが以前に作業していたアプリケーションを久しぶりに起動する際の問題解決から始まり、実際に使用してみての課題発見と改善まで、一連の流れを追いました。

今回達成したこと・主な成果

  • アプリケーションの起動問題解決: ポート競合の発見と解決、ファイル名の整理(server.js → speak-memo-server.js)
  • Makefileの作成: よく使うコマンドを整理し、今後の操作を簡素化
  • ポート設定の変更: デフォルトポートを変更
  • 個人辞書の拡張: 「有利」→「ユーリ」の誤変換パターンを追加
  • Node.js非推奨警告の解決: url.parse()をWHATWG URL APIに移行
  • UI識別子の追加: 4つのエリアにw1-w4の識別子を追加
  • バージョン管理の改善: 日時ベースのバージョン表示に変更
  • プロンプト改善: 個人辞書情報の混入問題を解決

セッションの主な流れとAIの貢献

セッションは結城浩さんが「動かし方を忘れてしまった」という状況から始まりました。まずCLAUDE.mdの内容を確認し、サーバー起動方法を特定しましたが、ポートの競合問題が発生しました。既存のプロセスの調査と適切な対処を行った後、ファイル整理を提案し、server.jsをspeak-memo-server.jsにリネームしました。

その後、結城浩さんからMakefileの作成要請があり、make start、make stop、make restartなどの基本コマンドを含む包括的なMakefileを作成しました。ポート番号も統一し、設定の一貫性を保ちました。

実際の音声入力テストでは、「ユーリ」が「有利」と誤認識される問題が発見されました。update-dictionary.jsに新しい誤変換パターンを追加し、個人辞書を更新することで解決しました。

技術的な改善として、Node.jsの非推奨警告(url.parse)をWHATWG URL APIに移行し、より安全なコード実装に変更しました。

UI改善では、4つのエリアにw1-w4の識別子を追加し、今後の問題報告やコミュニケーションを円滑にしました。また、頻繁な変更に対応するため、バージョン表示を日時ベースに変更しました。

最も重要な修正は、w3からw4への変換で個人辞書の情報が混入する問題の解決でした。プロンプト設計を見直し、システム情報が出力に含まれないよう明確な指示を追加しました。

最終的に、結城浩さんから実際の使用感についてフィードバックをいただき、w2(誤字修正版)が最も実用的であり、w4(完成原稿)は内容が変わりすぎるという貴重な見解を得ました。

今後の拡張

実用性の観点から、以下の方向性が考えられます:

  • w2レベルの誤字修正機能のさらなる精度向上
  • ChatGPTとの対話形式での最終まとめ機能の検討
  • 音声入力の重複現象の原因調査(macOS音声入力の仕様との関係)

おわりに

音声入力アプリケーションの実用性について、貴重な実体験に基づくフィードバックをいただけて勉強になりました。また技術的な実験もできましたね。

関連リンク

(2025年6月25日)