🚀 一言でまとめると
「スマホで録音開始」ボタンを押すだけ。
あとは全自動でPCに同期され、OpenAI APIが「文字起こし」から「要約・整形」まで行ってくれるシステムを、Python初心者がAI(Gemini)と対話しながら構築しました。
📝 はじめに
製造業で管理職をしている私ですが、日々の「会議の議事録作成」に忙殺されていました。
市販のAI議事録ツール導入を検討しましたが、初期投資額が高かったり、月額費用が必要だったり高かったり…。
「もっと安く、自分好みにカスタマイズしたい」と思い、OpenAI API (Whisper + GPT-4o) を使った自作に挑戦しました。
コードはほぼ全て生成AI(Gemini)に書いてもらいました。本記事では、システム構成と、開発中にぶつかった壁(ファイル形式やサイズ制限)とその解決策を共有します。
👤 私のスペックと対象読者
【私のスペック】
職業: 中小企業の事務職(管理職)
プログラミングスキル: Python初心者(興味はあるが専門職ではない)、EXCEL関数はまあまあ使える
強み: 業務フローの改善への執念
【この記事を読んでほしい人】
「議事録作成」を自動化したい非エンジニア
Python×OpenAI APIの実用的な使い道を知りたい方
AIを使って自分専用の業務ツールを作ってみたい方
🛠️ システムの全体像
今回は「完全自動化」にこだわりました。PCの前でファイルをアップロードする作業すら無くしています。
入力: Androidスマホで録音(MacroDroid)
転送: Googleドライブへ自動アップロード(Autosync)
処理: PC上のPythonがドライブを監視&ダウンロード
AI: Whisper API(文字起こし) + GPT-4o-mini(要約・整形)
出力: PCのデスクトップにMarkdown形式の議事録が生成される
💡 実装のポイントと乗り越えた壁
開発中に直面した4つの技術的な壁と、AIと導き出した解決策を紹介します。
1. 「60分の壁」とファイルサイズ制限 (25MB)
OpenAI APIには「1ファイル25MBまで」という制限があります。1時間の会議を高音質で録音すると、簡単にこの制限を超えてしまいます。
解決策: Pythonコード内に FFmpeg を組み込みました。
25MBを超えるファイルが来た場合のみ、自動でビットレートを32kbps、モノラルに圧縮してからAPIに送信する仕組みを実装しました。
2. 「AACファイル」のエラー問題
スマホの録音アプリで標準的な .aac 形式は、実はWhisper APIが直接対応していません(Invalid file format エラーになります)。
解決策: 拡張子が .aac の場合は、サイズに関わらず ffmpeg で強制的に .mp3 に変換するロジックを追加しました。
最適解: そもそも録音段階で 「MPEG4 (.m4a)」 を選ぶのがベストだと判明。これなら変換不要で最速です。
3. 環境構築の落とし穴 (Python 3.13)
最新のPython 3.13を使ったところ、音声処理ライブラリ pydub が依存する audioop が廃止されておりエラーが発生。
解決策: 外部ライブラリに頼るのをやめ、Python標準の subprocess モジュールを使って、直接 ffmpeg.exe を叩く「質実剛健」なコードに書き換えました。これで環境依存のエラーがなくなりました。
4.文字起こし内容が改行されていない
文字起こし精度はなかなか良いですが、文章が改行されておらず横スクロール地獄。読みにくくて仕方ありません。
解決策:
💻 実際のコード (抜粋)
※最終的に完成した main.py のコード(APIキーなどを伏せたもの)を貼り付けます。
特に「FFmpegで圧縮・変換している関数 compress_audio_if_needed」の部分が見どころです。
📊 まとめ:費用対効果と今後
【かかった費用】
開発費: 1600円(Gemini費用含まず)
ランニングコスト: 1時間の会議で数十円(API利用料のみ)。だいたい1分1円のため、月額数千円のSaaSより圧倒的に安価です。会議の頻度によりますが、週に2ドル未満です。
【得られたもの】
録音終了後、コーヒーを飲んでいる間に議事録が完成する体験。
「非エンジニアでも、AIと対話すればここまで作れる」という自信。
プログラミング初心者でも、**「やりたいこと」と「粘り強さ」と「AI」**があれば、業務改革は可能です!